
    i                         d dl Z d dlmZm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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Z G d d      Zy)    N)AnyOptional   )	ProxyTypeparse_proxy_url)ProxyConnectionErrorProxyTimeoutError
ProxyError   )Resolver)AnyioSocketStream)connect_tcp)
ReplyError)create_connector<   c                      e Zd ZU ee   ed<   	 	 	 	 ddedededee   dee   dee	   d	ee
j                     fd
Z	 	 ddededee
j                     dee   dedefdZed        Zed        Zed        Zededd fd       Zy)
AnyioProxy_streamN
proxy_typehostportusernamepasswordrdns	proxy_sslc                     || _         || _        || _        || _        || _        || _        || _        t               | _        y N)	_proxy_type_proxy_host_proxy_port	_password	_username_rdns
_proxy_sslr   	_resolver)selfr   r   r   r   r   r   r   s           S/root/searxng-venv/lib/python3.12/site-packages/python_socks/async_/anyio/_proxy.py__init__zAnyioProxy.__init__   sA     &!!
#!    	dest_host	dest_portdest_ssltimeoutkwargsreturnc                   K   |t         }|j                  d      }|t        j                  dt        d       |j                  d      }	 t        j                  |      5  |4	 t        t        | j                  | j                  |       d {         }|}
	 | j                   /|
j#                  | j                  | j                          d {   }
t%        | j&                  | j(                  | j*                  | j,                  | j.                  	      }|j1                  |
||
       d {    ||
j#                  ||       d {   }
|
cd d d        S 7 # t        $ rM}dj                  | j                  | j                  |j                        }	t        |j                  |	      |d }~ww xY w7 7 7 n# t2        $ r5}|
j5                          d {  7   t7        ||j8                        d }~wt:        $ r |
j5                          d {  7    w xY w# 1 sw Y   y xY w# t<        $ r}t?        d|       |d }~ww xY ww)Nr   zFThe '_stream' argument is deprecated and will be removed in the future   )
stacklevel
local_host)r   r   r4   z%Could not connect to proxy {}:{} [{}])hostnamessl_context)r   r   r   r   resolver)streamr   r   )
error_codezProxy connection timed out: ) DEFAULT_TIMEOUTgetwarningswarnDeprecationWarninganyio
fail_afterr   r   r    r!   OSErrorformatstrerrorr	   errnor%   	start_tlsr   r   r#   r"   r$   r&   connectr   closer   r9   BaseExceptionTimeoutErrorr
   )r'   r+   r,   r-   r.   r/   r   r4   emsgr8   	connectors               r(   rF   zAnyioProxy.connect,   sV     ?%G**Y'MMX" ZZ-
8	U!!'* 4?H"3"-%)%5%5%)%5%5+5# # ! 2'-'7'7%)%5%5(, (8 ( "
 !1#'#3#3!%!%!ZZ!%!I $++%&& ,     +'-'7'7%.(0 (8 ( "
 "]4 4 # HELL ,, ,,JJ
 3177C@aGH"" " A ,,.(($Q1<<@@$  ,,.((e4 4l  	U#&B7)$LMSTT	Us   A	IH, !H %*EE
EH 6F=F7AF=/F90F=F;F=	H, IE	F4'AF//F44H 7F=9F=;F==	HG6GG66HHHH  H)%H, (I)H, ,	I	5II		Ic                     | j                   S r   )r    r'   s    r(   
proxy_hostzAnyioProxy.proxy_hostz       r*   c                     | j                   S r   )r!   rN   s    r(   
proxy_portzAnyioProxy.proxy_port~   rP   r*   c                      | |i |S r    )clsargsr/   s      r(   createzAnyioProxy.create   s    D#F##r*   urlc                 (    t        |      } | |i |S r   r   )rU   rX   r/   url_argss       r(   from_urlzAnyioProxy.from_url   s    "3'H'''r*   )NNNN)NN)__name__
__module____qualname__r   r   __annotations__r   strintboolssl
SSLContextr)   floatr   rF   propertyrO   rR   classmethodrW   r[   rT   r*   r(   r   r      s;   '(( #'"&#.2$$ $ 	$
 3-$ 3-$ tn$ CNN+$0 .2#'LULU LU 3>>*	LU
 %LU LU 
LU\         $ $ (3 (\ ( (r*   r   )rc   typingr   r   r<   r?   _typesr   _helpersr   _errorsr	   r
   r   r&   r   r   r   _connectr   _protocols.errorsr   _connectors.factory_asyncr   r:   r   rT   r*   r(   <module>ro      s=    
      ' J J  & ! + 9t( t(r*   