
    @                         S SK Jr  S SKJr  S SKJr  S SKJr   " S S\5      r	 " S S\	5      r
 " S	 S
\	5      r " S S\	5      rg)    )DocumentStructuredocument_model_driven_methoddocument_paginate_methoddocument_wait_methodc                   ^   ^  \ rS rSrSrU 4S jrU 4S jrS rSS jrS r	\	r
S rS	 rS
rU =r$ )LazyLoadedDocstring   a  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                 H   > [         TU ]  5         Xl        X l        SU l        g)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      *lib/third_party/botocore/docs/docstring.pyr   LazyLoadedDocstring.__init__   s"     	!    c                 "   > [         TU ]  U 5      $ N)r   __new__)clsr   r   r   s      r   r   LazyLoadedDocstring.__new__'   s    ws##r   c                     [        S5      e)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_docstring$LazyLoadedDocstring._write_docstring+   s    !F
 	
r   c                 r    U R                   c  U R                  5         U R                   R                  U5      $ )aa  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&   LazyLoadedDocstring.expandtabs1   s-     ??"NN))'22r   c                 "    U R                  5       $ r   )r%   r   s    r   __str__LazyLoadedDocstring.__str__?   s    ~~r   c                 ^    U R                   c  U R                  5       U l         U R                   $ r   )r   _create_docstringr*   s    r   r%   LazyLoadedDocstring._generateE   s&    ??""446DOr   c                     [        SSS9nU R                  " U/U R                  Q70 U R                  D6  UR	                  5       R                  S5      $ )N	docstringhtml)targetzutf-8)r   r"   r   r   flush_structuredecode)r   docstring_structures     r   r.   %LazyLoadedDocstring._create_docstringK   sX    /FK 		
"&..	
484D4D	
 #224;;GDDr   )r   r   r   )   )__name__
__module____qualname____firstlineno____doc__r   r   r"   r&   r+   __repr__r%   r.   __static_attributes____classcell__)r   s   @r   r   r      s9    	$
3  HE Er   r   c                       \ rS rSrS rSrg)ClientMethodDocstringU   c                     [        U0 UD6  g r   r   r!   s      r   r"   &ClientMethodDocstring._write_docstringV   s    $d5f5r    Nr9   r:   r;   r<   r"   r?   rF   r   r   rB   rB   U   s    6r   rB   c                       \ rS rSrS rSrg)WaiterDocstringZ   c                     [        U0 UD6  g r   r   r!   s      r   r"    WaiterDocstring._write_docstring[   s    d-f-r   rF   NrG   rF   r   r   rI   rI   Z   s    .r   rI   c                       \ rS rSrS rSrg)PaginatorDocstring_   c                     [        U0 UD6  g r   r   r!   s      r   r"   #PaginatorDocstring._write_docstring`   s     $1&1r   rF   NrG   rF   r   r   rN   rN   _   s    2r   rN   N)botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.docs.paginatorr   botocore.docs.waiterr	   strr   rB   rI   rN   rF   r   r   <module>rW      sI    : = < 5?E# ?ED6/ 6
.) .
2, 2r   