§
    9xÅj�(  ã                   óL  — d dl Z d dlmZ d„ Zd„ Zd„ Z edg d¢¦  «        Z G d„ de¦  «        Z G d	„ d
¦  «        Z G d„ d¦  «        Z	 G d„ d¦  «        Z
 G d„ d¦  «        ZddddddœZ e j        d                      ee j        e¦  «        ¦  «        ¦  «        Zd„ Zd„ ZdS )é    N)Ú
namedtuplec                 ó>   — ddddddddœ                      | | ¦  «        S )z¯Get the Python type name for a given model type.

        >>> py_type_name('list')
        'list'
        >>> py_type_name('structure')
        'dict'

    :rtype: string
    ÚbytesÚstringÚfloatÚintegerÚdictÚdatetime)ÚblobÚ	characterÚdoubleÚlongÚmapÚ	structureÚ	timestamp©Úget©Ú	type_names    úDC:\Projects\Historical\venv\Lib\site-packages\botocore/docs/utils.pyÚpy_type_namer      s9   € ð ØØØØØØðð ÷ 
‚cˆ)�YÑÔð ó    c                 óD   — ddddddddddd	œ
                      | d
¦  «        S )záGet the Python default value for a given model type.

        >>> py_default('string')
        ''string''
        >>> py_default('list')
        '[...]'
        >>> py_default('unknown')
        '...'

    :rtype: string
    z123.0Ú123z'string'zb'bytes'z
True|Falsez[...]z{...}zdatetime(2015, 1, 1))
r   r   r   r   r   ÚbooleanÚlistr   r   r   z...r   r   s    r   Ú
py_defaultr   &   sB   € ð ØØØØØØØØØ+ðð ÷ 
‚cˆ)�UÑÔðr   c                 óR  — | j                              d¦  «        }| j                              dd¦  «        }|                     d¦  «        r
|dd…         }|                     d¦  «        r
|dd…         }|r1|                     ¦   «         |                     ¦   «         vr	|d	|› d
�z  }|S )zwGenerate the official name of an AWS Service

    :param service_model: The service model representing the service
    ÚserviceFullNameÚserviceAbbreviationÚ ÚAmazoné   NÚAWSé   z (ú))Úmetadatar   Ú
startswithÚlower)Úservice_modelÚofficial_nameÚ
short_names      r   Úget_official_service_namer-   @   sÀ   € ð
 "Ô*×.Ò.Ð/@ÑAÔA€MØÔ'×+Ò+Ð,AÀ2ÑFÔF€JØ×Ò˜XÑ&Ô&ð $Ø   ”^ˆ
Ø×Ò˜UÑ#Ô#ð $Ø   ”^ˆ
Øð ,�j×&Ò&Ñ(Ô(°×0CÒ0CÑ0EÔ0EÐEÐEØÐ+˜jÐ+Ð+Ð+Ñ+ˆØÐr   ÚDocumentedShape)Únamer   Údocumentationr'   ÚmembersÚrequired_membersc                   ó*   ‡ — e Zd ZdZ	 	 	 dˆ fd„	Zˆ xZS )r.   zBUse this class to inject new shapes into a model for documentationNc           	      ój   •— |€g }|€g }|€g }t          ¦   «                              | ||||||¦  «        S ©N)ÚsuperÚ__new__)Úclsr/   r   r0   r'   r1   r2   Ú	__class__s          €r   r7   zDocumentedShape.__new__`   sU   ø€ ð ÐØˆHØˆ?ØˆGØÐ#Ø!ÐÝ‰wŒw�ŠØØØØØØØñ
ô 
ð 	
r   )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r7   Ú__classcell__)r9   s   @r   r.   r.   ]   sN   ø€ € € € € ØLÐLð ØØð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   c                   ó   — e Zd Zdd„Zd„ ZdS )ÚAutoPopulatedParamNc                 ó8   — || _         || _        |€	d| _        d S d S )Nz{Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
)r/   Úparam_description)Úselfr/   rB   s      r   Ú__init__zAutoPopulatedParam.__init__{   s2   € ØˆŒ	Ø!2ˆÔØÐ$ðð Ô"Ð"Ð"ð %Ð$r   c                 óÎ  — |                      d¦  «        ry| j        |j        v ri|                     | j        ¦  «        }d|j        v r|                     d¦  «         |                     d¦  «        }|                     | j        ¦  «         dS dS |                      d¦  «        r?|                     d¦  «        }| j        |j        v r|                     | j        ¦  «         dS dS dS )zïDocuments auto populated parameters

        It will remove any required marks for the parameter, remove the
        parameter from the example, and add a snippet about the parameter
        being autopopulated in the description.
        údocs.request-paramszis-requiredúparam-documentationúdocs.request-exampleústructure-valueN)r(   r/   Úavailable_sectionsÚget_sectionÚdelete_sectionÚwritelnrB   ©rC   Ú
event_nameÚsectionÚkwargsÚdescription_sections        r   Údocument_auto_populated_paramz0AutoPopulatedParam.document_auto_populated_param…   s  € ð × Ò Ð!6Ñ7Ô7ð 	2ØŒy˜GÔ6Ð6Ð6Ø!×-Ò-¨d¬iÑ8Ô8�Ø  GÔ$>Ð>Ð>Ø×*Ò*¨=Ñ9Ô9Ð9Ø&-×&9Ò&9Ø)ñ'ô 'Ð#ð $×+Ò+¨DÔ,BÑCÔCÐCÐCÐCð 7Ð6ð ×"Ò"Ð#9Ñ:Ô:ð 	2Ø×)Ò)Ð*;Ñ<Ô<ˆGØŒy˜GÔ6Ð6Ð6Ø×&Ò& t¤yÑ1Ô1Ð1Ð1Ð1ð	2ð 	2à6Ð6r   r5   )r:   r;   r<   rD   rS   © r   r   r@   r@   z   s7   € € € € € ðð ð ð ð2ð 2ð 2ð 2ð 2r   r@   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚHideParamFromOperationsa>  Hides a single parameter from multiple operations.

    This method will remove a parameter from documentation and from
    examples. This method is typically used for things that are
    automatically populated because a user would be unable to provide
    a value (e.g., a checksum of a serialized XML request body).c                 óî   — || _         t          ¦   «         | _        t          ¦   «         | _        d}d}|D ]@}| j                             |||fz  ¦  «         | j                             |||fz  ¦  «         ŒAdS )a(  
        :type service_name: str
        :param service_name: Name of the service to modify.

        :type parameter_name: str
        :param parameter_name: Name of the parameter to modify.

        :type operation_names: list
        :param operation_names: Operation names to modify.
        z*docs.request-params.%s.%s.complete-sectionz+docs.request-example.%s.%s.complete-sectionN)Ú_parameter_nameÚsetÚ_params_eventsÚ_example_eventsÚadd)rC   Úservice_nameÚparameter_nameÚoperation_namesÚparam_templateÚexample_templater/   s          r   rD   z HideParamFromOperations.__init__£   s’   € ð  .ˆÔÝ!™eœeˆÔÝ"™uœuˆÔàEˆØHÐØ#ð 	Nð 	NˆDØÔ×#Ò# N°lÀDÐ5IÑ$IÑJÔJÐJØÔ ×$Ò$Ð%5¸ÀtÐ8LÑ%LÑMÔMÐMÐMð	Nð 	Nr   c                 ó®   — || j         v r|                     d¦  «        }n|| j        vrd S | j        |j        v r|                     | j        ¦  «         d S d S )NrI   )r[   rK   rZ   rX   rJ   rL   )rC   rO   rP   rQ   s       r   Ú
hide_paramz"HideParamFromOperations.hide_param¸   so   € Ø˜Ô-Ð-Ð-à×)Ò)Ð*;Ñ<Ô<ˆGˆGØ˜tÔ2Ð2Ð2ØˆFØÔ 7Ô#=Ð=Ð=Ø×"Ò" 4Ô#7Ñ8Ô8Ð8Ð8Ð8ð >Ð=r   N)r:   r;   r<   r=   rD   rc   rT   r   r   rV   rV   ›   sA   € € € € € ðDð DðNð Nð Nð*9ð 9ð 9ð 9ð 9r   rV   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚAppendParamDocumentationz-Appends documentation to a specific parameterc                 ó"   — || _         || _        d S r5   )rX   Ú_doc_string)rC   r^   Ú
doc_strings      r   rD   z!AppendParamDocumentation.__init__Å   s   € Ø-ˆÔØ%ˆÔÐÐr   c                 ó¸   — | j         |j        v rK|                     | j         ¦  «        }|                     d¦  «        }|                     | j        ¦  «         d S d S )NrG   )rX   rJ   rK   rM   rg   rN   s        r   Úappend_documentationz-AppendParamDocumentation.append_documentationÉ   sc   € ØÔ 7Ô#=Ð=Ð=Ø×)Ò)¨$Ô*>Ñ?Ô?ˆGØ")×"5Ò"5Ð6KÑ"LÔ"LÐØ×'Ò'¨Ô(8Ñ9Ô9Ð9Ð9Ð9ð >Ð=r   N)r:   r;   r<   r=   rD   rj   rT   r   r   re   re   Â   s8   € € € € € Ø7Ð7ð&ð &ð &ð:ð :ð :ð :ð :r   re   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚDocumentModifiedShapea2  Modifies the documentation for a shape to reflect runtime transformations.

    This is used when a handler transforms a shape's value at runtime
    (e.g., decoding a JSON string into a dict) and the documentation
    needs to reflect the actual Python type returned rather than the
    modeled type.
    c                 ó>   — || _         || _        || _        || _        d S r5   )Ú_shape_nameÚ	_new_typeÚ_new_descriptionÚ_new_example_value)rC   Ú
shape_nameÚnew_typeÚnew_descriptionÚnew_example_values        r   rD   zDocumentModifiedShape.__init__Ù   s)   € ð &ˆÔØ!ˆŒØ /ˆÔØ"3ˆÔÐÐr   c                 óV  — | j         |j                             d¦  «        k    r|                      ||¦  «         |j        D ]g}|                     |¦  «        }| j         |j                             d¦  «        k    r|                      ||¦  «         ŒQ|                      ||¦  «         Œhd S )NÚshape)rn   Úcontextr   Ú_replace_documentationrJ   rK   Ú(replace_documentation_for_matching_shape)rC   rO   rP   rQ   Úsection_nameÚsub_sections         r   rz   z>DocumentModifiedShape.replace_documentation_for_matching_shapeå   sÁ   € ð Ô˜wœ×2Ò2°7Ñ;Ô;Ò;Ð;Ø×'Ò'¨
°GÑ<Ô<Ð<Ø#Ô6ð 	ð 	ˆLØ!×-Ò-¨lÑ;Ô;ˆKØÔ ;Ô#6×#:Ò#:¸7Ñ#CÔ#CÒCÐCØ×+Ò+¨J¸ÑDÔDÐDÐDà×=Ò=Ø ñô ð ð ð	ð 	r   c                 óÔ  — |                      d¦  «        s|                      d¦  «        rB|                     ¦   «          |                     ¦   «          |                     | j        ¦  «         |                      d¦  «        s|                      d¦  «        �rPd}|j        D ]}||vr|                     |¦  «         Œ| j        �Ld|j        v rC|                     d¦  «        }|                     ¦   «          |                     | j        ¦  «         |                     d¦  «        }| 	                    ¦   «          
                    d¦  «                              d	¦  «        r;|                     ¦   «          |                     d
|j        › d| j        › �¦  «         d S |                     ¦   «          |j                             d| j        › d�¦  «         |                     d¦  «         d S d S )NrH   zdocs.response-examplerF   zdocs.response-params)z
param-namerG   zend-structureú
param-typez	end-paramrG   r~   zutf-8z:typez:type z: ú(z) --ú )r(   Úremove_all_sectionsÚ
clear_textÚwriterq   rJ   rL   rp   rK   ÚgetvalueÚdecoder/   ro   ÚstyleÚitalics)rC   rO   rP   Úallowed_sectionsr{   rR   Útype_sections          r   ry   z,DocumentModifiedShape._replace_documentationó   s  € Ø× Ò Ø"ñ
ô 
ð 	3à×"Ò"Ð#:Ñ;Ô;ð	3ð ×'Ò'Ñ)Ô)Ð)Ø×ÒÑ Ô Ð Ø�MŠM˜$Ô1Ñ2Ô2Ð2à× Ò Ø!ñ
ô 
ð #	(à×"Ò"Ð#9Ñ:Ô:ñ#	(ð Ðð !(Ô :ð 9ð 9�ð  Ð'7Ð7Ð7Ø×*Ò*¨<Ñ8Ô8Ð8øð Ô%Ð1Ø)¨WÔ-GÐGÐGà&-×&9Ò&9Ø)ñ'ô 'Ð#ð $×.Ò.Ñ0Ô0Ð0Ø#×)Ò)¨$Ô*?Ñ@Ô@Ð@ð #×.Ò.¨|Ñ<Ô<ˆLØ×$Ò$Ñ&Ô&×-Ò-¨gÑ6Ô6×AÒAÀ'ÑJÔJð (Ø×'Ò'Ñ)Ô)Ð)Ø×"Ò"Ð#L¨G¬LÐ#LÐ#L¸D¼NÐ#LÐ#LÑMÔMÐMÐMÐMà×'Ò'Ñ)Ô)Ð)ØÔ"×*Ò*Ð+C¨t¬~Ð+CÐ+CÐ+CÑDÔDÐDØ×"Ò" 3Ñ'Ô'Ð'Ð'Ð'ðG#	(ð #	(r   N)r:   r;   r<   r=   rD   rz   ry   rT   r   r   rl   rl   Ð   sK   € € € € € ðð ð
4ð 
4ð 
4ðð ð ð+(ð +(ð +(ð +(ð +(r   rl   z\nz\rz\tz\bz\f)ú
úú	úúú|c                 óB   — t           |                      d¦  «                 S )Nr   )Ú	_CONTROLSÚgroup)Úmatchs    r   Ú_CONTROLS_MATCH_HANDLERr”   -  s   € Ý�U—[’[ ‘^”^Ô$Ð$r   c                 óB   — t                                t          | ¦  «        S r5   )Ú_ESCAPE_CONTROLS_REÚsubr”   )Úvalues    r   Úescape_controlsr™   1  s   € Ý×"Ò"Õ#:¸EÑBÔBÐBr   )ÚreÚcollectionsr   r   r   r-   Ú_DocumentedShaper.   r@   rV   re   rl   r‘   ÚcompileÚjoinr   Úescaper–   r”   r™   rT   r   r   ú<module>r       sÃ  ðð 
€	€	€	Ø "Ð "Ð "Ð "Ð "Ð "ð ð  ð  ð*ð ð ð4ð ð ð  �:Øðð ð ñ
ô 
Ð ð
ð 
ð 
ð 
ð 
Ð&ñ 
ô 
ð 
ð:2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðB$9ð $9ð $9ð $9ð $9ñ $9ô $9ð $9ðN:ð :ð :ð :ð :ñ :ô :ð :ðN(ð N(ð N(ð N(ð N(ñ N(ô N(ð N(ðd Ø
Ø
Ø
Ø
ðð €	ð !�b”j §¢¨#¨#¨b¬i¸Ñ*CÔ*CÑ!DÔ!DÑEÔEÐ ð%ð %ð %ðCð Cð Cð Cð Cr   