
    9id                         S r SSKJr  SSKrSSKJrJr  SSKrSSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr   " S
 S\5      rg)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                   Z    \ rS rSrSrSS jrS rS rSS jrS r	S	 r
S
 rS rSS jrSrg)BceBaseClient   z
TODO: add docstring
c                 6   U R                  5       U l        X l        [        R                  " [
        R                  5      U l        Ub  U R                  R                  U5        U R                  R                  c   U R                  5       U R                  l	        gg)a%  
: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      X/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/baidubce/bce_base_client.py__init__BceBaseClient.__init__   ss     224 0mm$<$K$KLKK--f5;;'#'#9#9#;DKK  (    c                 >    U R                   R                  S5      S   $ )N.   )
__module__splitr   s    r   r   !BceBaseClient._compute_service_id2   s    $$S)!,,r   c                    U R                   R                  (       a  U R                   R                  $ U R                  (       aI  SU R                   R                  U R                  U R                   R
                  [        R                  4-  $ SU R                   R                  U R                  [        R                  4-  $ )Ns   %s://%s.%s.%ss
   %s://%s.%s)r   r   r   protocolr   regionbaidubceDEFAULT_SERVICE_DOMAINr#   s    r   r   BceBaseClient._compute_endpoint5   s    ;;;;'''  #$$""//	'1 1 1 !$$//$1 1 1r   Nc           
          [         R                  " U R                  [        R                  [
        R                  [
        R                  /XXSU5      $ N)r
   send_requestr   r   signr	   parse_error
parse_json)r   http_methodpathheadersparamsbodys         r   _send_requestBceBaseClient._send_requestD   s>    ++KK++g.A.A7CUCU-Vtf6 	6r   c                 2    [         R                  " X   5      $ r,   )r   r   )r   apiDictapiNames      r   _get_configBceBaseClient._get_configI   s    }}W-..r   c                 .    U R                  US   X#5        g )Nr3   _set_if_nonnullr   	apiConfigkeyvalues       r   _add_headerBceBaseClient._add_headerL   s    Yy13>r   c                 .    U R                  US   X#5        g )Nqueriesr>   r@   s       r   
_add_queryBceBaseClient._add_queryO   s    Yy13>r   c                 \    Uc  [        S5      eUS   R                  SU-   S-   U5      US'   g )Ns   Path param can't be none.r2   [])r   replacer@   s       r   _add_path_paramBceBaseClient._add_path_paramS   s7    = !=>>%f-55cCi#ouM	&r   c                     Ub  X1U'   g g r,    )r   r4   
param_namerC   s       r   r?   BceBaseClient._set_if_nonnullX   s    !&: r   )r   r   r   )T)NNN)NN)__name__r!   __qualname____firstlineno____doc__r   r   r   r6   r;   rD   rH   rN   r?   __static_attributes__rQ   r   r   r   r      s5    <&-16
/??N
'r   r   )rW   
__future__r   r   builtinsr   r   r(   r   baidubce.exceptionr   baidubce.authr   baidubce.httpr	   r
   objectr   rQ   r   r   <module>r_      s3    '    - - ' ! )?'F ?'r   