o
    é’OjB!  ã                   @   sp   d dl Z d dlmZ d dlmZ d dlmZ d dlZd dl	m
Z
 d dlmZmZ d dlmZ G dd	„ d	eƒZdS )
é    N)ÚDocumentStructure)ÚServiceDocumenter)ÚDataNotFoundError)ÚBoto3ClientDocumenter)ÚResourceDocumenterÚServiceResourceDocumenter)ÚServiceContextc                       sl   e Zd Zej ej ej¡d¡Z	‡ fdd„Z
dd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Z‡  ZS )r   Úexamplesc                    sf   t ƒ j||j|d� || _| j |¡| _d | _| j| j ¡ v r&| j 	|¡| _g d¢| _
|| _d| _d S )N)Úservice_nameÚsessionÚroot_docs_path)ÚtitleÚclientÚ
paginatorsÚwaitersÚ	resourcesr	   úcontext-paramsz=https://docs.aws.amazon.com/boto3/latest/guide/resources.html)ÚsuperÚ__init__Ú_sessionÚ_boto3_sessionr   Ú_clientÚ_service_resourceÚ_service_nameÚget_available_resourcesÚresourceÚsectionsÚ_root_docs_pathÚ_USER_GUIDE_LINK)Úselfr
   r   r   ©Ú	__class__© úX/var/www/html/pharmsmart-cdr-gen/venv/lib/python3.10/site-packages/boto3/docs/service.pyr      s   û
	ÿzServiceDocumenter.__init__c                 C   s”   t | j| jdd�}|  | d¡¡ |  | d¡¡ |  | d¡¡ |  | d¡¡ | jr4|  	| d¡¡ |  
| d¡¡ | d	¡}|  |¡ | ¡ S )
ziDocuments an entire service.

        :returns: The reStructured text of the documented service.
        Úhtml)Úsection_namesÚtargetr   r   r   r   r   r	   r   )r   r   r   r   Úget_sectionÚ
client_apiÚpaginator_apiÚ
waiter_apir   Úresource_sectionÚ_document_examplesÚclient_context_paramsÚflush_structure)r   Údoc_structureÚcontext_params_sectionr"   r"   r#   Údocument_service8   s   
ÿ

z"ServiceDocumenter.document_servicec                 C   sB   d }z|   | j¡}W n	 ty   Y nw t| j| j|ƒ |¡ d S )N)Úget_examplesr   r   r   r   r   Údocument_client)r   Úsectionr	   r"   r"   r#   r(   L   s   ÿ
ÿzServiceDocumenter.client_apic                 C   s†   |j  d¡ |j  ¡  | d¡ |j jd| jd� | d¡ |j  ¡  |j  ¡  | d¡ |j  ¡  |j  ¡  |  |¡ |  |¡ d S )NÚ	Resourcesz—Resources are available in boto3 via the ``resource`` method. For more detailed instructions and examples on the usage of resources, see the resources z
user guide)r   ÚlinkÚ.zThe available resources are:)	ÚstyleÚh2Únew_lineÚwriteÚexternal_linkr   ÚtoctreeÚ_document_service_resourceÚ_document_resources)r   r4   r"   r"   r#   r+   W   s"   
ÿþ






z"ServiceDocumenter.resource_sectionc                 C   s´   t ddd�}| d¡}|j | jjjd| j› �¡ | d¡ t	| j
| j| jƒ |¡ | j
jjj}|| jkr7d}tj | j| j› | ¡ › ¡}| |d¡ |j | j› d|› d	�¡ d S )
Nzservice-resourcer$   ©r&   Ú
breadcrumbú../../z / Resource / ServiceResourceÚindexú/ú/index)r   Úadd_new_sectionr8   Úrefr   r!   Ú__name__r   r;   r   r   r   r   Údocument_resourceÚmetaÚresource_modelÚnameÚosÚpathÚjoinÚlowerÚwrite_to_fileÚtocitem)r   r4   Úservice_resource_docÚbreadcrumb_sectionÚresource_nameÚservice_resource_dir_pathr"   r"   r#   r>   m   s,   ÿ
ÿ
ÿ
ýz,ServiceDocumenter._document_service_resourcec              
   C   sX  d}| j  d¡}| | jd¡}| jjjjj}|d D ]�}|d | }| jj	j
||t| j|d |d d�d�}|jjj}	g }
|	D ]}|
 |¡ q>||
d| jiŽ}|jjj ¡ }t|dd	�}| d
¡}|j | jjjd| j› �¡ | d|jjj› �¡ t|| j | jƒ | |jjj¡¡ tj | j| j› |› ¡}| |d¡ |j  | j› d|› d�¡ qd S )NÚfooÚdata_loaderzresources-1r   )r
   Úresource_json_definitionsÚservice_modelÚservice_waiter_model)rU   Úsingle_resource_json_definitionÚservice_contextr   r$   r@   rA   rB   z / Resource / rC   rD   rE   )!r   Úget_componentÚload_service_modelr   r   rJ   r   rZ   r   Úresource_factoryÚload_from_definitionr   rK   ÚidentifiersÚappendr   rL   rP   r   rF   r8   rG   r!   rH   r;   r   r   rI   rM   rN   rO   rQ   rR   )r   r4   Útemp_identifier_valueÚloaderÚjson_resource_modelrZ   rU   rK   Úresource_clsrb   ÚargsÚ_r   Úresource_docrT   rV   r"   r"   r#   r?   ‡   sf   ÿÿúýÿ

ÿÿ
ÿÿýÿÔz%ServiceDocumenter._document_resourcesc                 C   s    t j t j | j| j› d�¡¡S )Nz.rst)rM   rN   ÚrealpathrO   ÚEXAMPLE_PATHr   )r   r"   r"   r#   Ú_get_example_file¾   s   ÿz#ServiceDocumenter._get_example_filec                 C   sj   |   ¡ }tj |¡r3|j d¡ |j ¡  t|ƒ�}| | 	¡ ¡ W d   ƒ d S 1 s,w   Y  d S d S )NÚExamples)
rm   rM   rN   Úisfiler8   r9   r:   Úopenr;   Úread)r   r4   Úexamples_fileÚfr"   r"   r#   r,   Ã   s   

"ÿýz$ServiceDocumenter._document_examples)rH   Ú
__module__Ú__qualname__rM   rN   rO   ÚdirnameÚboto3Ú__file__rl   r   r1   r(   r+   r>   r?   rm   r,   Ú__classcell__r"   r"   r    r#   r      s    7r   )rM   Úbotocore.docs.bcdoc.restdocr   Úbotocore.docs.servicer   ÚBaseServiceDocumenterÚbotocore.exceptionsr   rw   Úboto3.docs.clientr   Úboto3.docs.resourcer   r   Úboto3.utilsr   r"   r"   r"   r#   Ú<module>   s   