
    j              
       8   d dl Z d dlZd dlmZmZmZmZmZmZm	Z	 d dl
Z
d dlZd dlZddlmZmZ d dlZ ej$                  e      ZdZeZdZdZdZdZdZd	ee   d
ee   dedede
j<                  f
dZd	ee   d
ee   deeef   fdZ  G d de
j<                        Z!y)    N)OptionalDictAnyUnionIterableAsyncIterableMapping   )hookspackage_versionzX-Opik-Deprecation
      d   	workspaceapi_keycheck_tls_certificatecompress_json_requestsreturnc                    t        j                  t              }|du r%dt        j                  v rt        j                  d   n|}t        j                  j                  d      }t        j                  t        t        t        t              }|||d|d}t        j                  j                  |      }t        d	d|i|}	t        | |      }
|	j                   j#                  |
       t        j                  j%                  |	       |	S )
N)keepalive_expiryTSSL_CERT_FILE_OPIK_HTTP_PROXY)connectreadwritepool)limitsverifytimeoutfollow_redirectsproxyr   )r   r    )httpxLimitsKEEPALIVE_EXPIRY_SECONDSosenvirongetTimeoutCONNECT_TIMEOUT_SECONDSREAD_TIMEOUT_SECONDSWRITE_TIMEOUT_SECONDSPOOL_TIMEOUT_SECONDSr   httpx_client_hookbuild_init_argumentsOpikHttpxClient_prepare_headersheadersupdateapply_httpx_client_hooks)r   r   r   r   r   r   r!   r   kwargsclientr2   s              j/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/httpx_client.pyr(   r(      s     \\+CDF !D(_

-J 	

?#"  JJNN-.Emm'!#!	G  F $$99&AFU4JUfUFGDG
NN'"	44V<M    c                 n    t         j                  t        j                         dd}| | |d<   |||d<   |S )Ngzip)zX-OPIK-DEBUG-SDK-VERSIONzX-OPIK-DEBUG-PY-VERSIONzAccept-EncodingzComet-WorkspaceAuthorization)r   VERSIONplatformpython_version)r   r   results      r7   r1   r1   D   sK     %4$;$;#+#:#:#<!F $- !")Mr8   c                   6    e Zd Zddededdf fdZdddddddej                  dd	dede	ej                  ef   d	ee	eeee   ee   f      d
eeeef      dedededededededej                   f fdZdej                   dedej$                  f fdZ xZS )r0   r   r5   r   Nc                 @    t        |   di | || _        i | _        y )Nr"   )super__init__r   warnings)selfr   r5   	__class__s      r7   rC   zOpikHttpxClient.__init__W   s"    "6"&<#)+r8   )	contentdatafilesjsonparamsr2   cookiesr   
extensionsmethodurlrG   rH   rI   rJ   rK   r2   rL   r   rM   c       	         $   | j                   rj|dv rf|dt        j                  |      j                  d      }t	        j
                  |      }d }|i }t        t        |            |d<   d|d<   d|vrd|d<   t        | %  |||||||||	|
|	      S )
N)POSTPUTPATCHzutf-8zContent-Lengthr:   zContent-Encodingzcontent-typezapplication/json;charset=utf-8zContent-Type)rN   rO   rG   rH   rI   rJ   rK   r2   rL   r   rM   )
r   jsonlibdumpsencoder:   compressstrlenrB   build_request)rE   rN   rO   rG   rH   rI   rJ   rK   r2   rL   r   rM   	json_datarF   s                r7   rZ   zOpikHttpxClient.build_request\   s    & &&11d6F#MM$/66w?	--	2? G,/G,=().4*+!0.NGN+w$! % 
 	
r8   requestc                 J   t        |   |fi |}|j                  j                  t              }|rpd}|j
                   d|j                  j                   }|| j                  vr;d| j                  |<   t        j                  ||j
                  |j                  |       |S )Nz!Deprecation warning for %s %s: %s:T)rB   sendr2   r(   DEPRECATION_HEADERrN   rO   pathrD   LOGGERwarning)rE   r\   r5   responsedeprecation_messagemessagerequest_keyrF   s          r7   r_   zOpikHttpxClient.send   s    7<262&..223EF9G$^^,Agkk.>.>-?@K$--/-1k*W^^W[[:M r8   )T)__name__
__module____qualname__boolr   rC   r#   USE_CLIENT_DEFAULTrX   r   URLr   bytesr   r   r	   RequestrZ   Responser_   __classcell__)rF   s   @r7   r0   r0   V   s!   ,t ,c ,d , ,0//,
,
 599c>",

 #uhuo}U/CCD
,
 wsCx(),
 ,
 ,
 ,
 ,
 ,
 ,
 ,
  
!,
\EMM S U^^  r8   r0   )"r:   loggingtypingr   r   r   r   r   r   r	   r#   r&   rJ   rT    r   r   r=   	getLoggerrh   rb   r`   rX   CABundlePathr%   r*   r+   r,   r-   rk   Clientr(   r1   r0   r"   r8   r7   <module>rx      s      O O O  	  $ 			8	$)       (}(c](  ( !	(
 \\(V}'/}	#s(^$@ell @r8   