
    /Jf@                         d dl mZ d dlmZ d dlmZ d dlmZ  G d de          Z	 G d de	          Z
 G d	 d
e	          Z G d de	          ZdS )    )DocumentStructuredocument_model_driven_methoddocument_paginate_methoddocument_wait_methodc                   P     e Zd ZdZ fdZ fdZd Zd
dZd ZeZ	d Z
d	 Z xZS )LazyLoadedDocstringa0  Used for lazily loading docstrings

    You can instantiate this class and assign it to a __doc__ value.
    The docstring will not be generated till accessed via __doc__ or
    help(). Note that all docstring classes **must** subclass from
    this class. It cannot be used directly as a docstring.
    c                 r    t                                                       || _        || _        d| _        dS )z
        The args and kwargs are the same as the underlying document
        generation function. These just get proxied to the underlying
        function.
        N)super__init__	_gen_args_gen_kwargs
_docstring)selfargskwargs	__class__s      Z/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/botocore/docs/docstring.pyr   zLazyLoadedDocstring.__init__   s5     	!    c                 F    t                                          |           S N)r   __new__)clsr   r   r   s      r   r   zLazyLoadedDocstring.__new__'   s    wws###r   c                      t          d          )Nzq_write_docstring is not implemented. Please subclass from this class and provide your own _write_docstring method)NotImplementedErrorr   r   r   s      r   _write_docstringz$LazyLoadedDocstring._write_docstring+   s    !F
 
 	
r      c                 l    | j         |                                  | j                             |          S )a  Expands tabs to spaces

        So this is a big hack in order to get lazy loaded docstring work
        for the ``help()``. In the ``help()`` function, ``pydoc`` and
        ``inspect`` are used. At some point the ``inspect.cleandoc``
        method is called. To clean the docs ``expandtabs`` is called
        and that is where we override the method to generate and return the
        docstrings.
        )r   	_generate
expandtabs)r   tabsizes     r   r#   zLazyLoadedDocstring.expandtabs1   s2     ?"NN))'222r   c                 *    |                                  S r   )r"   r   s    r   __str__zLazyLoadedDocstring.__str__?   s    ~~r   c                 P    | j         |                                 | _         | j         S r   )r   _create_docstringr&   s    r   r"   zLazyLoadedDocstring._generateE   s%    ?""4466DOr   c                     t          dd          } | j        |g| j        R i | j         |                                                    d          S )N	docstringhtml)targetzutf-8)r   r   r   r   flush_structuredecode)r   docstring_structures     r   r)   z%LazyLoadedDocstring._create_docstringK   sr    /FKKK 		
"&.	
 	
 	
484D	
 	
 	
 #2244;;GDDDr   )r    )__name__
__module____qualname____doc__r   r   r   r#   r'   __repr__r"   r)   __classcell__)r   s   @r   r   r      s         	 	 	 	 	$ $ $ $ $
 
 
3 3 3 3      H  E E E E E E Er   r   c                       e Zd Zd ZdS )ClientMethodDocstringc                     t          |i | d S r   r   r   s      r   r   z&ClientMethodDocstring._write_docstringV   s    $d5f55555r   Nr1   r2   r3   r    r   r   r8   r8   U   s#        6 6 6 6 6r   r8   c                       e Zd Zd ZdS )WaiterDocstringc                     t          |i | d S r   r   r   s      r   r   z WaiterDocstring._write_docstring[   s    d-f-----r   Nr:   r;   r   r   r=   r=   Z   s#        . . . . .r   r=   c                       e Zd Zd ZdS )PaginatorDocstringc                     t          |i | d S r   r   r   s      r   r   z#PaginatorDocstring._write_docstring`   s     $1&11111r   Nr:   r;   r   r   r@   r@   _   s#        2 2 2 2 2r   r@   N)botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.docs.paginatorr   botocore.docs.waiterr	   strr   r8   r=   r@   r;   r   r   <module>rG      s   : 9 9 9 9 9 = = = = = = < < < < < < 5 5 5 5 5 5?E ?E ?E ?E ?E# ?E ?E ?ED6 6 6 6 6/ 6 6 6
. . . . .) . . .
2 2 2 2 2, 2 2 2 2 2r   