o
    	hE                     @  s   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dZG dd deZdS )    )annotations)deque)BytesION)Hubget_event_loop)	HttpError   )
BaseClientRequest)Urllib3Client   )bytes_to_strz!Mozilla/5.0 (compatible; urllib3))DELETEOPTIONSPATCHrequestr
   return	list[str]c                 C  s   g }| j r|d| j   | jr|d n|d | jr(|d| j  | jr4|d| j  | jr@|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)r   _pool_key_parts r   h/var/www/html/optinet_system/venv/lib/python3.10/site-packages/kombu/asynchronous/http/urllib3_client.py_get_pool_key_parts   s   
r   c                      s   e Zd ZdZi Zd"d# fdd	Zd
d Zdd Zdd Zd$ddZ	dd Z
dd Zd$ddZdd Zdd Zdd Zd d! Z  ZS )%r   zUrllib3 HTTP Client.N
   hub
Hub | Nonemax_clientsintc                   s:   |pt  }t | || _t | _| jd| j| _	d S )Ng      ?)
r   super__init__r!   r   _pendingr   call_repeatedly_timeout_check_timeout_check_tref)selfr   r!   	__class__r   r   r$   1   s   

zUrllib3Client.__init__c                 C  s&   | j  D ]}|  q| j   d S N)_poolsvaluescloseclear)r)   poolr   r   r   pools_close:   s   
zUrllib3Client.pools_closec                 C  s   | j   |   d S r,   )r(   cancelr2   r)   r   r   r   r/   ?   s   
zUrllib3Client.closec                 C  s   | j | |   |S r,   )r%   r   _process_queuer)   r   r   r   r   add_requestC   s   zUrllib3Client.add_requestr   r
   c                 C  s  t |d}d }d }|jrAtjjd |j|jd}|jr(tj|j d|j d}nd }|j	}|
d|  |rA|
dt|  d|}|| jv rP| j| S |r\tj|| j|d}ntj| jd	}|jrn|jd
f|jd< |jrwd|jd< nd|jd< |jd ur|j|jd< n|jdu rzd
dlm} | |jd< W n	 ty   Y nw |jd ur|j|jd< |jd ur|j|jd< || j|< |S )Nr   )schemehostport:)proxy_basic_authzproxy=zproxy_headers=|)	proxy_url	num_poolsproxy_headers)r@   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   certifirF   ImportErrorr   r   )r)   r   r   
_proxy_urlrA   	_pool_key_poolrF   r   r   r   get_poolH   sh   










zUrllib3Client.get_poolc                 C     |    d S r,   _process_pending_requestsr4   r   r   r   r'         zUrllib3Client._timeout_checkc                 C  s(   | j r| j  }| | | j sd S d S r,   )r%   popleft_process_requestr6   r   r   r   r_      s   

z'Urllib3Client._process_pending_requestsc                 C  s  |j }|dt|jpt |d|jrdnd |jd ur1|tj	j
|j d|jp+d d z+| j|d}|j|j|j||jd	|jd
}t|j}| j||j|j || d d}W n$ tjjy } z| j|di d d tdt|d}W Y d }~nd }~ww || d S )Nz
User-AgentzAccept-Encodingzgzip,deflatenoner<    )
basic_authr8   F)headersbodypreload_contentredirect)r   coderf   buffereffective_urlerroriW  )rf   
setdefaultr   
user_agentDEFAULT_USER_AGENTuse_gzipauth_usernameupdaterJ   rK   rO   auth_passwordr\   r   methodrQ   rg   follow_redirectsr   dataResponsestatusgeturl
exceptions	HTTPErrorr   rR   on_ready)r)   r   rf   r[   responserk   response_objer   r   r   rb      s`   




zUrllib3Client._process_requestc                 C  r]   r,   r^   r4   r   r   r   r5      r`   zUrllib3Client._process_queuec                 C     d S r,   r   r)   fdr   r   r   on_readable      zUrllib3Client.on_readablec                 C  r   r,   r   r   r   r   r   on_writable   r   zUrllib3Client.on_writablec                 C  r   r,   r   )r)   curlr   rk   rf   r   r   r   _setup_request   r   zUrllib3Client._setup_request)Nr   )r   r    r!   r"   )r   r
   )__name__
__module____qualname____doc__r-   r$   r2   r/   r7   r\   r'   r_   rb   r5   r   r   r   __classcell__r   r   r*   r   r   ,   s    	
J
7r   )r   r
   r   r   )
__future__r   collectionsr   ior   rJ   kombu.asynchronous.hubr   r   kombu.exceptionsr   baser	   r
   __all__utils.encodingr   rp   	frozensetEXTRA_METHODSr   r   r   r   r   r   <module>   s    
