
    i                         d dl Z d dlmZmZ d dl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	dlmZ d	dlmZ dZ G d d          ZdS )    N)OptionalAny   )ProxyConnectionErrorProxyTimeoutError
ProxyError)	ProxyTypeparse_proxy_url)
ReplyError)create_connector   )SyncSocketStream)SyncResolver)connect_tcp<   c                       e Zd Z	 	 	 ddedededee         dee         dee         fdZ	 dd	ed
edee	         de
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 )	SyncProxyN
proxy_typehostportusernamepasswordrdnsc                     || _         || _        || _        || _        || _        || _        t                      | _        d S N)_proxy_type_proxy_host_proxy_port	_password	_username_rdnsr   	_resolver)selfr   r   r   r   r   r   s          Y/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/python_socks/sync/_proxy.py__init__zSyncProxy.__init__   s@     &!!
%    	dest_host	dest_porttimeoutkwargsreturnc                 v   |t           }|                    d          }|t          j        dt          d           ||                    d          }	 t          | j        | j        ||          }nN# t          $ rA}d	                    | j        | j        |j
                  }t          |j        |          |d }~ww xY wt          |          }		 t          | j        | j        | j        | j        | j                  }
|
                    |	||	           |S # t*          j        $ r<}|	                                 t1          d
	                    |                    |d }~wt2          $ r/}|	                                 t5          ||j                  d }~wt8          $ r |	                                  w xY w)N_socketzFThe '_socket' argument is deprecated and will be removed in the futurer   )
stacklevel
local_addr)r   r   r*   r0   z%Could not connect to proxy {}:{} [{}])r   r   r   r   resolver)streamr   r   zProxy connection timed out: {})
error_code)DEFAULT_TIMEOUTgetwarningswarnDeprecationWarningr   r   r   OSErrorformatstrerrorr   errnor   r   r   r!   r    r"   r#   connectsocketr*   closer   r   r   r3   	Exception)r$   r(   r)   r*   r+   r.   r0   emsgr2   	connectors              r%   r=   zSyncProxy.connect'   s
    ?%G**Y''MX"    ?L11J@%))#)	    @ @ @=DD$$J 
 +17C88a?@ "'**	(+Z  I      N~ 	] 	] 	]LLNNN#$D$K$KG$T$TUU[\\ 	9 	9 	9LLNNNQ1<8888 	 	 	LLNNN	s=   A3 3
B>=<B99B>AD F8'7EF8+*F#F8c                     | j         S r   )r   r$   s    r%   
proxy_hostzSyncProxy.proxy_hoste       r'   c                     | j         S r   )r   rE   s    r%   
proxy_portzSyncProxy.proxy_porti   rG   r'   c                      | |i |S r    )clsargsr+   s      r%   createzSyncProxy.createm   s    sD#F###r'   urlc                 0    t          |          } | |i |S r   r
   )rL   rO   r+   url_argss       r%   from_urlzSyncProxy.from_urlq   s$    "3''sH''''r'   )NNNr   )__name__
__module____qualname__r	   strintr   boolr&   floatr   r>   r=   propertyrF   rI   classmethodrN   rR   rK   r'   r%   r   r      sR        #'"&#( (( ( 	(
 3-( 3-( tn( ( ( (, $(	< << < %	<
 < 
< < < <|     X      X  $ $ [$ (3 ([ ( ( ( [( ( (r'   r   )r>   typingr   r   r6   _errorsr   r   r   _typesr	   _helpersr   _protocols.errorsr   _connectors.factory_syncr   _streamr   r#   r   _connectr   r4   r   rK   r'   r%   <module>rd      s                     I I I I I I I I I I       & & & & & & * * * * * * 7 7 7 7 7 7 % % % % % % # # # # # # ! ! ! ! ! ! `( `( `( `( `( `( `( `( `( `(r'   