
    IhE                        d dl mZ d dlmZ d dlmZ d dlZd dlmZm	Z	 d dl
mZ ddlmZmZ d	Zd
dlmZ dZ eg d      ZddZ G d de      Zy)    )annotations)deque)BytesION)Hubget_event_loop)	HttpError   )
BaseClientRequest)Urllib3Client   )bytes_to_strz!Mozilla/5.0 (compatible; urllib3))DELETEOPTIONSPATCHc                   g }| j                   r|j                  d| j                           | j                  r|j                  d       n|j                  d       | j                  r|j                  d| j                          | j                  r|j                  d| j                          | j
                  r|j                  d| j
                          |S )Nz
interface=zvalidate_cert=Truezvalidate_cert=Falsez	ca_certs=zclient_cert=zclient_key=)network_interfaceappendvalidate_certca_certsclient_cert
client_key)request_pool_key_partss     _/var/www/html/planif/env/lib/python3.12/site-packages/kombu/asynchronous/http/urllib3_client.py_get_pool_key_partsr      s    O  G,E,E+FGH34457+;+;*<=>g.A.A-BCDW-?-?,@AB    c                  p     e Zd ZdZi Zdd fdZd Zd Zd ZddZ	d Z
d Zdd	Zd
 Zd Zd Zd Z xZS )r   zUrllib3 HTTP Client.c                    |xs
 t               }t        | 	  |       || _        t	               | _        | j                  j                  d| j                        | _	        y )Ng      ?)
r   super__init__max_clientsr   _pendinghubcall_repeatedly_timeout_check_timeout_check_tref)selfr$   r"   	__class__s      r   r!   zUrllib3Client.__init__1   sP    %^%&#'88#;#;$$$
 r   c                    | j                   j                         D ]  }|j                           | j                   j                          y N)_poolsvaluescloseclear)r(   pools     r   pools_closezUrllib3Client.pools_close:   s7    KK&&( 	DJJL	r   c                X    | j                   j                          | j                          y r+   )r'   cancelr1   r(   s    r   r.   zUrllib3Client.close?   s       '')r   c                \    | j                   j                  |       | j                          |S r+   )r#   r   _process_queuer(   r   s     r   add_requestzUrllib3Client.add_requestC   s%    W%r   c                   t        |      }d }d }|j                  rt        j                  j	                  d |j                  |j
                        }|j                  r0t        j                  |j                   d|j                         }nd }|j                  }|j                  d|        |r|j                  dt        |              dj                  |      }|| j                  v r| j                  |   S |r#t        j                  || j                  |      }n t        j                   | j                  	      }|j"                  r|j"                  d
f|j$                  d<   |j&                  rd|j$                  d<   nd|j$                  d<   |j(                  |j(                  |j$                  d<   n)|j&                  du r	 d
dlm}  |       |j$                  d<   |j0                  |j0                  |j$                  d<   |j2                  |j2                  |j$                  d<   || j                  |<   |S # t.        $ r Y fw xY w)Nr   )schemehostport:)proxy_basic_authzproxy=zproxy_headers=|)	proxy_url	num_poolsproxy_headers)rB   r   source_addressCERT_REQUIRED	cert_reqs	CERT_NONEr   T)where	cert_filekey_file)r   
proxy_hosturllib3utilUrl
proxy_portproxy_usernamemake_headersproxy_passwordurlr   strjoinr,   ProxyManagerr"   PoolManagerr   connection_pool_kwr   r   certifirH   ImportErrorr   r   )r(   r   r   
_proxy_urlrC   	_pool_key_poolrH   s           r   get_poolzUrllib3Client.get_poolH   s=   -g>
 ))'''' * J
 %% ' 4 4"112G2235! !%#J""VJ<#89&&M8J7K'LMHH_-	#;;y)) (($**+E ''$2B2BCE $$)):E$$%56   4CE$$[14?E$$[1 '3:3C3CE$$Z0""d*)7<w((4
 *4;4G4GE$$[1)3:3E3EE$$Z0!&I  s   
H? ?	I
Ic                $    | j                          y r+   _process_pending_requestsr4   s    r   r&   zUrllib3Client._timeout_check       &&(r   c                    | j                   r9| j                   j                         }| j                  |       | j                   r8y y r+   )r#   popleft_process_requestr7   s     r   ra   z'Urllib3Client._process_pending_requests   s2    mmmm++-G!!'* mmr   c                p   |j                   }|j                  dt        |j                  xs t                     |j                  d|j
                  rdnd       |j                  L|j                  t        j                  j                  |j                   d|j                  xs d              	 | j                  |      }|j                  |j                  |j                  ||j                   d	|j"                  
      }t%        |j&                        }| j)                  ||j*                  |j                   ||j-                         d       }|j7                  |       y # t        j.                  j0                  $ r4}| j)                  |di d d t3        dt5        |                  }Y d }~^d }~ww xY w)Nz
User-AgentzAccept-Encodingzgzip,deflatenoner>    )
basic_authr:   F)headersbodypreload_contentredirect)r   coderj   buffereffective_urlerroriW  )rj   
setdefaultr   
user_agentDEFAULT_USER_AGENTuse_gzipauth_usernameupdaterL   rM   rQ   auth_passwordr^   r   methodrS   rk   follow_redirectsr   dataResponsestatusgeturl
exceptions	HTTPErrorr   rT   on_ready)r(   r   rj   r]   responsero   response_objes           r   re   zUrllib3Client._process_request   s   //++A/AB	
 	%..NF	
   ,NN))"001G117R8: * 	MM'M2E}}\\ % 11 % H X]]+F==__ ((&oo/ ) L$ 	& !!++ 	=="SV, ) L	s   3BE$ $F5*F00F5c                $    | j                          y r+   r`   r4   s    r   r6   zUrllib3Client._process_queue   rb   r   c                     y r+    r(   fds     r   on_readablezUrllib3Client.on_readable       r   c                     y r+   r   r   s     r   on_writablezUrllib3Client.on_writable   r   r   c                     y r+   r   )r(   curlr   ro   rj   s        r   _setup_requestzUrllib3Client._setup_request   r   r   )N
   )r$   z
Hub | Noner"   int)r   r   )__name__
__module____qualname____doc__r,   r!   r1   r.   r8   r^   r&   ra   re   r6   r   r   r   __classcell__)r)   s   @r   r   r   ,   sJ    F


HT)+
5'n)r   r   )r   r   returnz	list[str])
__future__r   collectionsr   ior   rL   kombu.asynchronous.hubr   r   kombu.exceptionsr   baser
   r   __all__utils.encodingr   rt   	frozensetEXTRA_METHODSr   r   r   r   r   <module>r      sF    "    6 & %
 *8 89.oJ or   