
    ~i&C                     8   d dl m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mZ 	 d dlZn# e$ r  ed          w xY w ej        e          Z G d dej                  Zd	 Zd
 Z G d de          Z G d de          ZdS )    )absolute_importN)	urlencode)Retry)sdk_core_loggerLogLevelz'Swagger python client requires urllib3.c                   "    e Zd Zd Zd ZddZdS )RESTResponsec                 \    || _         |j        | _        |j        | _        |j        | _        d S N)urllib3_responsestatusreasondata)selfresps     _/root/.openclaw/workspace/.venvs/ark-sdk/lib/python3.11/site-packages/volcenginesdkcore/rest.py__init__zRESTResponse.__init__   s)     $kkI			    c                     | j         j        S )z-Returns a dictionary of the response headers.)r   headers)r   s    r   
getheaderszRESTResponse.getheaders$   s    $,,r   Nc                 B    | j         j                            ||          S )z Returns a given response header.)r   r   get)r   namedefaults      r   	getheaderzRESTResponse.getheader(   s    $,00w???r   r   )__name__
__module____qualname__r   r   r    r   r   r	   r	      sL          - - -@ @ @ @ @ @r   r	   c                    t          j        d| |           |rt          j        d|           |rt          j        d|           |rDt          j        d           |                                D ]\  }}t          j        d||           |rt          j        d|           |rdt          |t                    r6	 |                    d          }n# t          $ r t          |          }Y nw xY wt          j        d|d	
           d S d S )Nzrequest url: %s %szrequest timeout: %szquery params: %sheaders:
    %s: %szpost params: %sutf-8body: %sTis_body)r   debug_requestitems
isinstancebytesdecode	Exceptionstr)	methodurlquery_paramsr   bodypost_paramsrequest_time_outkvs	            r   log_requestr7   -   sC   !"6DDD O%&;=MNNN H%&8,GGG >%j111MMOO 	> 	>DAq),1==== F%&7EEE FdE"" 	!!{{7++ ! ! !4yy!%j$EEEEEEF Fs   :C C,+C,c                 h   t          j        t          j        d|                     d                     t          j        d| j                   t          j        d| j                   t          j        d           |                                 	                                D ]\  }}t          j        d||           |rt          j        d| j
        d	           d S d
}d}	 t          | d          r|                     |          pd}nt          | dd          }|r
|d |         }n# t          $ r d}Y nw xY w|r_	 |                    dd          }n# t          $ r t!          |          }Y nw xY wt          j        dt#          |          |d	           d S t          j        dd	           d S )Nz[Response] request id: %sz
X-Tt-Logidz
status: %sz
reason: %sr"   r#   r%   Tr&   i   r   peekr   r$   replace)errorsz%response body (preview, %d bytes): %sz.response body (preview): <streaming, not read>)r   debugxr   LOG_DEBUG_WITH_REQUEST_IDr   debug_responser   r   r   r)   r   hasattrr9   getattrr-   r,   reprlen)r_preload_contentr5   r6   preview_lenpreview_bytescachedpreview_texts           r   log_responserI   G   s   8=?Z\]\g\ght\u\uvvv"<:::"<:::":...$$&& ; ;1&|Q:::: k&z164HHHHHH
	 q&!! 9 !{ 3 3 :s !FC00 9$*<K<$8M 	  	  	 MMM	   	k3,33GI3NN 3 3 3#M223*+RTWXeTfTfht  C  D  D  D  D  D  D*+[eijjjjjjs%   #AD) )D87D8>E E21E2c                   ~    e Zd ZddZd Z	 	 	 ddZ	 	 ddZ	 	 ddZ	 	 dd	Z	 	 dd
Z		 	 ddZ
	 	 ddZ	 	 ddZdS )RESTClientObject   Nc                 B   |                      |          }|j        rt          j        }nt          j        }|j        r|j        }nt          j                    }i }|j        
|j        |d<   ||j	        |j	        }nd}|j
        |j
        }t          j        |j        |j                  }|r:t          j        d|||||j        |j        ||t%          d          d	|| _        d S t          j        d|||||j        |j        |t%          d          d|| _        d S )	Nassert_hostnamerL   connectreadFtotal)		num_poolsmaxsize	cert_reqsca_certs	cert_filekey_file	proxy_urltimeoutretries)rT   rU   rV   rW   rX   rY   r[   r\   r    )_RESTClientObject__get_proxy
verify_sslsslCERT_REQUIRED	CERT_NONEssl_ca_certcertifiwhererN   connection_pool_maxsizerT   urllib3Timeoutconnect_timeoutread_timeoutProxyManagerrX   rY   r   pool_managerPoolManager)	r   configuration
pools_sizerU   rZ   rV   rW   addition_pool_argsr[   s	            r   r   zRESTClientObject.__init__l   s    $$]33	 # 	&)III $ 	'$0HH }H(44A4Q01?4@'?".&0J/!1+
 
 

  	 ' 4 !$#!'1&/#E***! ! %! !D !( 3 
!$#!'1&/E***
! 
! %
! 
!Dr   c                    |j         }|s|j        dk    ra|j        r|j        }nt          j        d          rt          j        d          }nt          j        d          rt          j        d          }nk|j        dk    r`|j        r|j        }nQt          j        d          rt          j        d          }n(t          j        d          rt          j        d          }|S )Nhttp
HTTP_PROXY
http_proxyhttpsHTTPS_PROXYhttps_proxy)proxyschemers   osgetenvrv   )r   rm   rZ   s      r   __get_proxyzRESTClientObject.__get_proxy   s    !'	 	9#v-- + 8 - 8IIY|,, 8 "	, 7 7IIY|,, 8 "	, 7 7I%00 , 9 - 9IIY}-- 9 "	- 8 8IIY}-- 9 "	- 8 8Ir   Tc	           	         |                                 }|dv sJ |r|rt          d          |pi }|pi }d}	|rt          |t          j        rt
          t          fnt
          t          t          f          rt          j	        |          }	nt          |t                    r6t          |          dk    r#t          j	        |d         |d                   }	n=t          |t          j	                  r|}	n | j        j                            d	d          }	d
|vrd|d
<   t          |||||||	           	 |dv r |r|dt!          |          z   z  }t#          j        d|d
         t"          j                  r9d}
|t)          j        |          }
| j                            |||
||	|          }n|d
         dk    r"| j                            |||d||	|          }n|d
         dk    r%|d
= | j                            |||d||	|          }nkt          |t.                    r#|}
| j                            |||
||	|          }n3d}t1          d|          | j                            |||||	|          }nb# t          j        j        $ rK}d                    t9          |          j        t/          |                    }t1          d|          d}~ww xY w|rZt=          |          }t          j        r|j                             d          |_        tB          "                    d|j                   tG          ||           d|j$        cxk    rdk    sn t1          |          |S )a  Perform requests.

        :param method: http request method
        :param url: http request url
        :param query_params: query parameters in the url
        :param headers: http request headers
        :param body: request json body, for `application/json`
        :param post_params: request post parameters,
                            `application/x-www-form-urlencoded`
                            and `multipart/form-data`
        :param _preload_content: if False, the urllib3.HTTPResponse object will
                                 be returned without reading/decoding response
                                 data. Default is True.
        :param _request_timeout: timeout setting for this request. If one
                                 number provided, it will be total request
                                 timeout. It can also be a pair (tuple) of
                                 (connection, read) timeouts.
        )GETHEADDELETEPOSTPUTPATCHOPTIONSz9body parameter cannot be used with post_params parameter.NrR      r      rO   r[   zContent-Typezapplication/json)r   r   r   r   r   ?jsonz{})r2   preload_contentr[   r   z!application/x-www-form-urlencodedF)fieldsencode_multipartr   r[   r   zmultipart/form-dataTzCannot prepare a request message for provided
                             arguments. Please check that your arguments match
                             declared content type.)r   r   )r   r   r[   r   z{0}
{1}utf8zresponse body: %s   i+  )	http_resp)%upper
ValueErrorr*   sixPY3intfloatlongrf   rg   tuplerB   rk   connection_pool_kwr   r7   r   research
IGNORECASEr   dumpsrequestr.   ApiException
exceptionsSSLErrorformattyper   r	   r   r,   loggerdebugrI   r   )r   r/   r0   r1   r   r2   r3   rD   _request_timeoutr[   request_bodyrC   msges                 r   r   zRESTClientObject.request   s#   *  . . . . .  	4 	K   "'R-R 
	P*CG,[S%LL#tUZI[\\ +!/0@AAA-u55 +&''1,,!/,Q/6Fq6IK K K,go>> +*':>>y$OOG((&8GN#FCwk7SSS=	5FFF 93<!8!888C9VW^%<bmLL .=#'L''+z$'7'7)11)(8 ' ' 2 ) )AA ^,0SSS)11*).(8 ' ' 2 ) )AA ^,0EEE  /)11*)-(8 ' ' 2 ) )AA  c** =#'L)11)(8 ' ' 2 ) )AA7C 'a<<<< %--fc5A>N6=6=	 . ? ?
 !* 	5 	5 	5##DGG$4c!ff==Ca4444	5  		6QA w /v.. LL,af555Q()))ah%%%%#%%%%++++s   3EI9 9KAKKc                 8    |                      d|||||          S )Nr}   r   rD   r   r1   r   r   r0   r   r1   rD   r   s         r   r}   zRESTClientObject.GETC  s-    ||E3$+-=-=)5	  7 7 	7r   c                 8    |                      d|||||          S )Nr~   r   r   r   s         r   r~   zRESTClientObject.HEADK  s-    ||FC$+-=-=)5	  7 7 	7r   c           
      <    |                      d|||||||          S )Nr   r   r1   r3   rD   r   r2   r   r   r0   r   r1   r3   r2   rD   r   s           r   r   zRESTClientObject.OPTIONSS  s3    ||Is$+)5(3-=-=!%  ' ' 	'r   c           	      :    |                      d||||||          S )Nr   )r   r1   rD   r   r2   r   )r   r0   r   r1   r2   rD   r   s          r   r   zRESTClientObject.DELETE]  s0    ||Hc$+)5-=-=!%  ' ' 	'r   c           
      <    |                      d|||||||          S )Nr   r   r   r   s           r   r   zRESTClientObject.POSTf  s3    ||FC$+)5(3-=-=!%  ' ' 	'r   c           
      <    |                      d|||||||          S )Nr   r   r   r   s           r   r   zRESTClientObject.PUTp  s3    ||E3$+)5(3-=-=!%  ' ' 	'r   c           
      <    |                      d|||||||          S )Nr   r   r   r   s           r   r   zRESTClientObject.PATCHz  s3    ||GS$+)5(3-=-=!%  ' ' 	'r   )rL   N)NNNNTN)NNTN)NNNTN)r   r   r   r   r]   r   r}   r~   r   r   r   r   r   r    r   r   rK   rK   j   s3       @ @ @ @D  & ?C>B!%@ @ @ @D JN!7 7 7 7 KO"7 7 7 7 IMCG' ' ' ' AE7;' ' ' ' FJ@D' ' ' ' EI?C' ' ' ' GKAE' ' ' ' ' 'r   rK   c                       e Zd ZddZd ZdS )r   Nc                     |r?|j         | _         |j        | _        |j        | _        |                                | _        d S || _         || _        d | _        d | _        d S r   )r   r   r   r2   r   r   )r   r   r   r   s       r   r   zApiException.__init__  s^     		 #*DK#*DK!DI$//11DLLL DK DKDIDLLLr   c                     d                     | j        | j                  }| j        r|d                     | j                  z  }| j        r|d                     | j                  z  }|S )z#Custom error messages for exceptionz({0})
Reason: {1}
zHTTP response headers: {0}
zHTTP response body: {0}
)r   r   r   r   r2   )r   error_messages     r   __str__zApiException.__str__  sy    ((.t{DK(H(H 	< 	;BB  M 9 	K8??	JJJMr   )NNN)r   r   r   r   r   r    r   r   r   r     s7        
  
  
  
     r   r   )
__future__r   ior   loggingry   r   r_   rc   r   six.moves.urllib.parser   rf   r   (volcenginesdkcore.observability.debuggerr   r   ImportError	getLoggerr   r   IOBaser	   r7   rI   objectrK   r-   r   r    r   r   <module>r      s   ' & & & & & 				   				 				 



  



 , , , , , ,       N N N N N N N NANNNN A A A
+?
@
@@A 
	8	$	$@ @ @ @ @29 @ @ @"F F F4 k  k  kFX' X' X' X' X'v X' X' X'v    9     s   A A