o
    $`^h                     @   sp   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZ G dd deZ		dd
dZdS )    N)
xform_name)DocumentStructure)get_service_module_name)NestedDocumenter)add_resource_type_overview!get_identifier_args_for_signatureget_identifier_description!get_identifier_values_for_examplec                   @   s   e Zd Zdd ZdS )SubResourceDocumenterc           	      C   s   t |dddd t| jjjjdd d}g }|| jd< |D ]W}||j t	|jd	d
}|
d}|j| jd |d|j  ||j |j
|jd| j did}t|| j|| jd tj| j| j | j }|||j qd S )NzSub-resourceszSub-resources are methods that create a new instance of a child resource. This resource's identifiers get passed along to the child.subresources_intro)sectionresource_typedescription
intro_linkc                 S   s   | j S )N)name)sub_resource r   T/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/boto3/docs/subresource.py<lambda>*   s    z>SubResourceDocumenter.document_sub_resources.<locals>.<lambda>)keyzsub-resourceshtml)target
breadcrumbindexz / Sub-Resource / 	qualifier.)context)r   resource_namesub_resource_modelservice_model)r   sorted	_resourcemetaresource_modelsubresources
member_mapappendr   r   add_new_sectionstyleref_resource_class_namewriteadd_title_section
class_namedocument_sub_resource_resource_name_service_modelospathjoin_root_docs_path_service_name_resource_sub_pathwrite_to_file)	selfr   sub_resourcessub_resources_listr   sub_resource_docbreadcrumb_sectionsub_resource_sectionsub_resources_dir_pathr   r   r   document_sub_resources   sP   



	z,SubResourceDocumenter.document_sub_resourcesN)__name__
__module____qualname__r?   r   r   r   r   r
      s    r
   Tc                 C   s  g }|j jD ]}|jdkr|t|j q|r/t|}| jdd |j	 }| j
|| | d}	d|j j d}
|	|
 | d}t|}t|}|j|krU|}t|j j d| d	|j	 d
| d}|j
  || |j
  | d}|D ]&}t|j	|}
|d| d |j
  |d| d|
  |j
  q~| d}|j
  |dt| d	|j j d |j
  |d|j j d |j
  dS )aj  Documents a resource action

    :param section: The section to write to

    :param resource_name: The name of the resource

    :param sub_resource_model: The model of the subresource

    :param service_model: The model of the service

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    inputr    zmethod-introz
Creates a z
 resource.examplez = r   ()paramsz:type z: stringz:param z: returnz:rtype: :py:class:``z:returns: A z	 resourceN)resourceidentifierssourcer&   r   r   r   r   getr   r(   start_sphinx_py_methodr'   typeinclude_doc_stringr	   service_namestart_codeblockr+   end_codeblockr   new_liner   )r   r   r   r   include_signatureidentifiers_needed
identifiersignature_argsfull_sub_resource_namemethod_intro_sectionr   example_sectionexample_valuesexample_resource_namerE   param_sectionreturn_sectionr   r   r   r.   O   sV   




&







r.   )T)r1   botocorer   botocore.docs.bcdoc.restdocr   botocore.utilsr   boto3.docs.baser   boto3.docs.utilsr   r   r   r	   r
   r.   r   r   r   r   <module>   s   8