
    "hj+T                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dl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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 d dlmZ d dlmZ d dl m!c m"Z" d dl#m$Z$ d dl%m&Z& d dl'Zd dl(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/m0Z0 	 dZ1dZ2dZ3ejh                  jk                  d      Z6 ejn                  e8      Z9 G d d      Z:y)    N)	urlencode)codes)ClientException)ServerException)
error_code	error_msg)HttpResponse)
AcsRequest)format_type)SignerFactory)CommonRequest)ResolveEndpointRequest)DefaultEndpointResolver)RetryCondition)RetryPolicyContext)CaseInsensitiveDict)OrderedDict)compat)Session)HTTPAdapter
      ztimeout_config.jsonc                      e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zed        Zed        Zd Zd Zd Zed        Zd Zd Z	 d,dZd,dZd,dZd Zd Zd Z d Z!d  Z"ed!        Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)e*jV                  d(ddfd)Z,e*jV                  d(fd*Z-y)-	AcsClientz9%(thread)d %(asctime)s %(name)s %(levelname)s %(message)sNc                    || _         || _        || _        || _        || _        || _        || _        || _        |	| _        i | _	        || _
        |||
|||d}t        j                  ||| j                  |      | _        t        |       | _        t#               | _        | j$                  j'                  dt)        t*        |             | j$                  j'                  dt)        t*        |             | j                  r-t-        j.                  | j                         | _        || _        yt,        j2                  | _        || _        y)a  
        constructor for AcsClient
        :param ak: String, access key id
        :param secret: String, access key secret
        :param region_id: String, region id
        :param auto_retry: Boolean
        :param max_retry_time: Number
        :param pool_size:
            In a multithreaded environment,
            you should set the maxsize of the pool to a higher number,
            such as the number of threads.
        :return:
        )aksecretpublic_key_idprivate_keysession_period
credentialzhttps://zhttp://)max_retry_timesN)_max_retry_num_auto_retry_ak_secret
_region_id_user_agent_port_connect_timeout_read_timeout_extra_user_agent_verifyr   
get_signer_implementation_of_do_action_signerr   _endpoint_resolverr   sessionmountr   DEFAULT_POOL_CONNECTIONSretry_policyget_default_retry_policy_retry_policyNO_RETRY_POLICYproxy)selfr   r   	region_id
auto_retrymax_retry_time
user_agentportconnect_timeouttimeoutr   r   r    r!   debugverify	pool_sizer9   s                     R/root/.hermes/SkillClaw/.venv/lib/python3.12/site-packages/aliyunsdkcore/client.py__init__zAcsClient.__init__M   s(   D -%#%
 /$!#*&,$

 %//	4#D#DeM"9$"?y:{3KY'WX9k2JI&VW!-!F!F $ 3 3"5D
 
 ".!=!=D
    c                     | j                   S Nr'   r:   s    rE   get_region_idzAcsClient.get_region_id   s    rG   c                     | j                   S rI   )r%   rK   s    rE   get_access_keyzAcsClient.get_access_key   s    xxrG   c                     | j                   S rI   )r&   rK   s    rE   get_access_secretzAcsClient.get_access_secret       ||rG   c                     | j                   S rI   r$   rK   s    rE   is_auto_retryzAcsClient.is_auto_retry       rG   c                     | j                   S rI   r#   rK   s    rE   get_max_retry_numzAcsClient.get_max_retry_num   s    """rG   c                     | j                   S rI   r(   rK   s    rE   get_user_agentzAcsClient.get_user_agent   rU   rG   c                     | j                   S rI   r-   rK   s    rE   
get_verifyzAcsClient.get_verify   rQ   rG   c                     || _         y rI   rJ   )r:   regions     rE   set_region_idzAcsClient.set_region_id   s	     rG   c                     || _         y rI   rW   )r:   nums     rE   set_max_retry_numzAcsClient.set_max_retry_num   s
    !rG   c                     || _         y)zv
        set whether or not the client perform auto-retry
        :param flag: Booleans
        :return: None
        NrS   )r:   flags     rE   set_auto_retryzAcsClient.set_auto_retry   s      rG   c                     || _         y)zu
        User agent set to client will overwrite the request setting.
        :param agent:
        :return:
        NrZ   )r:   agents     rE   set_user_agentzAcsClient.set_user_agent   s     !rG   c                     || _         y rI   r]   )r:   rC   s     rE   
set_verifyzAcsClient.set_verify   s	    rG   c                 >    | j                   j                  ||i       y rI   )r,   update)r:   keyvalues      rE   append_user_agentzAcsClient.append_user_agent   s    %%sEl3rG   c                      ddt        j                         dt        j                         dt        j                         d} | S )NAlibabaCloudz ( ;))platformsystemreleasemachine)bases    rE   user_agent_headerzAcsClient.user_agent_header   s7     !//#""$""$	 rG   c                      t               } t        j                         | d<   t        d      j                  | d<   t        dt               t               g dd      j                  | d<   t        |       S )NPythonaliyunsdkcoreCorez+aliyunsdkcore.vendored.requests.__version__)vendoredrequests__version__r   zpython-requests)r   rw   python_version
__import__r   globalslocalsr   )default_agents    rE   default_user_agentzAcsClient.default_user_agent   sf    #"*"9"9";h *? ; G Gf+5979fh3Q,88C 	'( #=11rG   c                     i }| j                         ,|j                  d| j                         i       t        |      S |j                  | j                         t        |      S )Nclient)r[   rn   r,   r   )r:   client_user_agents     rE   r   zAcsClient.client_user_agent   sc     ,$$h0C0C0E%FG ##455 $$T%;%;<"#455rG   c                     | j                   S rI   )r)   rK   s    rE   get_portzAcsClient.get_port   s    zzrG   c                      y rI    rK   s    rE   get_location_servicezAcsClient.get_location_service   s    rG   c                 z    | |S || S | j                         }|j                         D ]  \  }}|| vs|||<    |S rI   )copyitems)r   extra_agentr>   ro   rp   s        rE   merge_user_agentzAcsClient.merge_user_agent   s]       "'')
%++- 	(JC-'"'
3	( rG   c                 R    | j                   r| j                   j                          y y rI   )r2   closerK   s    rE   __del__zAcsClient.__del__   s    <<LL  rG   c                     | j                         }|j                         }||S ||S |D ]  }||v s|j                  |        |j                  |       |S rI   )r   request_user_agentpoprn   )r:   requestclient_agentrequest_agentro   s        rE   handle_extra_agentzAcsClient.handle_extra_agent   sq    --/224     	&Cl"  %	& 	M*rG   c                 |   |j                         }|r|j                         j                  d      }|r9t        j                  |v r't        j                  |      }|j                  |       n|rMt        j                  |v r;t        j                  j                  j                  |      }|j                  |       n}t        |      }|j                  |       |j                  t        j                         nA|j!                         r1d|j                         vr|j                  t        j"                         |j%                         }	t'        |t(              r|j+                          || j,                  n|}
|j                         }|
j/                  | j0                  |      \  }}|j3                  |       | j5                         }| j7                  |      }| j9                         }| j;                  ||      }|j=                         D ]  \  }}|d|d|z  } ||d<   d|d<   |j?                         }tA        |||	|||j!                         | jB                  ||| jE                         | jF                  | jH                        }|r0|j                  d|j                         j                  d             |S )	NzContent-Typert   /z
User-Agentzpython/2.0.0zx-sdk-client)read_timeoutr@   rC   r2   r9   utf-8)%get_body_paramsget_headersgetr   APPLICATION_JSONjsondumpsset_contentAPPLICATION_XMLr   utilsparameter_helperto_xmlr   set_content_typeAPPLICATION_FORMget_contentAPPLICATION_OCTET_STREAM
get_method
isinstancer   trans_to_acs_requestr0   signr'   rn   r|   r   r   r   r   get_protocol_typer	   r)   r^   r2   r9   )r:   endpointr   r   r@   specific_signerbody_paramscontent_typebodymethodsignerheadersigned_headerurlr{   r   r   r>   ro   rp   protocolresponses                         rE   _make_http_responsezAcsClient._make_http_response  sZ   --/"..044^DL < < Lzz+.##D)+"="="M$**;;BB;O##D) -##D)(()E)EF  "~W=P=P=R'R$$[%I%IJ##%g}-((*!0!8o$$&#[['Bsm$%%'--g6//1**=+F
$**, 	,JCU++D	,#|!/~,,.!JJ%+??$LL**
   w0C0C0E0I0I.0YZrG   c                    t        |t              s-t        t        j                  t        j                  d            |j                  dd       |j                  r|j                  }n| j                  |      }| j                  |||      S )NSDK_INVALID_REQUESTzAccept-Encodingidentity)r   r
   r   r   r   r   get_msg
add_headerr   _resolve_endpoint_handle_retry_and_timeout)r:   r   r   r   s       rE   r/   z&AcsClient._implementation_of_do_actionA  s}    ':.!..!!"78: :
 	,j9''H--g6H--hHHrG   c                 n    t        j                  dt               | j                  ||      \  }}}}|||fS )Nz2implementation_of_do_action() method is deprecatedwarningswarnDeprecationWarningr/   )r:   r   r   statusheadersr   	exceptions          rE   implementation_of_do_actionz%AcsClient.implementation_of_do_actionQ  s?    @	  ,0+L+LWV\+](yw$$rG   c                     t        |d      rZt        |d      rM|j                         }|s:t        j                  j                  j                         }|j                  |       y y y y )Nset_ClientTokenget_ClientToken)hasattrr   r   r   r   get_uuidr   )r:   r   client_tokens      rE   _add_request_client_tokenz#AcsClient._add_request_client_tokenZ  s^    7-.77DU3V"224L,22CCLLN''5   4W.rG   c                    |j                   r|j                   S | j                  r| j                  S |j                         t        S dj	                  |j                         j                         |j                         |j                               }t        j                  |t              }|t        S t        j                  j                  j                  |d       t        |t              S )Nz"{0}"."{1}"."{2}"rA   )_request_read_timeoutr+   get_productDEFAULT_READ_TIMEOUTformatlowerget_versionget_action_namejmespathsearch_api_timeout_config_datar   r   
validationassert_integer_positivemax)r:   r   pathrA   s       rE   _get_request_read_timeoutz#AcsClient._get_request_read_timeoutb  s    ((000 %%% (''"))'*=*=*?*E*E*GI\I\I^*1*A*A*CE//$(@A?''**BB7IVw 455rG   c                 n    |j                   r|j                   S | j                  r| j                  S t        S rI   )_request_connect_timeoutr*   DEFAULT_CONNECTION_TIMEOUT)r:   r   s     rE   _get_request_connect_timeoutz&AcsClient._get_request_connect_timeoutw  s2    ++333  ((())rG   c                    t        |d dd       }| j                  j                  |      t        j                  z  r| j                  |       | j                  |      }| j                  |      }d}	 | j                  |||||      \  }}	}
}t        ||||      }| j                  j                  |      }|t        j                  z  rnet        j                  d|j                         |       ||_        | j                  j                  |      }t        j                   |dz         |dz  }t#        |t$              r|||	|
|fS )Nr   z$Retry needed. Request:%s Retries :%dg     @@   )r   r7   should_retryr   SHOULD_RETRY_WITH_CLIENT_TOKENr   r   r   _handle_single_requestNO_RETRYloggerrB   r   	retryablecompute_delay_before_next_retrytimesleepr   r   )r:   r   r   r   retry_policy_contextrequest_read_timeoutrequest_connect_timeoutretriesr   r   r   r   r   time_to_sleeps                 rE   r   z#AcsClient._handle_retry_and_timeout  sP     2'4DI**+?@==>**73#==gF"&"C"CG"L/3/J/J8KRK_KbKQ	0S,FGT9
 $6gy'SY#Z **778LMI>222LL? 002G=-6 * ..NNOcdMJJ}v-.qLG! $ i1Owi//rG   c                 n   | j                  |||||      }t        j                  |j                               }|j	                  dd        t
        j                  d|j                         ||       	 |j                         \  }}	}
| j%                  ||
||j&                        }||	|
|fS # t        $ r}t        t        j                  t        j                  d|z              }d|dt        j                   d|}t
        j#                  t        j                  |             d d d |fcY d }~S d }~ww xY w)NAccessKeyIdz3Request received. Product:%s Endpoint:%s Params: %sz%szHttpError occurred. Host: SDK-Version:z ClientException:)r   r   deepcopyget_query_paramsr   r   rB   r   get_response_objectIOErrorr   r   SDK_HTTP_ERRORr   ensure_stringr   r   error_get_server_exceptionstring_to_sign)r:   r   r   r   r@   r   http_responseparamsr   r   r   er   msgs                 rE   r   z AcsClient._handle_single_request  s   007LRa179w779:

=$'J((*Hf	>	/$1$E$E$G!FGT ..vtXwG]G]^	wi//  	/'
(A(A6CWCWX\_`X`CabI!=#<#<iICLL--c23tY..	/s   2B* *	D43A6D/)D4/D4c                     t         j                  }t        j                  d|       }	 t	        j
                  |       }d|v r|d   }d|v r|d   }||fS # t        $ r t        j                  d|        Y ||fS w xY w)NzServerResponseBody: CodeMessage4Failed to parse response as json format. Response:%s)	r   SDK_UNKNOWN_SERVER_ERRORr   r	  r   loads
ValueErrorr   warning)response_bodyerror_code_to_returnerror_message_to_returnbody_objs       rE   $_parse_error_info_from_response_bodyz.AcsClient._parse_error_info_from_response_body  s    )BB"("6"6S`7b"c	bzz-0H!'/'7$H$*29*='
 $%<<<	  	bNNQS`a#%<<<		bs   'A A:9A:c                 p   d }	 t        j                  |j                  d            }|j                  d      }|t        j                  k  s|t        j                  k\  r| j                  |j                  d            \  }}|t        j                  k(  r |dk(  r||j                  d      d   k(  rd}d}t        ||||	      }	d
|dt         j"                  d|	}
t        j%                  t'        j(                  |
             |	S y # t        t
        t        f$ r t        j                  d|       Y w xY w)Nr   	RequestIdr  SignatureDoesNotMatch:r   InvalidAccessKeySecretzTThe AccessKeySecret is incorrect. Please check your AccessKeyId and AccessKeySecret.)http_status
request_idzServerException occurred. Host:r  z ServerException:)r   r  decoder   r  	TypeErrorAttributeErrorr   r  r   OKMULTIPLE_CHOICESr  BAD_REQUESTsplitr   r   r   r
  r   r	  )r:   r#  r  r   r  r$  r  server_error_codeserver_error_messager   r  s              rE   r  zAcsClient._get_server_exception  s/   
	bzz-"6"6w"?@H!k2J ![E4J4J%J6:6_6_$$W-7/33e///4EI`4`!%9%?%?%DQ%GG(@%,`('!$'%	'I "=#<#<iICLL--c23' &K I~6 	b NNQS`a	bs   5D *D54D5c                     |j                  d       | j                  |      \  }}}}|r|t        j                  d|j	                         |       |S )NJSONz/Response received. Product:%s Response-body: %s)set_accept_formatr/   r   rB   r   r:   acs_requestr   r   r   r   s         rE   do_action_with_exceptionz"AcsClient.do_action_with_exception  sU     	%%f-+/+L+L[+Y(yOF ,,.	6rG   c                    | j                   r5t        j                  j                  j	                  | j                   dd       |j
                  r5t        j                  j                  j	                  |j
                  dd       |j                  r5t        j                  j                  j	                  |j                  dd       t        | j                   |j                         |j                         |j                               }|j                  |_        |j
                  |_        |j                  |_        |j                  |_        | j                  j                  |      S )Nr;   z^[a-zA-Z0-9_-]+$suffixnetwork)r'   r   r   r   validate_patternproduct_suffixrequest_networkr   r   get_location_service_codeget_location_endpoint_typeendpoint_mapendpoint_regionalr1   resolve)r:   r   resolve_requests      rE   r   zAcsClient._resolve_endpoint  s   ??**;;.@ !!**;;&&2D ""**;;''4F 1OO!--/..0	
 +2*A*A')0)?)?&'.';';$,3,E,E)&&..??rG   c                 f    t        j                  dt               | j                  |      \  }}}}|S )NzPdo_action() method is deprecated, please use do_action_with_exception() instead.r   r1  s         rE   	do_actionzAcsClient.do_action  s4    ^	  ,0+L+L[+Y(yrG   c                 $    | j                  |      S rI   )r   )r:   r2  s     rE   get_responsezAcsClient.get_response  s    //<<rG   c                 >    | j                   j                  |||       y rI   )r1   put_endpoint_entry)r:   r;   product_coder   s       rE   add_endpointzAcsClient.add_endpoint   s    22|X	/rG   r   c                 &   t        j                  |      }|j                  |       t        j                  |      }|j                  |       || j                  }t        j
                  |      }|j                  |       |j                  |       y rI   )logging	getLoggersetLevelStreamHandler
LOG_FORMAT	FormattersetFormatter
addHandler)r:   	log_levellogger_namestreamformat_stringlogch	formatters           rE   set_stream_loggerzAcsClient.set_stream_logger$  sq    ,Y""6*
I  OOM%%m4	
	"rrG   c                    t        j                  |      }|j                  |       t        j                  |      }|j                  |       t        j                  | j
                        }|j                  |       |j                  |       y rI   )rI  rJ  rK  FileHandlerrN  rM  rO  rP  )r:   r   rQ  rR  rU  fhrW  s          rE   set_file_loggerzAcsClient.set_file_logger0  sf    ,Y  &
I%%doo6	
	"rrG   )NNzcn-hangzhouTNNP   NNNNi  NFNr   NrI   ).__name__
__module____qualname__rM  rF   rL   rN   rP   rT   rX   r[   r^   ra   rd   rg   rj   rl   rq   staticmethodr|   r   r   r   r   r   r   r   r   r/   r   r   r   r   r   r   r  r  r3  r   rA  rC  rG  rI  DEBUGrX  r\  r   rG   rE   r   r   J   sc   LJ # %CJ # !" !4   2 26 
 
!  -18tI %66**&0P0, = = @@4=/ +2--_]a(,
 /6mm rG   r   );r   r   r   rI  r   r   rw   sysr   -aliyunsdkcore.vendored.six.moves.urllib.parser   aliyunsdkcore.vendored.requestsr   &aliyunsdkcore.acs_exception.exceptionsr   r   aliyunsdkcore.acs_exceptionr   r    aliyunsdkcore.http.http_responser	   aliyunsdkcore.requestr
   aliyunsdkcore.httpr   )aliyunsdkcore.auth.signers.signer_factoryr   r   0aliyunsdkcore.endpoint.resolver_endpoint_requestr   0aliyunsdkcore.endpoint.default_endpoint_resolverr    aliyunsdkcore.retry.retry_policyretryr5   #aliyunsdkcore.retry.retry_conditionr   (aliyunsdkcore.retry.retry_policy_contextr   aliyunsdkcore.utils$aliyunsdkcore.utils.parameter_helperaliyunsdkcore.utils.validation*aliyunsdkcore.vendored.requests.structuresr   r   r   r   (aliyunsdkcore.vendored.requests.adaptersr   r   r   r4   r   _load_json_from_data_dirr   rJ  r^  r   r   r   rG   rE   <module>rx     s   *        
  C 1 B B = 9 , * C / S T 7 7 > G  + % J B   3 @     )..GGH]^ 			8	$m mrG   