
    Dh&                         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y)    )
LOGEC2QueryParser
JSONParserNoInitialResponseErrorQueryParserResponseParserErrorResponseParserFactoryRestJSONParserRestXMLParserlowercase_dict   )AioEventStreamc                       e Zd Zd Zy)AioResponseParserFactoryc                 8    t         |   } |di | j                  S )N )PROTOCOL_PARSERS	_defaults)selfprotocol_name
parser_clss      u/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aiobotocore/parsers.pycreate_parserz&AioResponseParserFactory.create_parser   s    %m4
+DNN++    N)__name__
__module____qualname__r   r   r   r   r   r      s    ,r   r   c                 4    t               j                  |       S )N)r   r   )protocols    r   r   r      s    #%33H==r   c                       e Zd Zd Zy)AioQueryParserc                 d    | j                   }|d   j                  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   9    **	"&&'78hv.vtDDr   Nr   r   r   r/   r   r   r   r!   r!          Er   r!   c                       e Zd Zd Zy)AioEC2QueryParserc                 d    | j                   }|d   j                  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y)AioJSONParserc                    K   i }|?|j                   }|r| j                  |||       d {   }n| j                  |d   |      }| j                  ||d          |S 7 1w)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*   ss     00J#88eZ   //0@%H&&vx	/BCs   )AA2Ac                 d    | j                   }|d   j                  d      }t        |d   |||      S r#   r'   r*   s        r   r/   z"AioJSONParser._create_event_stream7   r0   r   c                    K   |j                   |   }| j                  ||      }	 |j                          d {   }| j                  |j                  |      }|||<   |S 7 '# t        $ r d}t	        |      w xY ww)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	1&;;==E ''u=)z >% 	1FI%i00	1s+   "A<A" A A" #A< A" "A99A<c                 V  K   t        j                  d|d          t        j                  d|d          |d   dk\  r[| j                  |      r| j                  |      }nR| j	                  |      r| j                  ||      }|S | j                  ||      }n| j                  ||       d {   }|r|j                  j                  d      r|S t        |t              rD|j                  di       }|d   |d	<   |d   }t        |      |d
<   ||d<   | j                  ||       |S 7 yw)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   s1    		((9*=>		&(89M"c)..x855h?--e455hF--h>>>(E::F U((,,];M fd# &

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

r   r7   c                       e Zd Zd Zy)AioRestJSONParserc                 d    | j                   }|d   j                  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y)AioRestXMLParserc                 d    | j                   }|d   j                  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@J @FE EE} E "  r   