o
    $`^h-                     @   st   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mZ G dd	 d	e
Z	
dddZdS )    N)
xform_name)DocumentStructure)document_model_driven_method)get_service_module_name)NestedDocumenter)add_resource_type_overviewget_resource_ignore_paramsc                       s$   e Zd Z fddZdd Z  ZS )WaiterResourceDocumenterc                    s   t  || || _d S )N)super__init___service_waiter_model)selfresourceservice_waiter_modelroot_docs_path	__class__ O/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/boto3/docs/waiter.pyr      s   
z!WaiterResourceDocumenter.__init__c           	   	   C   s   | j jjj}t|dddd g }|| jd< |D ]_}||j t|jdd}|	d}|j
| jd	 |d
|j  ||j |j	|jd| j did}t|| j| j jjjj| j|| jd tj| j| j | j }|||j qd S )NWaiterszNWaiters provide an interface to wait for a resource to reach a specific state.waiters_intro)sectionresource_typedescription
intro_linkwaitershtml)target
breadcrumbindexz / Waiter / 	qualifier.)context)r   resource_nameevent_emitterservice_modelresource_waiter_modelr   )	_resourcemetaresource_modelr   r   
member_mapappendnamer   add_new_sectionstyleref_resource_class_namewriteadd_title_section
class_namedocument_resource_waiter_resource_nameclientevents_service_modelr   ospathjoin_root_docs_path_service_name_resource_sub_pathwrite_to_file)	r   r   r   waiter_listwaiter
waiter_docbreadcrumb_sectionwaiter_sectionwaiters_dir_pathr   r   r   document_resource_waiters    sF   	


z2WaiterResourceDocumenter.document_resource_waiters)__name__
__module____qualname__r   rF   __classcell__r   r   r   r   r	      s    r	   Tc              
   C   s   | |j}||j}t|j}	t|}
d|d|j	
ddd  |
t|j|
t|j|j|j}t| d|j	 }| jdd |j	 }t| ||||||	|d d	| jv ro| d	}|  |  |d
 d S d S )NzWaits until this {} is {}. This method calls :py:meth:`{}.Waiter.{}.wait` which polls :py:meth:`{}.Client.{}` every {} seconds until a successful state is reached. An error is raised after {} failed checks. _   r!   r     )r   method_nameoperation_modelr$   example_prefixmethod_descriptionexclude_inputinclude_signaturereturnz:returns: None)
get_waiterwaiter_namerP   	operationr   paramsr   formatr;   r,   splitr   delaymax_attemptsr"   getr   available_sectionsget_section
clear_textremove_all_sectionsr1   )r   r#   r$   r%   r&   r   rT   waiter_modelrP   ignore_paramsservice_module_namer   rQ   full_waiter_namereturn_sectionr   r   r   r4   K   sL   	



r4   )T)r9   botocorer   botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.utilsr   boto3.docs.baser   boto3.docs.utilsr   r   r	   r4   r   r   r   r   <module>   s   7