§
    9xÅjò#  ã                   óN   — d dl Z d dlZd dlmZ d dlmZ  G d„ d¦  «        Zd„ ZdS )é    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dS )ÚSharedExampleDocumenterc                 ó,  — |j                              ¦   «          |                     |                     d¦  «        ¦  «         |j                              ¦   «          |                      ||||j        ¦  «         |                      |||j        ¦  «         dS )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        úLC:\Projects\Historical\venv\Lib\site-packages\botocore/docs/sharedexample.pyÚdocument_shared_examplez/SharedExampleDocumenter.document_shared_example   s‘   € ð 	Œ×#Ò#Ñ%Ô%Ð%Ø�Š�g—k’k -Ñ0Ô0Ñ1Ô1Ð1ØŒ×ÒÑ Ô Ð Ø×ÒØ�W˜f oÔ&Añ	
ô 	
ð 	
ð 	×Ò˜W g¨Ô/KÑLÔLÐLÐLÐLó    c                 óZ  — |                      d¦  «        }|j                             ¦   «          |�|                     |¦  «         |                     di ¦  «        }|                     d¦  «        }|r|                     d¦  «        }|                      d¦  «        }|                      |||g |¦  «         |                      d¦  «        }	|	j                             ¦   «          |	j                             ¦   «          |	                     d¦  «         |	j                             ¦   «          d S )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Ô8ˆØÔ×+Ò+Ñ-Ô-Ð-ØÐØ×Ò Ñ'Ô'Ð'Ø—’˜W bÑ)Ô)ˆØ—;’;˜zÑ*Ô*ˆØð 	-Ø—|’| GÑ,Ô,ˆHØ%×5Ò5°lÑCÔCˆØ×Ò˜m¨V°X¸rÀ5ÑIÔIÐIØ'×7Ò7¸ÑFÔFˆØÔ×&Ò&Ñ(Ô(Ð(ØÔ×&Ò&Ñ(Ô(Ð(Ø×ÒÐ/Ñ0Ô0Ð0ØÔ×+Ò+Ñ-Ô-Ð-Ð-Ð-r   c                 ó  — |                      d¦  «        }|j                             ¦   «          |                     d¦  «         |j                             ¦   «          |j                             ¦   «          |                     di ¦  «        }ddi|d<   |                     d¦  «        }|r|                     d¦  «        }|                      |||g |d¦  «         |                      d¦  «        }|j                             ¦   «          d S )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Ô0Ð0ØÔ×%Ò%Ñ'Ô'Ð'ØÔ×,Ò,Ñ.Ô.Ð.Ø—’˜X rÑ*Ô*ˆð ',¨U ^ˆÐ!Ñ"Ø—;’;˜zÑ*Ô*ˆØð 	.Ø—|’| HÑ-Ô-ˆHØ×Ò˜N¨F°H¸bÀ%ÈÑNÔNÐNØ(×8Ò8¸ÑHÔHˆØÔ×+Ò+Ñ-Ô-Ð-Ð-Ð-r   c                 ó¦  — t          |t          ¦  «        r|                      |||||¦  «         dS t          |t          ¦  «        r|                      |||||¦  «         dS t          |t
          j        ¦  «        r|                      |||¦  «         dS |r$|j        dk    r|  	                    |||¦  «         dS |  
                    |||¦  «         dS )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Ñ"Ô"ð 		5Ø×Ò ¨°¸$ÀÑFÔFÐFÐFÐFÝ˜�tÑ$Ô$ð 	5Ø×Ò ¨°¸$ÀÑFÔFÐFÐFÐFÝ˜�wœ~Ñ.Ô.ð 	5Ø×!Ò! '¨5°$Ñ7Ô7Ð7Ð7Ð7Øð 	5�u”¨+Ò5Ð5Ø×#Ò# G¨U°DÑ9Ô9Ð9Ð9Ð9à×Ò˜w¨¨tÑ4Ô4Ð4Ð4Ð4r   Fc                 ó8  — |                      d¦  «        }|                      |d¦  «         |                     ¦   «         D �]\  }}	|                     d|› �¦  «         |                      |¦  «        }
|
j                             ¦   «          |                      ||¦  «        }|r.|
                     |¦  «         |
j                             ¦   «          |
                     d|› d�¦  «         d }|r8|j        dk    r|j	         
                    |¦  «        }n|j        dk    r|j        }|                      |
|	|||¦  «         |                     ¦   «          �Œ|                      d¦  «        }|                      |d	¦  «         |s|                     d
¦  «         d S d S )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   s±  € ð ×.Ò.¨|Ñ<Ô<ˆØ× Ò  ¨sÑ3Ô3Ð3ØŸš™œð 	ñ 	‰HˆC�Ø�KŠK˜	˜C˜	˜	Ñ"Ô"Ð"Ø'×7Ò7¸Ñ<Ô<ˆLØÔ×'Ò'Ñ)Ô)Ð)Ø×,Ò,¨T°8Ñ<Ô<ˆLØð .Ø×"Ò" <Ñ0Ô0Ð0ØÔ"×+Ò+Ñ-Ô-Ð-Ø×Ò˜| 3˜|˜|˜|Ñ,Ô,Ð,ð ˆJØð -Ø”? kÒ1Ð1Ø!&¤×!2Ò!2°3Ñ!7Ô!7�J�JØ”_¨Ò-Ð-Ø!&¤�JØ�NŠN˜<¨¨h¸¸jÑIÔIÐIØ�HŠH‰JŒJˆJ‰JØ'×7Ò7¸ÑGÔGÐØ×ÒÐ/°Ñ5Ô5Ð5Øð 	(Ø×"Ò" 3Ñ'Ô'Ð'Ð'Ð'ð	(ð 	(r   c                 óÄ  — |                      d¦  «        }|                      |d¦  «         |                     ¦   «         D ]ô\  }}|                     d|› �¦  «         |                      |¦  «        }	|	j                             ¦   «          |                      ||¦  «        }
|
r.|	                     |
¦  «         |	j                             ¦   «          |	                     |dz   ¦  «         d }|r|j         	                    |¦  «        }|  
                    |	||||¦  «         |                     ¦   «          Œõ|                      d¦  «        }|                      |d¦  «         d S )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‚   sc  € Ø×/Ò/°Ñ?Ô?ˆØ× Ò  °Ñ4Ô4Ð4ØŸš™œð 	ð 	‰HˆC�Ø�KŠK˜	˜C˜	˜	Ñ"Ô"Ð"Ø(×8Ò8¸Ñ=Ô=ˆLØÔ×'Ò'Ñ)Ô)Ð)Ø×,Ò,¨T°8Ñ<Ô<ˆLØð .Ø×"Ò" <Ñ0Ô0Ð0ØÔ"×+Ò+Ñ-Ô-Ð-Ø×Ò˜s S™yÑ)Ô)Ð)ð ˆJØð 4Ø"œ]×.Ò.¨sÑ3Ô3�
Ø�NŠN˜<¨¨h¸¸jÑIÔIÐIØ�HŠH‰JŒJˆJˆJØ)×9Ò9Ð:NÑOÔOÐØ×ÒÐ0°#Ñ6Ô6Ð6Ð6Ð6r   c                 ó^  — |                      d¦  «        }|                      |d¦  «         |j        }t          |¦  «        D ]¿\  }}	|                      |¦  «        }
|
j                             ¦   «          |                     d|› d�¦  «         |                      ||¦  «        }|r.|
                     |¦  «         |
j                             ¦   «          |  	                    |
|	|||¦  «         | 
                    ¦   «          ŒÀ|                      d¦  «        }|                      |d¦  «         d S )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˜   s0  € Ø×.Ò.¨~Ñ>Ô>ˆØ× Ò  ¨sÑ3Ô3Ð3Ø”\ˆ
Ý# EÑ*Ô*ð 		ð 		‰JˆE�3Ø'×7Ò7¸Ñ>Ô>ˆLØÔ×'Ò'Ñ)Ô)Ð)Ø�KŠK˜˜E˜˜˜Ñ%Ô%Ð%Ø×,Ò,¨T°8Ñ<Ô<ˆLØð .Ø×"Ò" <Ñ0Ô0Ð0ØÔ"×+Ò+Ñ-Ô-Ð-Ø�NŠN˜<¨¨h¸¸jÑIÔIÐIØ�HŠH‰JŒJˆJˆJØ'×7Ò7Ð8HÑIÔIÐØ×ÒÐ/°Ñ6Ô6Ð6Ð6Ð6r   c                 óV   — t          |¦  «        }|                     d|› d�¦  «         d S )Nr>   z',)r   r   )r   r   r8   r9   Ú
safe_values        r   r7   z%SharedExampleDocumenter._document_str©   s5   € õ % UÑ+Ô+ˆ
Ø�ŠÐ(˜*Ð(Ð(Ð(Ñ)Ô)Ð)Ð)Ð)r   c                 óP   — |                      t          |¦  «        › d�¦  «         d S )NrB   )r   Ústr)r   r   r8   r9   s       r   r4   z(SharedExampleDocumenter._document_number¯   s)   € Ø�Š�˜U™œÐ&Ð&Ð&Ñ'Ô'Ð'Ð'Ð'r   c                 ó  — t          |¦  «                             ¦   «         }t          |d         ¦  «        }t          dt	          |¦  «        ¦  «        D ]}|dt          ||         ¦  «        z   z  }Œ|                     d|› d�¦  «         d S )Nr   é   z, z	datetime(z),)r   Ú	timetuplerb   ÚrangeÚlenr   )r   r   r8   r9   Údatetime_tupleÚdatetime_strÚis          r   r6   z*SharedExampleDocumenter._document_datetime²   s�   € Ý(¨Ñ/Ô/×9Ò9Ñ;Ô;ˆÝ˜>¨!Ô,Ñ-Ô-ˆÝ�q�#˜nÑ-Ô-Ñ.Ô.ð 	:ð 	:ˆAØ˜D¥3 ~°aÔ'8Ñ#9Ô#9Ñ9Ñ9ˆLˆLØ�ŠÐ2 ,Ð2Ð2Ð2Ñ3Ô3Ð3Ð3Ð3r   c                 óz   — t          j        ddd                     |¦  «        ¦  «        }|r||v rd||         z   S dS )Nz^\.Ú z# )ÚreÚsubÚjoin)r   r9   r   rL   s       r   rF   z$SharedExampleDocumenter._get_comment¹   sC   € ÝŒf�V˜R §¢¨¡¤Ñ/Ô/ˆØð 	˜˜x˜˜Ø˜( 3œ-Ñ'Ð'à�2r   c                 ó”   — |                      |¦  «         |j                             ¦   «          |j                             ¦   «          d S ©N)r   r	   Úindent)r   r   Ústarts      r   rC   z+SharedExampleDocumenter._start_nested_valueÀ   sB   € Ø�Š�eÑÔÐØŒ×ÒÑÔÐØŒ×ÒÑÔÐÐÐr   c                 óÆ   — |j                              ¦   «          |j                              ¦   «          |j                              ¦   «          |                     |¦  «         d S rq   )r	   Údedentr   r   )r   r   Úends      r   rI   z)SharedExampleDocumenter._end_nested_valueÅ   sV   € ØŒ×ÒÑÔÐØŒ×ÒÑÔÐØŒ×ÒÑ Ô Ð Ø�Š�cÑÔÐÐÐr   N)F)Ú__name__Ú
__module__Ú__qualname__r   r   r   r:   r*   r    r1   r7   r4   r6   rF   rC   rI   © r   r   r   r      sæ   € € € € € ðMð Mð Mð*.ð .ð .ð".ð .ð .ð"5ð 5ð 5ð4 @Eð(ð (ð (ð (ð:7ð 7ð 7ð,7ð 7ð 7ð"*ð *ð *ð(ð (ð (ð4ð 4ð 4ðð ð ðð ð ð
ð ð ð ð r   r   c                 ó   — |                       d¦  «        }|j                             ¦   «          |j                             d¦  «         t	          ¦   «         }|D ]4}|                     ||                      |d         ¦  «        ||¬¦  «         Œ5dS )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ÔBÐØÔ×)Ò)Ñ+Ô+Ð+ØÔ× Ò  Ñ,Ô,Ð,Ý(Ñ*Ô*€JØ"ð 
ð 
ˆØ×*Ò*ØØ%×5Ò5°g¸d´mÑDÔDØ!Ø+ð	 	+ñ 	
ô 	
ð 	
ð 	
ð
ð 
r   )r2   rm   Úbotocore.docs.utilsr   Úbotocore.utilsr   r   rƒ   rz   r   r   ú<module>r†      s‡   ðð €€€Ø 	€	€	€	à /Ð /Ð /Ð /Ð /Ð /Ø *Ð *Ð *Ð *Ð *Ð *ðuð uð uð uð uñ uô uð uðp
ð 
ð 
ð 
ð 
r   