
    i                         d dl Z d dlZd dlZd dlmZm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 ej        dk    rd dl Znd dlZdZ G d d          ZdS )    N)AnyOptional   )	ProxyTypeparse_proxy_url)ProxyConnectionErrorProxyTimeoutError
ProxyError   )AsyncioSocketStream)Resolver)
ReplyError)create_connector)connect_tcp)r      <   c                   *   e Zd Z	 	 	 	 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         dedej        f
dZ	 	 ddej        fdZed             Zed             Zed             Zededd fd            ZdS )AsyncioProxyN
proxy_typehostportusernamepasswordrdnsloopc                     |t          j                    }|| _        || _        || _        || _        || _        || _        || _        t          |          | _
        d S )N)r   )asyncioget_event_loop_loop_proxy_type_proxy_host_proxy_port	_password	_username_rdnsr   	_resolver)selfr   r   r   r   r   r   r   s           c/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/python_socks/async_/asyncio/_proxy.py__init__zAsyncioProxy.__init__   sa     <)++D
%!!
!t,,,    	dest_host	dest_porttimeoutkwargsreturnc                   K   |t           }|                    d          }|t          j        dt          d           |                    d          }	 t          j        |          4 d {V  |                     ||||           d {V cd d d           d {V  S # 1 d {V swxY w Y   d S # t          j	        $ r}t          d|           |d }~ww xY w)N_socketzFThe '_socket' argument is deprecated and will be removed in the future   )
stacklevel
local_addr)r,   r-   r2   r5   zProxy connection timed out: )DEFAULT_TIMEOUTgetwarningswarnDeprecationWarningasync_timeoutr.   _connectr   TimeoutErrorr
   )r(   r,   r-   r.   r/   r2   r5   es           r)   connectzAsyncioProxy.connect3   s      ?%G**Y''MX"    ZZ--
		U$,W55        !]]''#)	 +                                      # 	U 	U 	U#$L7$L$LMMSTT	Us<   B4 /B!B4 !
B++B4 .B+/B4 4CCCc                   K   |x	 t          | j        | j        | j        |           d {V }nN# t          $ rA}d                    | j        | j        |j                  }t          |j        |          |d }~ww xY wt          || j                  }	 t          | j        | j        | j        | j        | j                  }|                    |||           d {V  |S # t"          $ r5}|                                 d {V  t'          ||j                  d }~wt*          j        t.          f$ r |                                 d {V   w xY w)N)r   r   r   r5   z%Could not connect to proxy {}:{} [{}])sockr   )r   r   r   r   resolver)streamr   r   )
error_code)r   r"   r#   r    OSErrorformatstrerrorr	   errnor   r   r!   r%   r$   r&   r'   r?   r   closer   rD   r   CancelledError	Exception)	r(   r,   r-   r2   r5   r>   msgrC   	connectors	            r)   r<   zAsyncioProxy._connectQ   s      ?@ +)))	! ! !        @ @ @=DD$$J 
 +17C88a?@ %'
CCC	(+Z  I ## $          N 	9 	9 	9,,..       Q1<8888&	2 	 	 	,,..       	s-   (/ 
A:<A55A:AC! !
E+0D5Ec                     | j         S N)r"   r(   s    r)   
proxy_hostzAsyncioProxy.proxy_host       r+   c                     | j         S rO   )r#   rP   s    r)   
proxy_portzAsyncioProxy.proxy_port   rR   r+   c                      | |i |S rO    )clsargsr/   s      r)   createzAsyncioProxy.create   s    sD#F###r+   urlc                 0    t          |          } | |i |S rO   r   )rW   rZ   r/   url_argss       r)   from_urlzAsyncioProxy.from_url   s$    "3''sH''''r+   )NNNNrO   )NN)__name__
__module____qualname__r   strintr   boolr   AbstractEventLoopr*   floatr   socketr?   r<   propertyrQ   rT   classmethodrY   r]   rV   r+   r)   r   r      s        #'"&#48- -- - 	-
 3-- 3-- tn- w01- - - -8 $(	U UU U %	U
 U 
U U U UD - - 
- - - -^     X      X  $ $ [$ (3 (^ ( ( ( [( ( (r+   r   )r   rf   systypingr   r   r8   _typesr   _helpersr   _errorsr	   r
   r   _streamr   r'   r   _protocols.errorsr   _connectors.factory_asyncr   r<   r   version_infor;   r6   r   rV   r+   r)   <module>rr      sG     



                        ' ' ' ' ' ' J J J J J J J J J J ( ( ( ( ( (       + + + + + + 9 9 9 9 9 9 ! ! ! ! ! !w#####u( u( u( u( u( u( u( u( u( u(r+   