o
    óT·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mZm	Z	m
Z
mZ G dd„ dƒZ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S )é    )ÚannotationsNé   )Ú	ReadErroré   )ÚSOCKET_OPTIONÚAsyncNetworkBackendÚAsyncNetworkStreamÚNetworkBackendÚNetworkStreamc                   @  s    e Zd Zd
dd„Zddd„Zd	S )ÚMockSSLObjectÚhttp2Úboolc                 C  s
   || _ d S ©N©Ú_http2)Úselfr   © r   ú[/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/httpcore2/_backends/mock.pyÚ__init__   ó   
zMockSSLObject.__init__ÚreturnÚstrc                 C  s   | j rdS dS )NÚh2zhttp/1.1r   ©r   r   r   r   Úselected_alpn_protocol   s   z$MockSSLObject.selected_alpn_protocolN)r   r   ©r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    
r   c                   @  ó^   e Zd Zd$d%dd	„Zd&d'dd„Zd&d(dd„Zd)dd„Z	
	
d*d+dd„Zd,d d!„Zd-d"d#„Z	d
S ).Ú
MockStreamFÚbufferúlist[bytes]r   r   r   ÚNonec                 C  ó   || _ || _d| _d S ©NF©Ú_bufferr   Ú_closed©r   r!   r   r   r   r   r      ó   
zMockStream.__init__NÚ	max_bytesÚintÚtimeoutúfloat | NoneÚbytesc                 C  s$   | j rtdƒ‚| jsdS | j d¡S ©NzConnection closedó    r   ©r(   r   r'   Úpop©r   r+   r-   r   r   r   Úread   s
   zMockStream.readc                 C  ó   d S r   r   ©r   r!   r-   r   r   r   Úwrite%   ó   zMockStream.writec                 C  s
   d| _ d S ©NT©r(   r   r   r   r   Úclose(   r   zMockStream.closeÚssl_contextússl.SSLContextÚserver_hostnameú
str | Noner
   c                 C  s   | S r   r   ©r   r=   r?   r-   r   r   r   Ú	start_tls+   s   zMockStream.start_tlsÚinfor   ú
typing.Anyc                 C  ó   |dkr
t | jd�S d S ©NÚ
ssl_object©r   ©r   r   ©r   rC   r   r   r   Úget_extra_info3   ó   zMockStream.get_extra_infoc                 C  ó   dS )Nz<httpcore2.MockStream>r   r   r   r   r   Ú__repr__6   r9   zMockStream.__repr__©F©r!   r"   r   r   r   r#   r   ©r+   r,   r-   r.   r   r/   ©r!   r/   r-   r.   r   r#   ©r   r#   ©NN)r=   r>   r?   r@   r-   r.   r   r
   ©rC   r   r   rD   r   )
r   r   r   r   r5   r8   r<   rB   rK   rN   r   r   r   r   r       ó    
ü
r    c                   @  óD   e Zd Zdd dd	„Z	
	
	
d!d"dd„Z	
	
d#d$dd„Zd%dd„Zd
S )&ÚMockBackendFr!   r"   r   r   r   r#   c                 C  ó   || _ || _d S r   ©r'   r   r)   r   r   r   r   ;   ó   
zMockBackend.__init__NÚhostr   Úportr,   r-   r.   Úlocal_addressr@   Úsocket_optionsú%typing.Iterable[SOCKET_OPTION] | Noner
   c                 C  ó   t t| jƒ| jd�S ©NrH   ©r    Úlistr'   r   ©r   r\   r]   r-   r^   r_   r   r   r   Úconnect_tcp?   s   zMockBackend.connect_tcpÚpathc                 C  ra   rb   rc   ©r   rg   r-   r_   r   r   r   Úconnect_unix_socketI   s   zMockBackend.connect_unix_socketÚsecondsÚfloatc                 C  r6   r   r   ©r   rj   r   r   r   ÚsleepQ   r9   zMockBackend.sleeprO   rP   ©NNN)r\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   r
   rT   )rg   r   r-   r.   r_   r`   r   r
   ©rj   rk   r   r#   ©r   r   r   r   rf   ri   rm   r   r   r   r   rX   :   ó    úürX   c                   @  r   ).ÚAsyncMockStreamFr!   r"   r   r   r   r#   c                 C  r$   r%   r&   r)   r   r   r   r   V   r*   zAsyncMockStream.__init__Nr+   r,   r-   r.   r/   c                 Ã  s&   �| j rtdƒ‚| jsdS | j d¡S r0   r2   r4   r   r   r   r5   [   s   €zAsyncMockStream.readc                 Ã  ó   �d S r   r   r7   r   r   r   r8   b   ó   €zAsyncMockStream.writec                 Ã  s   �d| _ d S r:   r;   r   r   r   r   Úaclosee   s   €
zAsyncMockStream.acloser=   r>   r?   r@   r   c                 Ã  s   �| S r   r   rA   r   r   r   rB   h   s   €zAsyncMockStream.start_tlsrC   r   rD   c                 C  rE   rF   rI   rJ   r   r   r   rK   p   rL   zAsyncMockStream.get_extra_infoc                 C  rM   )Nz<httpcore2.AsyncMockStream>r   r   r   r   r   rN   s   r9   zAsyncMockStream.__repr__rO   rP   r   rQ   rR   rS   rT   )r=   r>   r?   r@   r-   r.   r   r   rU   r   )
r   r   r   r   r5   r8   ru   rB   rK   rN   r   r   r   r   rr   U   rV   rr   c                   @  rW   )&ÚAsyncMockBackendFr!   r"   r   r   r   r#   c                 C  rY   r   rZ   r)   r   r   r   r   x   r[   zAsyncMockBackend.__init__Nr\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   c                 Ã  ó   �t t| jƒ| jd�S rb   ©rr   rd   r'   r   re   r   r   r   rf   |   s   €zAsyncMockBackend.connect_tcprg   c                 Ã  rw   rb   rx   rh   r   r   r   ri   †   s   €z$AsyncMockBackend.connect_unix_socketrj   rk   c                 Ã  rs   r   r   rl   r   r   r   rm   Ž   rt   zAsyncMockBackend.sleeprO   rP   rn   )r\   r   r]   r,   r-   r.   r^   r@   r_   r`   r   r   rT   )rg   r   r-   r.   r_   r`   r   r   ro   rp   r   r   r   r   rv   w   rq   rv   )Ú
__future__r   ÚsslÚtypingÚ_exceptionsr   Úbaser   r   r   r	   r
   r   r    rX   rr   rv   r   r   r   r   Ú<module>   s    	""