o
    ÌÄ.j×  ã                   @  sø   d dl 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	 ddl
mZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZ G dd„ deƒZedur`G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ de	ƒZdZdS )é    )ÚannotationsN)Úunquoteé   )ÚDEFAULT_POOLBLOCK)ÚHTTPAdapter)ÚRequestException)ÚHTTPConnection)ÚHTTPConnectionPool)Ú ServerSideEventExtensionFromHTTPÚWebSocketExtensionFromHTTP)ÚPoolManager)ÚCacheLayerAltSvcType)Úselect_proxyc                   @  ó(   e Zd Zed	dd„ƒZed
dd„ƒZdS )Ú$UnixServerSideEventExtensionFromHTTPÚreturnÚstrc                   C  ó   dS ©NÚunix© r   r   r   ú\/home/thesage/.local/lib/python3.10/site-packages/niquests/extensions/unixsocket/__init__.pyÚimplementation   ó   z3UnixServerSideEventExtensionFromHTTP.implementationÚschemec                 C  ó   ddi|  S )NÚpsseú	http+unixr   ©r   r   r   r   Úscheme_to_http_scheme   ó   z:UnixServerSideEventExtensionFromHTTP.scheme_to_http_schemeN©r   r   ©r   r   r   r   ©Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r   r      ó
    r   c                   @  r   )ÚUnixWebSocketExtensionFromHTTPr   r   c                   C  r   r   r   r   r   r   r   r      r   z-UnixWebSocketExtensionFromHTTP.implementationr   c                 C  r   )NÚwsr   r   r   r   r   r   r   #   r    z4UnixWebSocketExtensionFromHTTP.scheme_to_http_schemeNr!   r"   r#   r   r   r   r   r)      r(   r)   c                      s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚUnixHTTPConnectionc                   s<   t ƒ j|i |¤Ž t| jƒ| _| j| _| j d¡d | _d S )Nú/éÿÿÿÿ)ÚsuperÚ__init__r   ÚhostÚsocket_pathÚsplit)ÚselfÚargsÚkwargs©Ú	__class__r   r   r/   )   s   zUnixHTTPConnection.__init__c                 C  s:   t   t jt j¡}| | j¡ | | j¡ || _|  ¡  d S ©N)	ÚsocketÚAF_UNIXÚSOCK_STREAMÚ
settimeoutÚtimeoutÚconnectr1   ÚsockÚ
_post_conn)r3   r?   r   r   r   r>   /   s
   zUnixHTTPConnection.connect)r$   r%   r&   r/   r>   Ú__classcell__r   r   r6   r   r+   (   s    r+   c                   @  s   e Zd ZeZdS )ÚUnixHTTPConnectionPoolN)r$   r%   r&   r+   ÚConnectionClsr   r   r   r   rB   7   s    rB   c                   @  s6   e Zd Zedfddd„Zddd„Zdd„ Zdd„ ZdS )ÚUnixAdapterNÚconnectionsÚintÚmaxsizeÚblockÚboolÚquic_cache_layerúCacheLayerAltSvcType | NoneÚpool_kwargsú
typing.Anyc                 K  sV   || _ || _|| _|| _td||||dœ|¤Ž| _| jjd | jjd< dti| j_d S )N)Ú	num_poolsrG   rH   Úpreemptive_quic_cacheÚhttpr   r   )	Ú_pool_connectionsÚ_pool_maxsizeÚ_pool_blockÚ_quic_cache_layerr   ÚpoolmanagerÚkey_fn_by_schemerB   Úpool_classes_by_scheme)r3   rE   rG   rH   rJ   rL   r   r   r   Úinit_poolmanager<   s   üûÿzUnixAdapter.init_poolmanagerc                 C  s"   t ||ƒ}|rtdƒ‚| j |¡S )Nz-unix socket cannot be associated with proxies)r   r   rU   Úconnection_from_url)r3   ÚurlÚproxiesÚproxyr   r   r   Úget_connectionU   s   
zUnixAdapter.get_connectionc                 C  s   |j S r8   )Úpath_url)r3   Úrequestr[   r   r   r   Úrequest_url]   s   zUnixAdapter.request_urlc                 C  s   | j  ¡  d S r8   )rU   Úclear)r3   r   r   r   Úclose`   s   zUnixAdapter.close)
rE   rF   rG   rF   rH   rI   rJ   rK   rL   rM   r8   )r$   r%   r&   r   rX   r]   r`   rb   r   r   r   r   rD   ;   s    û
rD   )rD   )Ú
__future__r   r9   ÚtypingÚurllib.parser   Ú	_constantr   Úadaptersr   Ú
exceptionsr   Úpackages.urllib3.connectionr   Úpackages.urllib3.connectionpoolr	   Ú&packages.urllib3.contrib.webextensionsr
   r   Úpackages.urllib3.poolmanagerr   r   Úutilsr   r   r)   r+   rB   rD   Ú__all__r   r   r   r   Ú<module>   s(    

)