Ë
    rPêjò#  ã                   óF   — d dl Z d dlZd dlmZ d dlmZ  G d„ d«      Zd„ Zy)é    N)Úescape_controls)Úparse_timestampc                   ó^   — e Zd Zd„ Zd„ Zd„ Zd„ Z	 dd„Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚSharedExampleDocumenterc                 ó"  — |j                   j                  «        |j                  |j                  d«      «       |j                   j	                  «        | j                  ||||j                  «       | j                  |||j                  «       y)a8  Documents a single shared example based on its definition.

        :param example: The model of the example

        :param prefix: The prefix to use in the method example.

        :param section: The section to write to.

        :param operation_model: The model of the operation used in the example
        ÚdescriptionN)	ÚstyleÚnew_paragraphÚwriteÚgetÚnew_lineÚdocument_inputÚinput_shapeÚdocument_outputÚoutput_shape)ÚselfÚexampleÚprefixÚsectionÚoperation_models        ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/botocore/docs/sharedexample.pyÚdocument_shared_examplez/SharedExampleDocumenter.document_shared_example   sp   € ð 	�‰×#Ñ#Ô%Ø�‰�g—k‘k -Ó0Ô1Ø�‰×ÑÔ Ø×ÑØ�W˜f o×&AÑ&Aô	
ð 	×Ñ˜W g¨×/KÑ/KÕLó    c                 ó  — |j                  d«      }|j                  j                  «        |�|j                  |«       |j	                  di «      }|j	                  d«      }|r|j	                  d«      }|j                  d«      }| j                  |||g |«       |j                  d«      }	|	j                  j                  «        |	j                  j                  «        |	j                  d«       |	j                  j                  «        y )NÚinputÚcommentsÚ
parameterszinput-closezprint(response))Úadd_new_sectionr	   Ústart_codeblockr   r   Ú_document_paramsr   Úend_codeblock)
r   r   r   r   ÚshapeÚinput_sectionÚparamsr   Úparam_sectionÚclosing_sections
             r   r   z&SharedExampleDocumenter.document_input*   sâ   € Ø×/Ñ/°Ó8ˆØ×Ñ×+Ñ+Ô-ØÐØ×Ñ Ô'Ø—‘˜W bÓ)ˆØ—;‘;˜zÓ*ˆÙØ—|‘| GÓ,ˆHØ%×5Ñ5°lÓCˆØ×Ñ˜m¨V°X¸rÀ5ÔIØ'×7Ñ7¸ÓFˆØ×Ñ×&Ñ&Ô(Ø×Ñ×&Ñ&Ô(Ø×ÑÐ/Ô0Ø×Ñ×+Ñ+Õ-r   c                 óà  — |j                  d«      }|j                  j                  «        |j                  d«       |j                  j                  «        |j                  j	                  «        |j                  di «      }ddi|d<   |j                  d«      }|r|j                  d«      }| j                  |||g |d«       |j                  d«      }|j                  j                  «        y )NÚoutputzExpected Output:z...ÚResponseMetadatar   Tzoutput-close)r   r	   r   r   r   r   Ú_document_dictr!   )r   r   r   r"   Úoutput_sectionr$   r   r&   s           r   r   z'SharedExampleDocumenter.document_output;   sÑ   € Ø ×0Ñ0°Ó:ˆØ×Ñ×%Ñ%Ô'Ø×ÑÐ/Ô0Ø×Ñ×%Ñ%Ô'Ø×Ñ×,Ñ,Ô.Ø—‘˜X rÓ*ˆð ',¨U ^ˆÐ!Ñ"Ø—;‘;˜zÓ*ˆÙØ—|‘| HÓ-ˆHØ×Ñ˜N¨F°H¸bÀ%ÈÔNØ(×8Ñ8¸ÓHˆØ×Ñ×+Ñ+Õ-r   c                 óh  — t        |t        «      r| j                  |||||«       yt        |t        «      r| j	                  |||||«       yt        |t
        j                  «      r| j                  |||«       y|r#|j                  dk(  r| j                  |||«       y| j                  |||«       y)a  
        :param section: The section to add the docs to.

        :param value: The input / output values representing the parameters that
                      are included in the example.

        :param comments: The dictionary containing all the comments to be
                         applied to the example.

        :param path: A list describing where the documenter is in traversing the
                     parameters. This is used to find the equivalent location
                     in the comments dictionary.
        Ú	timestampN)Ú
isinstanceÚdictr*   ÚlistÚ_document_listÚnumbersÚNumberÚ_document_numberÚ	type_nameÚ_document_datetimeÚ_document_str)r   r   Úvaluer   Úpathr"   s         r   Ú	_documentz!SharedExampleDocumenter._documentL   s–   € ô �eœTÔ"Ø×Ñ ¨°¸$ÀÕFÜ˜œtÔ$Ø×Ñ ¨°¸$ÀÕFÜ˜œwŸ~™~Ô.Ø×!Ñ! '¨5°$Õ7Ù�u—‘¨+Ò5Ø×#Ñ# G¨U°DÕ9à×Ñ˜w¨¨tÕ4r   c                 óð  — |j                  d«      }| j                  |d«       |j                  «       D �]  \  }}	|j                  d|› �«       |j                  |«      }
|
j                  j                  «        | j                  ||«      }|r+|
j                  |«       |
j                  j                  «        |
j                  d|› d�«       d }|rF|j                  dk(  r|j                  j                  |«      }n|j                  dk(  r|j                  }| j                  |
|	|||«       |j                  «        �Œ |j                  d«      }| j                  |d	«       |s|j                  d
«       y y )Nz
dict-valueú{ú.ú'z': Ú	structureÚmapzending-braceú}ú,)r   Ú_start_nested_valueÚitemsÚappendr	   r   Ú_get_commentr   r5   Úmembersr   r8   r:   ÚpopÚ_end_nested_value)r   r   r8   r   r9   r"   Ú	top_levelÚdict_sectionÚkeyÚvalÚitem_sectionÚitem_commentÚ
item_shapeÚdict_section_ends                 r   r*   z&SharedExampleDocumenter._document_dicte   sR  € ð ×.Ñ.¨|Ó<ˆØ× Ñ  ¨sÔ3ØŸ™›ó 	‰HˆC�Ø�K‰K˜!˜C˜5˜	Ô"Ø'×7Ñ7¸Ó<ˆLØ×Ñ×'Ñ'Ô)Ø×,Ñ,¨T°8Ó<ˆLÙØ×"Ñ" <Ô0Ø×"Ñ"×+Ñ+Ô-Ø×Ñ  3 % s˜|Ô,ð ˆJÙØ—?‘? kÒ1Ø!&§¡×!2Ñ!2°3Ó!7‘JØ—_‘_¨Ò-Ø!&§¡�JØ�N‰N˜<¨¨h¸¸jÔIØ�H‰HŽJð%	ð& (×7Ñ7¸ÓGÐØ×ÑÐ/°Ô5ÙØ×"Ñ" 3Õ'ð r   c                 ól  — |j                  d«      }| j                  |d«       |j                  «       D ]Û  \  }}|j                  d|› �«       |j                  |«      }	|	j                  j                  «        | j                  ||«      }
|
r+|	j                  |
«       |	j                  j                  «        |	j                  |dz   «       d }|r|j                  j                  |«      }| j                  |	||||«       |j                  «        ŒÝ |j                  d«      }| j                  |d«       y )Nzparam-valuesú(r=   ú=zending-parenthesisú))r   rC   rD   rE   r	   r   rF   r   rG   r   r:   rH   rI   )r   r   r8   r   r9   r"   r%   rL   rM   rN   rO   rP   Úparam_section_ends                r   r    z(SharedExampleDocumenter._document_params‚   s  € Ø×/Ñ/°Ó?ˆØ× Ñ  °Ô4ØŸ™›ò 	‰HˆC�Ø�K‰K˜!˜C˜5˜	Ô"Ø(×8Ñ8¸Ó=ˆLØ×Ñ×'Ñ'Ô)Ø×,Ñ,¨T°8Ó<ˆLÙØ×"Ñ" <Ô0Ø×"Ñ"×+Ñ+Ô-Ø×Ñ˜s S™yÔ)ð ˆJÙØ"Ÿ]™]×.Ñ.¨sÓ3�
Ø�N‰N˜<¨¨h¸¸jÔIØ�H‰H�Jð	ð  *×9Ñ9Ð:NÓOÐØ×ÑÐ0°#Õ6r   c                 ó  — |j                  d«      }| j                  |d«       |j                  }t        |«      D ]©  \  }}	|j                  |«      }
|
j                  j                  «        |j                  d|› d�«       | j                  ||«      }|r+|
j                  |«       |
j                  j                  «        | j                  |
|	|||«       |j                  «        Œ« |j                  d«      }| j                  |d«       y )Nzlist-sectionú[ú]zending-bracketz],)r   rC   ÚmemberÚ	enumerater	   r   rE   rF   r   r:   rH   rI   )r   r   r8   r   r9   r"   Úlist_sectionrP   ÚindexrM   rN   rO   Úlist_section_ends                r   r1   z&SharedExampleDocumenter._document_list˜   sð   € Ø×.Ñ.¨~Ó>ˆØ× Ñ  ¨sÔ3Ø—\‘\ˆ
Ü# EÓ*ò 		‰JˆE�3Ø'×7Ñ7¸Ó>ˆLØ×Ñ×'Ñ'Ô)Ø�K‰K˜!˜E˜7 !˜Ô%Ø×,Ñ,¨T°8Ó<ˆLÙØ×"Ñ" <Ô0Ø×"Ñ"×+Ñ+Ô-Ø�N‰N˜<¨¨h¸¸jÔIØ�H‰H�Jð		ð (×7Ñ7Ð8HÓIÐØ×ÑÐ/°Õ6r   c                 óD   — t        |«      }|j                  d|› d�«       y )Nr>   z',)r   r   )r   r   r8   r9   Ú
safe_values        r   r7   z%SharedExampleDocumenter._document_str©   s#   € ô % UÓ+ˆ
Ø�‰˜˜*˜ RÐ(Õ)r   c                 ó>   — |j                  t        |«      › d�«       y )NrB   )r   Ústr)r   r   r8   r9   s       r   r4   z(SharedExampleDocumenter._document_number¯   s   € Ø�‰œ˜U›˜ AÐ&Õ'r   c                 óØ   — t        |«      j                  «       }t        |d   «      }t        dt	        |«      «      D ]  }|dt        ||   «      z   z  }Œ |j                  d|› d�«       y )Nr   é   z, z	datetime(z),)r   Ú	timetuplerb   ÚrangeÚlenr   )r   r   r8   r9   Údatetime_tupleÚdatetime_strÚis          r   r6   z*SharedExampleDocumenter._document_datetime²   sm   € Ü(¨Ó/×9Ñ9Ó;ˆÜ˜>¨!Ñ,Ó-ˆÜ�qœ#˜nÓ-Ó.ò 	:ˆAØ˜D¤3 ~°aÑ'8Ó#9Ñ9Ñ9‰Lð	:à�‰˜	 , ¨rÐ2Õ3r   c                 ól   — t        j                  dddj                  |«      «      }|r||v rd||   z   S y)Nz^\.Ú z# )ÚreÚsubÚjoin)r   r9   r   rL   s       r   rF   z$SharedExampleDocumenter._get_comment¹   s7   € Ü�f‰f�V˜R §¡¨£Ó/ˆÙ˜˜x™Ø˜( 3™-Ñ'Ð'àr   c                 óŽ   — |j                  |«       |j                  j                  «        |j                  j                  «        y ©N)r   r	   Úindent)r   r   Ústarts      r   rC   z+SharedExampleDocumenter._start_nested_valueÀ   s.   € Ø�‰�eÔØ�‰×ÑÔØ�‰×ÑÕr   c                 óÂ   — |j                   j                  «        |j                   j                  «        |j                   j                  «        |j                  |«       y rq   )r	   Údedentr   r   )r   r   Úends      r   rI   z)SharedExampleDocumenter._end_nested_valueÅ   s>   € Ø�‰×ÑÔØ�‰×ÑÔØ�‰×ÑÔ Ø�‰�cÕr   N)F)Ú__name__Ú
__module__Ú__qualname__r   r   r   r:   r*   r    r1   r7   r4   r6   rF   rC   rI   © r   r   r   r      sK   „ òMò*.ò".ò"5ð4 @Eó(ò:7ò,7ò"*ò(ò4òòó
r   r   c                 ó   — | j                  d«      }|j                  j                  «        |j                  j                  d«       t	        «       }|D ])  }|j                  ||j                  |d   «      ||¬«       Œ+ y)a  Documents the shared examples

    :param section: The section to write to.

    :param operation_model: The model of the operation.

    :param example_prefix: The prefix to use in the method example.

    :param shared_examples: The shared JSON examples from the model.
    zshared-examplesÚExamplesÚid)r   r   r   r   N)r   r	   r
   Úboldr   r   )r   r   Úexample_prefixÚshared_examplesÚcontainer_sectionÚ
documenterr   s          r   Údocument_shared_examplesrƒ   Ì   s�   € ð  ×/Ñ/Ð0AÓBÐØ×Ñ×)Ñ)Ô+Ø×Ñ× Ñ  Ô,Ü(Ó*€JØ"ò 
ˆØ×*Ñ*ØØ%×5Ñ5°g¸d±mÓDØ!Ø+ð	 	+õ 	
ñ
r   )r2   rm   Úbotocore.docs.utilsr   Úbotocore.utilsr   r   rƒ   rz   r   r   ú<module>r†      s%   ðó Û 	å /Ý *÷uñ uóp
r   