
    pge&                         d dl mZmZmZmZmZmZmZmZm	Z	m
Z
 ddlmZ  G d de          Zd Z G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de	          ZeeeeedZdS )    )
LOGEC2QueryParser
JSONParserNoInitialResponseErrorQueryParserResponseParserErrorResponseParserFactoryRestJSONParserRestXMLParserlowercase_dict   )AioEventStreamc                       e Zd Zd ZdS )AioResponseParserFactoryc                 6    t           |         } |di | j        S )N )PROTOCOL_PARSERS	_defaults)selfprotocol_name
parser_clss      3lib/python3.11/site-packages/aiobotocore/parsers.pycreate_parserz&AioResponseParserFactory.create_parser   s$    %m4
z++DN+++    N)__name__
__module____qualname__r   r   r   r   r   r      s#        , , , , ,r   r   c                 D    t                                          |           S )N)r   r   )protocols    r   r   r      s    #%%33H===r   c                       e Zd Zd ZdS )AioQueryParserc                 v    | j         }|d                             d          }t          |d         |||          S Ncontextoperation_namebody_event_stream_parsergetr   r   responseshapeparsernames        r   _create_event_streamz#AioQueryParser._create_event_stream   <    *	"&&'788hv.vtDDDr   Nr   r   r   r/   r   r   r   r!   r!      (        E E E E Er   r!   c                       e Zd Zd ZdS )AioEC2QueryParserc                 v    | j         }|d                             d          }t          |d         |||          S r#   r'   r*   s        r   r/   z&AioEC2QueryParser._create_event_stream#   r0   r   Nr1   r   r   r   r4   r4   "   r2   r   r4   c                   &    e Zd Zd Zd Zd Zd ZdS )AioJSONParserc                    K   i }|C|j         }|r|                     |||           d {V }n|                     |d         |          }|                     ||d                    |S )Nr&   headers)event_stream_name_handle_event_stream_handle_json_body_inject_response_metadata)r   r+   r,   parsed
event_names        r   	_do_parsezAioJSONParser._do_parse*   s      0J I#88eZ          //0@%HH&&vx	/BCCCr   c                 v    | j         }|d                             d          }t          |d         |||          S r#   r'   r*   s        r   r/   z"AioJSONParser._create_event_stream7   r0   r   c                   K   |j         |         }|                     ||          }	 |                                 d {V }n# t          $ r d}t	          |          w xY w|                     |j        |          }|||<   |S )Nz,First event was not of type initial-response)membersr/   get_initial_responser   r   r<   payload)	r   r+   r,   r?   event_stream_shapeevent_streamevent	error_msgr>   s	            r   r;   z"AioJSONParser._handle_event_stream<   s      "]:600;MNN	1&;;========EE% 	1 	1 	1FI%i000	1 ''u==)zs   A Ac                   K   t          j        d|d                    t          j        d|d                    |d         dk    ro|                     |          r|                     |          }n`|                     |          r|                     ||          }|S |                     ||          }n|                     ||           d {V }|r|j        	                    d          r|S t          |t                    rV|	                    di           }|d         |d	<   |d         }t          |          |d
<   ||d<   |                     ||           |S )NzResponse headers: %sr9   zResponse body:
%sr&   status_codei-  eventstreamResponseMetadataHTTPStatusCodeHTTPHeaders)r   debug_is_generic_error_response_do_generic_error_parse_is_modeled_error_shape_do_modeled_error_parse_do_error_parser@   serializationr)   
isinstancedictr   _add_checksum_response_metadata)r   r+   r,   r>   response_metadatar9   s         r   parsezAioJSONParser.parseJ   s     	((9*=>>>	&(8999M"c))..x88 ?55h??--e44 ?55hFF--h>>>>(E::::::::F  	U(,,];; 	M fd## 		N &

+=r B B2:=2I./ y)G/=g/F/Fm,):F%&00;LMMMr   N)r   r   r   r@   r/   r;   r[   r   r   r   r7   r7   )   sS          E E E

 
 
    r   r7   c                       e Zd Zd ZdS )AioRestJSONParserc                 v    | j         }|d                             d          }t          |d         |||          S r#   r'   r*   s        r   r/   z&AioRestJSONParser._create_event_streamm   r0   r   Nr1   r   r   r   r]   r]   l   r2   r   r]   c                       e Zd Zd ZdS )AioRestXMLParserc                 v    | j         }|d                             d          }t          |d         |||          S r#   r'   r*   s        r   r/   z%AioRestXMLParser._create_event_streamt   r0   r   Nr1   r   r   r   r`   r`   s   r2   r   r`   )ec2queryjsonz	rest-jsonzrest-xmlN)botocore.parsersr   r   r   r   r   r   r	   r
   r   r   rL   r   r   r   r!   r4   r7   r]   r`   r   r   r   r   <module>rf      s                          ( ' ' ' ' ', , , , ,4 , , ,> > >E E E E E[ E E EE E E E E E E E@ @ @ @ @J @ @ @FE E E E E E E EE E E E E} E E E "     r   