o ?c@@stddlmZddlmZddlmZddlmZGdddeZ Gddde Z Gd d d e Z Gd d d e Z d S))DocumentStructuredocument_model_driven_methoddocument_paginate_methoddocument_wait_methodcsZeZdZdZfddZfddZddZdd d Zd d ZeZ d dZ ddZ Z S)LazyLoadedDocstringa0Used 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. cs t||_||_d|_dS)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 _docstringselfargskwargs __class__r/private/var/folders/cw/wlscbxl13mj6wd668h7l9g9sllkg5j/T/pip-target-b31awkwq/lib/python/botocore/docs/docstring.pyr s  zLazyLoadedDocstring.__init__cs t|SN)r __new__)clsrrrrrr's zLazyLoadedDocstring.__new__cOstd)Nzq_write_docstring is not implemented. Please subclass from this class and provide your own _write_docstring method)NotImplementedErrorrrrr_write_docstring+sz$LazyLoadedDocstring._write_docstringcCs|jdur ||j|S)aExpands 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. N)r _generate expandtabs)rtabsizerrrr1s  zLazyLoadedDocstring.expandtabscCs|Sr)rrrrr__str__?szLazyLoadedDocstring.__str__cCs|jdur ||_|jSr)r_create_docstringr rrrrEs  zLazyLoadedDocstring._generatecCs6tddd}|j|g|jRi|j|dS)N docstringhtml)targetzutf-8)rrr r Zflush_structuredecode)rZdocstring_structurerrrr"Ks z%LazyLoadedDocstring._create_docstring)r) __name__ __module__ __qualname____doc__r rrrr!__repr__rr" __classcell__rrrrr s   r c@eZdZddZdS)ClientMethodDocstringcOt|i|dSrrrrrrrVz&ClientMethodDocstring._write_docstringNr'r(r)rrrrrr.U r.c@r-)WaiterDocstringcOr/rrrrrrr0z WaiterDocstring._write_docstringNr1rrrrr3Zr2r3c@r-)PaginatorDocstringcOr/rrrrrrr`r0z#PaginatorDocstring._write_docstringNr1rrrrr4_r2r4N) Zbotocore.docs.bcdoc.restdocrZbotocore.docs.methodrZbotocore.docs.paginatorrZbotocore.docs.waiterrstrr r.r3r4rrrrs   B