o
    	Jh#                     @   sn   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
 d dlmZ G dd	 d	Z	
dddZdS )    N)
xform_name)OrderedDict)DocumentStructure)document_model_driven_method)DocumentedShape)get_service_module_namec                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
PaginatorDocumenterc                 C   s6   || _ | j jj| _| j jjj| _|| _|| _	d| _
d S )NzMhttps://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html)_client	__class____name___client_class_namemetaservice_modelservice_name_service_name_service_paginator_model_root_docs_path_USER_GUIDE_LINK)selfclientservice_paginator_modelroot_docs_path r   w/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/botocore/docs/paginator.py__init__   s   zPaginatorDocumenter.__init__c                 C   s   |j d | | |j   |d |j   t| jj}|D ]*}|j 	| j
 d|  t|dd}| || tj| j| j
d}||| q"dS )zhDocuments the various paginators for a service

        param section: The section to write to.
        
PaginatorszThe available paginators are:z/paginator/html)target	paginatorN)styleh2_add_overviewnew_linewritelntoctreesortedr   _paginator_configtocitemr   r   _add_paginatorospathjoinr   write_to_file)r   sectionpaginator_namespaginator_namepaginator_doc_structurepaginator_dir_pathr   r   r   document_paginators#   s.   




z'PaginatorDocumenter.document_paginatorsc                 C   s   | d}|j| jd| j  |d|  || | |}|jj| j d| d |j  |j	  |dt
| d |j  |j	  | j|}t||| jjj| jjj|d d S )	N
breadcrumbz../../z / Paginator / z.Paginator.)
class_namez"paginator = client.get_paginator('z'))r-   r/   event_emitterr   paginator_config)add_new_sectionr   refr   r   writeadd_title_sectionstart_sphinx_py_classstart_codeblockr"   r   end_codeblockr   get_paginatordocument_paginate_methodr	   r   eventsr   )r   r-   r/   breadcrumb_sectionpaginator_sectionr6   r   r   r   r(   E   s6   







z"PaginatorDocumenter._add_paginatorc                 C   s>   |j   |d |j jd| jd |d |j   d S )NzPaginators are available on a client instance via the ``get_paginator`` method. For more detailed instructions and examples on the usage of paginators, see the paginators z
user guide)titlelink.)r   r"   r9   external_linkr   )r   r-   r   r   r   r!   i   s   

z!PaginatorDocumenter._add_overviewN)r   
__module____qualname__r   r2   r(   r!   r   r   r   r   r      s
    "$r   Tc                 C   s&  | |}t }tdddd|d< |ddr tdddd|d< td	d
dd|d	< tddd|dg}tdd
ddg}	g }
t|d trJ|
|d 7 }
n|
|d  |ddr^|
|d  g }t|d trn||d 7 }n||d  dt| dt| d}t	| d|||d||	|
||d dS )a  Documents the paginate method of a paginator

    :param section: The section to write to

    :param paginator_name: The name of the paginator. It is snake cased.

    :param event_emitter: The event emitter to use to emit events

    :param service_model: The service model

    :param paginator_config: The paginator config associated to a particular
        paginator.

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    MaxItemsintegerz<p>The total number of items to return. If the total number of items available is more than the value specified in max-items then a <code>NextToken</code> will be provided in the output that you can use to resume pagination.</p>)name	type_namedocumentation	limit_keyNPageSizez<p>The size of each page.<p>StartingTokenstringzq<p>A token to specify where to start paginating. This is the <code>NextToken</code> from a previous response.</p>PaginationConfig	structurezC<p>A dictionary that provides parameters to control pagination.</p>)rK   rL   rM   members	NextTokenz$<p>A token to resume pagination.</p>input_tokenoutput_tokenzHCreates an iterator that will paginate through responses from :py:meth:`z.Client.z`.paginatez&response_iterator = paginator.paginate)r5   method_descriptionexample_prefixinclude_inputinclude_outputexclude_inputexclude_outputinclude_signature)
operation_modelr   r   get
isinstancelistappendr   r   r   )r-   r/   r5   r   r6   r_   r`   pagination_config_membersbotocore_pagination_params#botocore_pagination_response_paramsservice_pagination_params"service_pagination_response_paramspaginate_descriptionr   r   r   r?   y   s|   




r?   )T)r)   botocorer   botocore.compatr   botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.docs.utilsr   botocore.utilsr   r   r?   r   r   r   r   <module>   s   h