
    rjd                         d Z ddlmZ ddlZddlmZm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  G d
 de          ZdS )z9
This module provide base class for BCE service clients.
    )absolute_importN)strbytes)bce_client_configuration)BceClientError)bce_v1_signer)handler)bce_http_clientc                   N    e Zd ZdZddZd Zd ZddZd Zd	 Z	d
 Z
d ZddZdS )BceBaseClientz
    TODO: add docstring
    Tc                    |                                  | _        || _        t          j        t
          j                  | _        || j                            |           | j        j	         | 
                                | j        _	        dS dS )aU  
        :param config: the client configuration. The constructor makes a copy of this parameter so
                        that it is safe to change the configuration after then.
        :type config: BceClientConfiguration

        :param region_supported: true if this client supports region.
        :type region_supported: bool
        N)_compute_service_id
service_idregion_supportedcopydeepcopyr   DEFAULT_CONFIGconfigmerge_non_none_valuesendpoint_compute_endpoint)selfr   r   s      h/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/baidubce/bce_base_client.py__init__zBceBaseClient.__init__   s     2244 0m$<$KLLK--f555;'#'#9#9#;#;DK    ('    c                 B    | j                             d          d         S )N.   )
__module__splitr   s    r   r   z!BceBaseClient._compute_service_id2   s    $$S))!,,r   c                     | j         j        r| j         j        S | j        r,d| j         j        | j        | j         j        t          j        fz  S d| j         j        | j        t          j        fz  S )Ns   %s://%s.%s.%ss
   %s://%s.%s)r   r   r   protocolr   regionbaidubceDEFAULT_SERVICE_DOMAINr!   s    r   r   zBceBaseClient._compute_endpoint5   sy    ; 	(;''  
	1#$"/	'1 1 1 !$/$1 1 1r   Nc           
          t          j        | j        t          j        t
          j        t
          j        g|||||          S N)r
   send_requestr   r   signr	   parse_error
parse_json)r   http_methodpathheadersparamsbodys         r   _send_requestzBceBaseClient._send_requestD   s9    +K+g.A7CU-VtWf6 6 	6r   c                 6    t          j        ||                   S r(   )r   r   )r   apiDictapiNames      r   _get_configzBceBaseClient._get_configI   s    }WW-...r   c                 @    |                      |d         ||           d S )Nr/   _set_if_nonnullr   	apiConfigkeyvalues       r   _add_headerzBceBaseClient._add_headerL   s%    Yy13>>>>>r   c                 @    |                      |d         ||           d S )Nqueriesr8   r:   s       r   
_add_queryzBceBaseClient._add_queryO   s%    Yy13>>>>>r   c                 r    |t          d          |d                             d|z   dz   |          |d<   d S )Ns   Path param can't be none.r.   [])r   replacer:   s       r   _add_path_paramzBceBaseClient._add_path_paramS   sC    = !=>>>%f-55cCi#ouMM	&r   c                     ||||<   d S d S r(    )r   r0   
param_namer=   s       r   r9   zBceBaseClient._set_if_nonnullX   s     !&F: r   )T)NNN)NN)__name__r   __qualname____doc__r   r   r   r2   r6   r>   rA   rF   r9   rH   r   r   r   r      s         < < < <&- - -1 1 16 6 6 6
/ / /? ? ?? ? ?N N N
' ' ' ' ' 'r   r   )rL   
__future__r   r   builtinsr   r   r%   r   baidubce.exceptionr   baidubce.authr   baidubce.httpr	   r
   objectr   rH   r   r   <module>rS      s     ' & & & & &           - - - - - - - - - - - - ' ' ' ' ' ' ! ! ! ! ! ! ) ) ) ) ) )?' ?' ?' ?' ?'F ?' ?' ?' ?' ?'r   