U
    O8c                     @   s^   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 )    )
xform_name)document_model_driven_method)get_service_module_name)BaseDocumenter)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	__class__ 5/tmp/pip-unpacked-wheel-hml_76kf/boto3/docs/waiter.pyr
      s    z!WaiterResourceDocumenter.__init__c              	   C   st   | j jjj}t|dddd g }|| jd< |D ]@}||j}||j t	|| j
| j jjjj| j|| jd q.d S )NZWaiterszNWaiters provide an interface to wait for a resource to reach a specific state.Zwaiters_intro)sectionZresource_typedescriptionZ
intro_linkwaiters)r   resource_nameevent_emitterservice_modelresource_waiter_modelr   )Z	_resourcemetaZresource_modelr   r   
member_mapZadd_new_sectionnameappenddocument_resource_waiterZ_resource_nameclienteventsZ_service_modelr   )r   r   r   Zwaiter_listwaiterZwaiter_sectionr   r   r   document_resource_waiters   s(    	
z2WaiterResourceDocumenter.document_resource_waiters)__name__
__module____qualname__r
   r"   __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}dt||j	}t| |j	|||||	|d d| jkr| d}|  |  |d 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 returned after {} failed checks. _   z{}.{})r   method_nameoperation_modelr   example_prefixZmethod_descriptionZexclude_inputinclude_signaturereturnz:returns: None)Z
get_waiterZwaiter_namer+   Z	operationr   paramsr   formatjoinr   splitr   delayZmax_attemptsr   Zavailable_sectionsZget_sectionZ
clear_textZremove_all_sectionswrite)r   r   r   r   r   r   r-   Zwaiter_modelr+   Zignore_paramsZservice_module_namer   r,   Zreturn_sectionr   r   r   r   7   sH    	
 


r   N)T)Zbotocorer   Zbotocore.docs.methodr   Zbotocore.utilsr   Zboto3.docs.baser   Zboto3.docs.utilsr   r   r   r   r   r   r   r   <module>   s   & 