ó
    Û°›j�(  ã                   ó&  • S SK r S SKJr  S rS rS r\" S/ SQ5      r " S S\5      r " S	 S
5      r " S S5      r	 " S S5      r
 " S S5      rSSSSSS.r\ R                  " SR                  \" \ R                   \5      5      5      rS rS rg)é    N)Ú
namedtuplec                 ó4   • SSSSSSSS.R                  X 5      $ )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    ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/botocore/docs/utils.pyÚpy_type_namer      s/   € ð ØØØØØØñ÷ 
�cˆ)Óð ó    c                 ó<   • SSSSSSSSSSS	.
R                  U S
5      $ )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   &   s:   € ð ØØØØØØØØØ+ñ÷ 
�cˆ)�UÓðr   c                 óD  • U R                   R                  S5      nU R                   R                  SS5      nUR                  S5      (       a  USS nUR                  S5      (       a  USS nU(       a+  UR                  5       UR                  5       ;  a	  US	U S
3-  nU$ )zoGenerate 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€MØ×'Ñ'×+Ñ+Ð,AÀ2ÓF€JØ×Ñ˜X×&Ñ&Ø  �^ˆ
Ø×Ñ˜U×#Ñ#Ø  �^ˆ
Þ�j×&Ñ&Ó(°×0CÑ0CÓ0EÓEØ˜2˜j˜\¨Ð+Ñ+ˆØÐr   ÚDocumentedShape)Únamer   Údocumentationr'   ÚmembersÚrequired_membersc                   ó6   ^ • \ rS rSrSr   SU 4S jjrSrU =r$ )r.   é]   zBUse this class to inject new shapes into a model for documentationc           	      óL   >• Uc  / nUc  / nUc  / n[         TU ]  U UUUUUU5      $ ©N)ÚsuperÚ__new__)Úclsr/   r   r0   r'   r1   r2   Ú	__class__s          €r   r8   ÚDocumentedShape.__new__`   sL   ø€ ð ÑØˆHØ‰?ØˆGØÑ#Ø!ÐÜ‰w‰ØØØØØØØó
ð 	
r   © )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r8   Ú__static_attributes__Ú__classcell__)r:   s   @r   r.   r.   ]   s   ø† ÙLð ØØ÷
õ 
r   c                   ó$   • \ rS rSrSS jrS rSrg)ÚAutoPopulatedParaméz   Nc                 ó2   • Xl         X l        Uc  SU l        g g )Nz{Please note that this parameter is automatically populated if it is not provided. Including this parameter is not required
©r/   Úparam_description)Úselfr/   rI   s      r   Ú__init__ÚAutoPopulatedParam.__init__{   s%   € ØŒ	Ø!2ÔØÑ$ðð Õ"ð %r   c                 óô  • UR                  S5      (       a„  U R                  UR                  ;   ai  UR                  U R                  5      nSUR                  ;   a  UR	                  S5        UR                  S5      nUR                  U R                  5        ggUR                  S5      (       aH  UR                  S5      nU R                  UR                  ;   a  UR	                  U R                  5        ggg)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ÚwritelnrI   ©rJ   Ú
event_nameÚsectionÚkwargsÚdescription_sections        r   Údocument_auto_populated_paramÚ0AutoPopulatedParam.document_auto_populated_param…   sÚ   € ð × Ñ Ð!6×7Ñ7Ø�y‰y˜G×6Ñ6Ó6Ø!×-Ñ-¨d¯i©iÓ8�Ø  G×$>Ñ$>Ó>Ø×*Ñ*¨=Ô9Ø&-×&9Ñ&9Ø)ó'Ð#ð $×+Ñ+¨D×,BÑ,BÕCð 7ð ×"Ñ"Ð#9×:Ñ:Ø×)Ñ)Ð*;Ó<ˆGØ�y‰y˜G×6Ñ6Ó6Ø×&Ñ& t§y¡yÕ1ð 7ð ;r   rH   r6   )r=   r>   r?   r@   rK   r[   rB   r<   r   r   rE   rE   z   s   † ôõ2r   rE   c                   ó$   • \ rS rSrSrS rS rSrg)ÚHideParamFromOperationsé›   a.  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                 óâ   • X l         [        5       U l        [        5       U l        SnSnU HA  nU R                  R	                  XAU4-  5        U R                  R	                  XQU4-  5        MC     g)zð
: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)rJ   Úservice_nameÚparameter_nameÚoperation_namesÚparam_templateÚexample_templater/   s          r   rK   Ú HideParamFromOperations.__init__£   sl   € ð  .ÔÜ!›eˆÔÜ"›uˆÔàEˆØHÐÛ#ˆDØ×Ñ×#Ñ# NÀDÐ5IÑ$IÔJØ× Ñ ×$Ñ$Ð%5ÀtÐ8LÑ%LÖMò $r   c                 óÒ   • XR                   ;   a  UR                  S5      nOXR                  ;  a  g U R                  UR                  ;   a  UR                  U R                  5        g g )NrQ   )rd   rS   rc   ra   rR   rT   )rJ   rW   rX   rY   s       r   Ú
hide_paramÚ"HideParamFromOperations.hide_param¸   s[   € Ø×-Ñ-Ó-à×)Ñ)Ð*;Ó<‰GØ×2Ñ2Ó2ØØ×Ñ 7×#=Ñ#=Ó=Ø×"Ñ" 4×#7Ñ#7Õ8ð >r   )rd   ra   rc   N)r=   r>   r?   r@   rA   rK   rm   rB   r<   r   r   r^   r^   ›   s   † ñDòNõ*9r   r^   c                   ó$   • \ rS rSrSrS rS rSrg)ÚAppendParamDocumentationéÂ   z-Appends documentation to a specific parameterc                 ó   • Xl         X l        g r6   )ra   Ú_doc_string)rJ   rg   Ú
doc_strings      r   rK   Ú!AppendParamDocumentation.__init__Å   s   € Ø-ÔØ%Õr   c                 óÈ   • U R                   UR                  ;   aH  UR                  U R                   5      nUR                  S5      nUR                  U R                  5        g g )NrO   )ra   rR   rS   rU   rs   rV   s        r   Úappend_documentationÚ-AppendParamDocumentation.append_documentationÉ   sW   € Ø×Ñ 7×#=Ñ#=Ó=Ø×)Ñ)¨$×*>Ñ*>Ó?ˆGØ")×"5Ñ"5Ð6KÓ"LÐØ×'Ñ'¨×(8Ñ(8Õ9ð >r   )rs   ra   N)r=   r>   r?   r@   rA   rK   rw   rB   r<   r   r   rp   rp   Â   s   † Ù7ò&õ:r   rp   c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚDocumentModifiedShapeéÐ   a  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                 ó4   • Xl         X l        X0l        X@l        g r6   )Ú_shape_nameÚ	_new_typeÚ_new_descriptionÚ_new_example_value)rJ   Ú
shape_nameÚnew_typeÚnew_descriptionÚnew_example_values        r   rK   ÚDocumentModifiedShape.__init__Ù   s   € ð &ÔØ!ŒØ /ÔØ"3Õr   c                 óZ  • U R                   UR                  R                  S5      :X  a  U R                  X5        UR                   Ha  nUR                  U5      nU R                   UR                  R                  S5      :X  a  U R                  X5        MP  U R                  X5        Mc     g )NÚshape)r}   Úcontextr   Ú_replace_documentationrR   rS   Ú(replace_documentation_for_matching_shape)rJ   rW   rX   rY   Úsection_nameÚsub_sections         r   rŠ   Ú>DocumentModifiedShape.replace_documentation_for_matching_shapeå   s�   € ð ×Ñ˜wŸ™×2Ñ2°7Ó;Ó;Ø×'Ñ'¨
Ô<Ø#×6Ô6ˆLØ!×-Ñ-¨lÓ;ˆKØ×Ñ ;×#6Ñ#6×#:Ñ#:¸7Ó#CÓCØ×+Ñ+¨JÖDà×=Ñ=Øöò 7r   c                 óÎ  • UR                  S5      (       d  UR                  S5      (       a;  UR                  5         UR                  5         UR                  U R                  5        UR                  S5      (       d  UR                  S5      (       GaQ  SnUR
                   H  nXC;  d  M
  UR                  U5        M     U R                  bL  SUR
                  ;   a<  UR                  S5      nUR                  5         UR                  U R                  5        UR                  S5      nUR                  5       R                  S5      R                  S	5      (       a<  UR                  5         UR                  S
UR                   SU R                   35        g UR                  5         UR                  R                  SU R                   S35        UR                  S5        g g )NrP   zdocs.response-examplerN   zdocs.response-params)z
param-namerO   zend-structureú
param-typez	end-paramrO   r�   zutf-8z:typez:type z: Ú(z) --Ú )r(   Úremove_all_sectionsÚ
clear_textÚwriter€   rR   rT   r   rS   ÚgetvalueÚdecoder/   r~   ÚstyleÚitalics)rJ   rW   rX   Úallowed_sectionsr‹   rZ   Útype_sections          r   r‰   Ú,DocumentModifiedShape._replace_documentationó   s§  € Ø× Ñ Ø"÷
ñ 
à×"Ñ"Ð#:×;Ñ;Ø×'Ñ'Ô)Ø×ÑÔ Ø�M‰M˜$×1Ñ1Ô2à× Ñ Ø!÷
ñ 
à×"Ñ"Ð#9×:Ò:ð Ðð !(× :Ô :�ð  Õ7Ø×*Ñ*¨<Ö8ñ	 !;ð ×%Ñ%Ñ1Ø)¨W×-GÑ-GÓGà&-×&9Ñ&9Ø)ó'Ð#ð $×.Ñ.Ô0Ø#×)Ñ)¨$×*?Ñ*?Ô@ð #×.Ñ.¨|Ó<ˆLØ×$Ñ$Ó&×-Ñ-¨gÓ6×AÑAÀ'×JÑJØ×'Ñ'Ô)Ø×"Ñ" V¨G¯L©L¨>¸¸D¿N¹NÐ;KÐ#LÕMà×'Ñ'Ô)Ø×"Ñ"×*Ñ*¨Q¨t¯~©~Ð.>¸dÐ+CÔDØ×"Ñ" 3Õ'ðC ;r   )r   r€   r~   r}   N)	r=   r>   r?   r@   rA   rK   rŠ   r‰   rB   r<   r   r   rz   rz   Ð   s   † ñò
4òõ+(r   rz   z\nz\rz\tz\bz\f)Ú
ÚÚ	ÚÚÚ|c                 ó2   • [         U R                  S5         $ )Nr   )Ú	_CONTROLSÚgroup)Úmatchs    r   Ú_CONTROLS_MATCH_HANDLERr¦   -  s   € Ü�U—[‘[ “^Ñ$Ð$r   c                 ó6   • [         R                  [        U 5      $ r6   )Ú_ESCAPE_CONTROLS_REÚsubr¦   )Úvalues    r   Úescape_controlsr«   1  s   € Ü×"Ñ"Ô#:¸EÓBÐBr   )ÚreÚcollectionsr   r   r   r-   Ú_DocumentedShaper.   rE   r^   rp   rz   r£   ÚcompileÚjoinr   Úescaper¨   r¦   r«   r<   r   r   Ú<module>r²      s³   ðó 
Ý "ò ò*ò4ñ  Øòó
Ð ô
Ð&ô 
÷:2ñ 2÷B$9ñ $9÷N:ñ :÷N(ñ N(ðd Ø
Ø
Ø
Ø
ñ€	ð —j’j §¡©#¨b¯i©i¸Ó*CÓ!DÓEÐ ò%óCr   