
    /Jf                     z    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	          Z	 ddZdS )    N)
xform_name)OrderedDict)DocumentStructure)document_model_driven_method)DocumentedShape)get_service_module_namec                   &    e Zd Zd Zd Zd Zd ZdS )WaiterDocumenterc                     || _         | j         j        j        | _        | j         j        j        j        | _        || _        || _	        d| _
        d S )NzRhttps://boto3.amazonaws.com/v1/documentation/api/latest/guide/clients.html#waiters)_client	__class____name___client_class_namemetaservice_modelservice_name_service_name_service_waiter_model_root_docs_path_USER_GUIDE_LINK)selfclientservice_waiter_modelroot_docs_paths       W/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/botocore/docs/waiter.py__init__zWaiterDocumenter.__init__   sP    "&,"8"A!\.<I%9"-E 	    c                 (   |j                             d           |                     |           |j                                          |                    d           |j                                          | j        j        D ]}|j                             | j	         d|            t          |d          }|                     ||           t          j                            | j        | j	        d          }|                    ||           dS )zgDocuments the various waiters for a service.

        :param section: The section to write to.
        WaiterszThe available waiters are:z/waiter/html)targetwaiterN)styleh2_add_overviewnew_linewritelntoctreer   waiter_namestocitemr   r   _add_single_waiterospathjoinr   write_to_file)r   sectionwaiter_namewaiter_doc_structurewaiter_dir_paths        r   document_waitersz!WaiterDocumenter.document_waiters#   s%   
 	###7###   45555B 	M 	MKM!!T%7"N"N"N"NOOO#4F$ $ $  ##$8+FFF !gll$d&8( O !..LLLL	M 	Mr   c                    |                     d          }|j                            | j        d| j                    |                    d|            |                    |           |                     |          }|j                            | j         d|            |j                                         |j        	                                 |                    dt          |          z             |j                                         |j        	                                 t          ||| j        j        j        | j        j        j        | j                   d S )N
breadcrumbz../../z / Waiter / z.Waiter.)
class_namez waiter = client.get_waiter('%s'))r0   r1   event_emitterr   r   )add_new_sectionr#   refr   r   writeadd_title_sectionstart_sphinx_py_classstart_codeblockr&   r   end_codeblockdocument_wait_methodr   r   eventsr   r   )r   r0   r1   breadcrumb_sectionwaiter_sections        r   r+   z#WaiterDocumenter._add_single_waiter;   s   $44\BB $$#%Bd.@%B%B	
 	
 	
 	  !=!=!=>>>!!+... 00==221HH;HH 	3 	
 	
 	

 	,,...%%'''0:k3J3JJ	
 	
 	
 	**,,, 	%%'''"#,+2,+9!%!;	
 	
 	
 	
 	
 	
r   c                     |j                                          |                    d           |j                             d| j                   |                    d           |j                                          d S )NzWaiters are available on a client instance via the ``get_waiter`` method. For more detailed instructions and examples on the usage or waiters, see the waiters z
user guide)titlelink.)r#   r&   r;   external_linkr   )r   r0   s     r   r%   zWaiterDocumenter._add_overviewY   s       	
 	
 	
 	##& 	$ 	
 	
 	
 	c     r   N)r   
__module____qualname__r   r4   r+   r%    r   r   r
   r
      sS        	
 	
 	
M M M0
 
 
<! ! ! ! !r   r
   Tc                    |                     |          }|                    |j                  }t                      }t	          ddd                    |j                            |d<   t	          ddd                    |j                            |d<   t	          ddd	|
          g}	d                    t          |          t          |j                  |j        |j                  }
t          | d|||
d|	d|	  	         dS )a  Documents a the wait method of a waiter

    :param section: The section to write to

    :param waiter_name: The name of the waiter

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

    :param service_model: The service model

    :param service_waiter_model: The waiter model associated to the service

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    DelayintegerzJ<p>The amount of time in seconds to wait between attempts. Default: {}</p>)name	type_namedocumentationMaxAttemptsz=<p>The maximum number of attempts to be made. Default: {}</p>WaiterConfig	structurezI<p>A dictionary that provides parameters to control waiting behavior.</p>)rO   rP   rQ   memberszPolls :py:meth:`{}.Client.{}` every {} seconds until a successful state is reached. An error is returned after {} failed checks.waitzwaiter.waitF)r8   method_descriptionexample_prefixinclude_inputdocument_outputinclude_signatureN)
get_waiteroperation_model	operationr   r   formatdelaymax_attemptsr   r   r   )r0   r1   r8   r   r   r[   waiter_modelr]   waiter_config_membersbotocore_waiter_paramswait_descriptions              r   r@   r@   i   sK   . (22;??L#33L4JKKO'MM%4((.|/A(B(B& & &'" ,;$f\%>??, , ,-( 	!( *	
 	
 	

	++16#M22|-..%	,
 ,
  !#+$,+
 
 
 
 
 
r   )T)r,   botocorer   botocore.compatr   botocore.docs.bcdoc.restdocr   botocore.docs.methodr   botocore.docs.utilsr   botocore.utilsr   r
   r@   rK   r   r   <module>rl      s    
			       ' ' ' ' ' ' 9 9 9 9 9 9 = = = = = = / / / / / / 2 2 2 2 2 2O! O! O! O! O! O! O! O!p O O O O O Or   