
    rj                     v    d 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
e          ZdS )zA
This module provides a general response class for BCE services.
    N)	iteritems)str)bytes)utils)compat)http_headersc                   R    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
ed	             Zd
S )BceResponsez

    c                 6    t          j                    | _        d S N)r   Expandometadataselfs    e/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/baidubce/bce_response.py__init__zBceResponse.__init__   s        c                 4   t          |          D ]\  }}|                    t          j        t          j                            r6d|t          t          j        t          j                            d         z   }t          j        |	                    dd                    }|
                                t          j        t          j        
                                          k    r|                    d          }t          | j        ||           dS )3

        :param headers:
        :return:
        bce_N-_")r   
startswithr   convert_to_stringr   
BCE_PREFIXlenr   pythonize_namereplacelowerETAGstripsetattrr   r   headerskvs       r   set_metadata_from_headersz%BceResponse.set_metadata_from_headers!   s     g&& 	) 	)DAq||F4\5LMMNN XQs6#;L<S#T#TUUVVWW$QYYsC%8%899AwwyyF4\5F5L5L5N5NOOOOGGCLLDM1a((((	) 	)r   c                    t          |          D ]v\  }}|                                t          j        t          j                                                  k    r|                    d          }t          | j        ||           wdS )r   r   N)	r   r    r   r   r   r!   r"   r#   r   r$   s       r   'set_metadata_from_headers_no_underlinedz3BceResponse.set_metadata_from_headers_no_underlined/   s|     g&& 	) 	)DAqwwyyF4\5F5L5L5N5NOOOOGGCLLDM1a((((	) 	)r   c                 >    |                     d          rt          d S )N__)r   AttributeError)r   items     r   __getattr__zBceResponse.__getattr__:   s!    ??4   	!  tr   c                 *    t          j        |           S r   )r   print_objectr   s    r   __repr__zBceResponse.__repr__?   s    !$'''r   c                     t                      }|                     | j                  |d<   | j        |d<   |                                 |d<   |S )z 

        :return: dict
        r%   
statusCodebody)dict_to_dictr   status_codeget_body_map)r   results     r   to_mapzBceResponse.to_mapB   sL    
  MM$-88y#/|**,,vr   c                    | j         }|si S 	 t          |t                    r|S t          |t                    r|                                }t          j        |          S # t
          j        t          f$ r d|icY S w xY w)zM
        Deserialize self.raw_data JSON string into a Python object.
        raw_content)	raw_data
isinstancer6   r   r"   jsonloadsJSONDecodeError	TypeError)r   contents     r   r9   zBceResponse.get_body_mapM   s     - 	I	,'4(( '3'' *!--//:g&&&$i0 	, 	, 	,!7++++	,s   A! <A! !A>=A>c                 .   t          | t          t          t          f          rd | D             S t          | t                    rd |                                 D             S t          | d          r#d | j                                        D             S | S )z?
        Recursively convert an object to a dictionary
        c                 B    g | ]}t                               |          S  r
   r7   ).0is     r   
<listcomp>z(BceResponse._to_dict.<locals>.<listcomp>c   s&    999K((++999r   c                 J    i | ] \  }}|t                               |          !S rG   rH   rI   r&   r'   s      r   
<dictcomp>z(BceResponse._to_dict.<locals>.<dictcomp>e   s,    GGG41aA{++A..GGGr   __dict__c                 t    i | ]5\  }}|                     d           |t                              |          6S )r   )r   r
   r7   rM   s      r   rN   z(BceResponse._to_dict.<locals>.<dictcomp>g   sA    iii41aWXWcWcdgWhWhiA{++A..iiir   )r?   listtuplesetr6   itemshasattrrO   )objs    r   r7   zBceResponse._to_dict]   s    
 cD%-.. 	99S9999T"" 	GG399;;GGGGS*%% 	ii3<;M;M;O;Oiiii Jr   N)__name__
__module____qualname____doc__r   r(   r*   r/   r2   r;   r9   staticmethodr7   rG   r   r   r
   r
      s         ( ( () ) )	) 	) 	)  
( ( (	 	 	, , ,    \  r   r
   )rZ   r@   future.utilsr   builtinsr   r   baidubcer   r   baidubce.httpr   objectr
   rG   r   r   <module>ra      s      " " " " " "                         & & & & & &P P P P P& P P P P Pr   