U
    ´.¬bØ  ã                   @   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-7h_bjh9e/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 )	NzÑWaits 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   & ù