
    /Jf/                     r    d dl Z d dlZd dlmZmZ d dlmZmZ dZd Z		 ddZ
	 ddZd Z	 	 	 	 	 	 	 	 dd
ZdS )    N)RequestExampleDocumenterResponseExampleDocumenter)RequestParamsDocumenterResponseParamsDocumenterz'https://docs.aws.amazon.com/goto/WebAPIc                     t          j        |           }i }|D ]3\  }}|                    d          st          j        |          r|||<   4|S )a  Retrieves an objects public methods

    :param instance: The instance of the class to inspect
    :rtype: dict
    :returns: A dictionary that represents an instance's methods where
        the keys are the name of the methods and the
        values are the handler to the method.
    _)inspect
getmembers
startswithismethod)instanceinstance_membersinstance_methodsnamemembers        W/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/botocore/docs/method.pyget_instance_public_methodsr      sg     )(33( 0 0fs## 	0'' 0)/ &    c                 6   i }|j         r|j         j        }t          |                                          }||D ]}|                    |j                   ||D ]}||v r|                    |           d}|rd}| j                            ||           dS )a;  Documents the signature of a model-driven method

    :param section: The section to write the documentation to.

    :param name: The name of the method

    :param operation_model: The operation model for the method

    :type include: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include: The parameter shapes to include in the documentation.

    :type exclude: List of the names of the parameters to exclude.
    :param exclude: The names of the parameters to exclude from
        documentation.
    N z**kwargs)	input_shapememberslistkeysappendr   removestylestart_sphinx_py_method)	sectionr   operation_modelincludeexcludeparamsparameter_namesr   signature_paramss	            r   document_model_driven_signaturer&   .   s    & F" 5 ,46;;==))O 	0 	0F""6;//// 	/ 	/F((&&v... &%M((/?@@@@@r   c                 "   t          j        |          }t          |t          j                  rt          t          |j                            }|j        |         j        }|t           j	        j
        k    sJ |j                                        }||= |                    |                                          }t          |                              d          }	|	                    d          }	| j                            ||	           dS )a3  Documents the signature of a custom method

    :param section: The section to write the documentation to.

    :param name: The name of the method

    :param method: The handle to the method being documented

    :type include: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include: The parameter shapes to include in the documentation.

    :type exclude: List of the names of the parameters to exclude.
    :param exclude: The names of the parameters to exclude from
        documentation.
    )
parameters()N)r	   	signature
isinstancetypesFunctionTypenextiterr(   kind	ParameterPOSITIONAL_OR_KEYWORDcopyreplacevaluesstrlstriprstripr   r   )
r   r   methodr!   r"   r+   
self_param	self_kind
new_paramsr%   s
             r   document_custom_signaturer>   V   s    & !&))I &%,-- F$y34455
(49	G-CCCCC)..00
z"%%1B1B1D1D%EE	9~~,,S11'..s33M((/?@@@@@r   c                    | j                             dd           | }t          | ||           |                     d          }|                    d           t          j        |          }||j                            |           dS dS )zDocuments a non-data driven method

    :param section: The section to write the documentation to.

    :param method_name: The name of the method

    :param method: The handle to the method being documented
    	qualifierr   method-introN)	contextgetr>   add_new_sectionwritelnr	   getdocr   write_py_doc_string)r   method_namer:   full_method_namemethod_intro_section
doc_strings         r   document_custom_methodrL   y   s     "/--k2>>MMMg'7@@@"22>BB  $$$''J"66zBBBBB r   Tc                 
   |rt          | ||||           |                     d          }|                    |           |j        rG|j                                         |                    d           |j                                         |j        j	        
                    d          }|s|j                                         |                    d           t           d| d|j         }|j                            d|	           |                    d
           |                     d          }|j                                         |j                            d           d|                                |                                |                                di}|j        r@t+          |j        j        |j        ||                              ||j        |||           nJ|j                                         |j                                         |                    |dz              |                     d          }|j        r>t3          |j        j        |j        ||                              ||j        ||           |                     d          }|j                                         |j        *|
r'|                    d           |j                                         |                    d           |j                                         |j                                         |                                }|r\|                    d          }|j                                         |                    d           |j                                         |                    d          }|j                                         |j                            d           |j                                         t=          |j        j        |j        ||                              ||j        ||	           |                    d          }|j                                         |j                            d           |j                                         t?          |j        j        |j        ||                              ||j        ||	           dS |                    d           dS )a.  Documents an individual method

    :param section: The section to write to

    :param method_name: The name of the method

    :param operation_model: The model of the operation

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

    :param example_prefix: The prefix to use in the method example.

    :type include_input: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include_input: The parameter shapes to include in the
        input documentation.

    :type include_output: Dictionary where keys are parameter names and
        values are the shapes of the parameter names.
    :param include_input: The parameter shapes to include in the
        output documentation.

    :type exclude_input: List of the names of the parameters to exclude.
    :param exclude_input: The names of the parameters to exclude from
        input documentation.

    :type exclude_output: List of the names of the parameters to exclude.
    :param exclude_input: The names of the parameters to exclude from
        output documentation.

    :param document_output: A boolean flag to indicate whether to
        document the output.

    :param include_signature: Whether or not to include the signature.
        It is useful for generating docstrings.
    )r!   r"   rA   zThis operation is deprecated and may not function as expected. This operation should not be used going forward and is only kept for the purpose of backwards compatiblity.uidNz
See also: /zAWS API Documentation)titlelinkr   zrequest-examplezRequest Syntaxspecial_shape_types)streaming_input_shapestreaming_output_shapeeventstream_output_shape)service_nameoperation_nameevent_emitterrB   )prefixr!   r"   z()zrequest-paramsreturnz:rtype: dictz
:returns: zevent-streamzThe response of this operation contains an :class:`.EventStream` member. When iterated the :class:`.EventStream` will yield events based on the structure below, where only one of the top level keys will be present for any given event.zresponse-examplezResponse SyntaxdescriptionzResponse Structurez:returns: None) r&   rD   include_doc_string
deprecatedr   start_dangerrE   
end_dangerservice_modelmetadatarC   new_paragraphwriteAWS_DOC_BASEr   external_linkboldget_streaming_inputget_streaming_outputget_event_stream_outputr   r   rV   document_examplestart_codeblockr   document_paramsnew_lineoutput_shapeindentr   r   )r   rH   r    rX   method_descriptionexample_prefixinclude_inputinclude_outputexclude_inputexclude_outputdocument_outputinclude_signaturerJ   service_uidrQ   example_sectionrB   request_params_sectionreturn_sectionevent_stream_outputevent_sectionreturn_example_sectionreturn_description_sections                          r   document_model_driven_methodr      s   f  
'!!	
 	
 	
 	
 #22>BB++,>???! 0"//111$$J	
 	
 	

 	"--///!/8<<UCCK"00222""<000EEEE/CEE"00) 	1 	
 	
 	
 	$$R((( --.?@@O'')))/000 	%4%H%H%J%J&5&J&J&L&L(7(O(O(Q(Q 
  
G " 5 (6C*/'		
 	
 	

 
'!!!  
 
 
 
 	++-----///nt3444 %445EFF" 
(6C*/'		
 	
 	

 /"'!!	  
 
 
 ,,X66N!!####/O/^,,,%%'''\***##%%%%%''' .EEGG 
	+*::>JJM--///7   ((*** "0!?!?"
 "
 	$--///$))*;<<<$22444!(6C*/'		
 	
 	

 
"(""	  
 
 
 &4%C%C&
 &
" 	#(11333"(--.BCCC"(66888 (6C*/'		
 	
 	

 /&(""	  
 
 
 
 
 	-.....r   )NN)NNNNNNTT)r	   r-   botocore.docs.exampler   r   botocore.docs.paramsr   r   rd   r   r&   r>   rL   r    r   r   <module>r      s                  
 9  & ;?%A %A %A %AR 26 A  A  A  AFC C C. }/ }/ }/ }/ }/ }/r   