Format: application/x-python-code
⬇ Download File (5.1 KB)
   1  o
   2  
   3  7'hl�@s�ddlmZddlZddlZddlZddlmZmZmZm	Z	m
   4  Z
   5  mZmZm
   6  Z
   7  ddlmZmZmZGdd�de�ZGd	d
   8  �d
   9  e�ZdS)�)�annotationsN�)�ConnectError�ConnectTimeout�ExceptionMapping�	ReadError�ReadTimeout�
  10  WriteError�WriteTimeout�map_exceptions�)�
  11  SOCKET_OPTION�AsyncNetworkBackend�AsyncNetworkStreamc@s\eZdZd#dd�Zd$d%d
  12  d�Zd$d&dd�Zd'dd�Z		d(d)dd�Zd*dd�Zd+d!d"�Z	dS),�
  13  TrioStream�stream�trio.abc.Stream�return�NonecCs
  14  ||_dS�N)�_stream��selfr�r�MC:\Users\shubh\Videos\agent\nova\Lib\site-packages\httpcore/_backends/trio.py�__init__s
  15  zTrioStream.__init__N�	max_bytes�int�timeout�float | None�bytesc	�s��|dur	td�n|}tjttjttjti}t|��1t�|��|j	j
  16  |d�IdH}|Wd�Wd�S1s>wYWd�dS1sNwYdS)N�inf)r)�float�trio�TooSlowErrorr�BrokenResourceErrorr�ClosedResourceErrorr�
  17  fail_afterrZreceive_some)rrr�timeout_or_inf�exc_map�datarrr�reads��
  18  ��"�zTrioStream.read�bufferc	�s��|sdS|dur
  19  td�n|}tjttjttjti}t|��0t�|��|j	j
  20  |d�IdHWd�n1s9wYWd�dSWd�dS1sQwYdS)Nr!)r*)r"r#r$r
  21  r%r	r&rr'rZsend_all)rr,rr(r)rrr�write%s��
  22  ��"�zTrioStream.writec�s�|j��IdHdSr)r�aclose)rrrrr.3��zTrioStream.aclose�ssl_context�ssl.SSLContext�server_hostname�
  23  str | Nonerc�s��|dur	td�n|}tjttjti}tj|j||ddd�}t|��?zt�	|��|�
  24  �IdHWd�n1s;wYWntyV}z	|��IdH|�d}~wwWd�t
  25  |�S1sdwYt
  26  |�S)Nr!TF)r0r2Zhttps_compatible�server_side)r"r#r$rr%r�	SSLStreamrrr'�do_handshake�	Exceptionr.r)rr0r2rr(r)Z
  27  ssl_stream�excrrr�	start_tls6s8���
  28  �����
  29  ��zTrioStream.start_tls�info�str�
  30  typing.AnycCs�|dkrt|jtj�r|jjS|dkr|��j��S|dkr%|��j��S|dkrF|j}t|tj�r;|j	}t|tj�s2t|tj
  31  �sCJ�|jS|dkrS|�d�}|��SdS)N�
  32  ssl_object�client_addrZserver_addr�socket�is_readable)
  33  �
  34  isinstancerr#r5Z_ssl_object�_get_socket_streamr?�getsockname�getpeername�transport_stream�SocketStream�get_extra_infor@)rr:rr?rrrrGQs"�
  35  zTrioStream.get_extra_info�trio.SocketStreamcCs8|j}t|tj�r|j}t|tj�s	t|tj�sJ�|Sr)rrAr#r5rErFrrrrrBes�zTrioStream._get_socket_stream)rrrrr)rrrrrr )r,r rrrr)rr�NN)r0r1r2r3rrrr)r:r;rr<)rrH)
  36  �__name__�
  37  __module__�__qualname__rr+r-r.r9rGrBrrrrrs
  38  
  39  �
  40  rc@s8eZdZ			dddd�Z		dddd�Zddd�ZdS)�TrioBackendN�hostr;�portrrr�
  41  local_addressr3�socket_options�%typing.Iterable[SOCKET_OPTION] | Nonerrc
  42  	�s��|durg}|durtd�n|}tjttjttti}t|��?t�|��tj	|||d�IdH}|D]}	|j
  43  |	�q3Wd�n1sEwYWd�t|�SWd�t|�S1sawYt|�S)Nr!)rNrOrP)r"r#r$rr%r�OSErrorrr'Zopen_tcp_stream�
  44  setsockoptr)
  45  rrNrOrrPrQr(r)r�optionrrr�connect_tcpns0�
  46  �
  47  ���
  48  ��
  49  ��zTrioBackend.connect_tcp�pathc	�s��|durg}|durtd�n|}tjttjttti}t|��<t�|��t�	|�IdH}|D]}|j
  50  |�q0Wd�n1sBwYWd�t|�SWd�t|�S1s^wYt|�S)Nr!)r"r#r$rr%rrSrr'Zopen_unix_socketrTr)rrWrrQr(r)rrUrrr�connect_unix_socket�s,��
  51  ��
  52  ��
  53  ��zTrioBackend.connect_unix_socket�secondsr"rc�s�t�|�IdHdSr)r#�sleep)rrYrrrrZ�r/zTrioBackend.sleep)NNN)rNr;rOrrrrPr3rQrRrrrI)rWr;rrrQrRrr)rYr"rr)rJrKrLrVrXrZrrrrrMms��rM)�
  54  __future__r�ssl�typingr#�_exceptionsrrrrrr	r
  55  r�baser
  56  rrrrMrrrr�<module>s(
  57  X