Ë
    RPf}  ã                  ó   — d dl mZ d dl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mZ d dlmZ d d	lmZ d d
lmZmZmZmZ ddlmZmZmZ ddlmZmZmZ ddl m!Z! ee"eef   Z#ee"e$f   Z%ee%e"f   Z&ee'e%f   Z(ee'e"f   Z) ed«      Z* G d„ d«      Z+ G d„ de«      Z, G d„ de«      Z- G d„ dee-«      Z. G d„ de.«      Z/ G d„ dee.   e-«      Z0 G d„ dee(   e-«      Z1 G d„ d ee'   e-«      Z2 G d!„ d"ee)   e-«      Z3 G d#„ d$ee'   e-«      Z4y)%é    )ÚannotationsN)Úabstractmethod)ÚCallableÚ
CollectionÚMapping)ÚAsyncExitStack)ÚIOBase)ÚIPv4AddressÚIPv6Address)ÚAddressFamily)ÚTracebackType)ÚAnyÚTupleÚTypeVarÚUnioné   )ÚTypedAttributeProviderÚTypedAttributeSetÚtyped_attributeé   )Ú
ByteStreamÚListenerÚUnreliableObjectStream)Ú	TaskGroupÚT_Retvalc                  ó,   — e Zd Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)Ú_NullAsyncContextManagerc              ƒ  ó   K  — y ­w©N© ©Úselfs    úL/var/www/fastapitest/venv/lib/python3.12/site-packages/anyio/abc/_sockets.pyÚ
__aenter__z#_NullAsyncContextManager.__aenter__   s	   è ø€ Øùó   ‚c              ƒ  ó   K  — y ­wr   r    )r"   Úexc_typeÚexc_valÚexc_tbs       r#   Ú	__aexit__z"_NullAsyncContextManager.__aexit__!   s   è ø€ ð ùr%   N)ÚreturnÚNone)r'   ztype[BaseException] | Noner(   zBaseException | Noner)   zTracebackType | Noner+   zbool | None)Ú__name__Ú
__module__Ú__qualname__r$   r*   r    ó    r#   r   r      s2   „ óðà,ðð &ðð %ð	ð
 
ôr0   r   c                  óž   — e Zd ZU  e«       Zded<    e«       Zded<    e«       Zded<    e«       Zded<    e«       Z	ded	<    e«       Z
ded
<   y)ÚSocketAttributer   ÚfamilyÚSockAddrTypeÚlocal_addressÚintÚ
local_portúsocket.socketÚ
raw_socketÚremote_addressÚremote_portN)r-   r.   r/   r   r3   Ú__annotations__r5   r7   r9   r:   r;   r    r0   r#   r2   r2   *   sP   … á+Ó-€FˆMÓ-á"1Ó"3€M�<Ó3á%Ó'€J�Ó'á /Ó 1€J�Ó1á#2Ó#4€N�LÓ4á&Ó(€K�Ô(r0   r2   c                  ó:   — e Zd Zedd„«       Zeedd„«       «       Zy)Ú_SocketProviderc                óø  ‡ ‡‡‡— ddl mŠ t        j                  ˆ fd„t        j                  ˆˆ fd„t        j
                  ˆ fd„i}	  ‰‰ j                  j                  «       «      Š‰�ˆfd„|t        j                  <   ‰ j                  j                  t        j                  t        j                  fv r3ˆ fd„|t        j                  <   ‰�‰d   Šˆfd	„|t        j                  <   |S # t        $ r d ŠY Œ�w xY w)
Nr   )Úconvert_ipv6_sockaddrc                 ó0   •— ‰ j                   j                  S r   )Ú_raw_socketr3   r!   s   €r#   ú<lambda>z2_SocketProvider.extra_attributes.<locals>.<lambda>?   s   ø€ ¨D×,<Ñ,<×,CÑ,C€ r0   c                 óD   •—  ‰ ‰j                   j                  «       «      S r   ©rB   Úgetsockname)Úconvertr"   s   €€r#   rC   z2_SocketProvider.extra_attributes.<locals>.<lambda>@   s   ø€ ±7Ø× Ñ ×,Ñ,Ó.ó4€ r0   c                 ó   •— ‰ j                   S r   )rB   r!   s   €r#   rC   z2_SocketProvider.extra_attributes.<locals>.<lambda>C   s   ø€ °×0@Ñ0@€ r0   c                 ó   •— ‰ S r   r    )Úpeernames   €r#   rC   z2_SocketProvider.extra_attributes.<locals>.<lambda>L   s   ø€ À€ r0   c                 ó>   •— ‰ j                   j                  «       d   S )Nr   rE   r!   s   €r#   rC   z2_SocketProvider.extra_attributes.<locals>.<lambda>Q   s   ø€ ˜×(Ñ(×4Ñ4Ó6°qÑ9€ r0   r   c                 ó   •— ‰ S r   r    )r;   s   €r#   rC   z2_SocketProvider.extra_attributes.<locals>.<lambda>U   s   ø€ À+€ r0   )Ú_core._socketsr@   r2   r3   r5   r9   rB   ÚgetpeernameÚOSErrorr:   r   ÚAF_INETÚAF_INET6r7   r;   )r"   Ú
attributesrG   rJ   r;   s   ` @@@r#   Úextra_attributesz _SocketProvider.extra_attributes:   sä   û€ åEô ×"Ñ"Ó$CÜ×)Ñ)ô ,ô ×&Ñ&Ó(@ð4
ˆ
ð	Ù/6°t×7GÑ7G×7SÑ7SÓ7UÓ/VˆHð
 ÐÛ9IˆJ”×5Ñ5Ñ6ð ×Ñ×"Ñ"¤}×'<Ñ'<¼m×>TÑ>TÐ&UÑUã9ð ”×1Ñ1Ñ2ð Ð#Ø& q™k�Û:M�
œ?×6Ñ6Ñ7àÐøô! ò 	ØŠHð	ús   Á C+ Ã+C9Ã8C9c                 ó   — y r   r    r!   s    r#   rB   z_SocketProvider._raw_socketY   s   € ð 	r0   N)r+   zMapping[Any, Callable[[], Any]])r+   r8   )r-   r.   r/   ÚpropertyrS   r   rB   r    r0   r#   r>   r>   9   s0   „ Øòó ðð< Øòó ó ñr0   r>   c                  ó   — e Zd ZdZy)ÚSocketStreamzu
    Transports bytes over a socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    N©r-   r.   r/   Ú__doc__r    r0   r#   rW   rW   _   ó   „ òr0   rW   c                  ó0   — e Zd Zedd„«       Zedd„«       Zy)ÚUNIXSocketStreamc              ƒ  ó   K  — y­w)zð
        Send file descriptors along with a message to the peer.

        :param message: a non-empty bytestring
        :param fds: a collection of files (either numeric file descriptors or open file
            or socket objects)
        Nr    )r"   ÚmessageÚfdss      r#   Úsend_fdszUNIXSocketStream.send_fdsh   ó   è ø� ùr%   c              ƒ  ó   K  — y­w)a  
        Receive file descriptors along with a message from the peer.

        :param msglen: length of the message to expect from the peer
        :param maxfds: maximum number of file descriptors to expect from the peer
        :return: a tuple of (message, file descriptors)
        Nr    )r"   ÚmsglenÚmaxfdss      r#   Úreceive_fdszUNIXSocketStream.receive_fdsr   ra   r%   N)r^   Úbytesr_   zCollection[int | IOBase]r+   r,   )rc   r6   rd   r6   r+   ztuple[bytes, list[int]])r-   r.   r/   r   r`   re   r    r0   r#   r\   r\   g   s(   „ Øòó ðð òó ñr0   r\   c                  ó8   — e Zd ZdZedd„«       Z	 d	 	 	 	 	 dd„Zy)ÚSocketListenerz}
    Listens to incoming socket connections.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    c              ƒ  ó   K  — y­w)zAccept an incoming connection.Nr    r!   s    r#   ÚacceptzSocketListener.accept„   ra   r%   Nc              ƒ  ó
  K  — ddl m} t        «       4 ƒd {  –—† }|€|j                   |«       «      ƒ d {  –—† }	 | j	                  «       ƒ d {  –—† }|j                  ||«       Œ+7 ŒP7 Œ27 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   )Úcreate_task_group)Ú rl   r   Úenter_async_contextrj   Ú
start_soon)r"   ÚhandlerÚ
task_grouprl   ÚstackÚstreams         r#   ÚservezSocketListener.serveˆ   s   è ø€ õ
 	)ä!Ó#÷ 	7ð 	7 uØÐ!Ø#(×#<Ñ#<Ñ=NÓ=PÓ#Q×Q�
àØ#Ÿ{™{›}×,�Ø×%Ñ% g¨vÔ6ð ð		7øàQøð -ø÷	7÷ 	7ñ 	7üsT   ‚B—A(˜B›A.·A*¸A.ÁA,ÁA.Á(BÁ*A.Á,A.Á.B Á4A7Á5B Á<B)r+   rW   r   )rp   zCallable[[SocketStream], Any]rq   zTaskGroup | Noner+   r,   )r-   r.   r/   rY   r   rj   rt   r    r0   r#   rh   rh   }   sA   „ ñð ò-ó ð-ð (,ð7à.ð7ð %ð7ð 
ô	7r0   rh   c                  ó   — e Zd ZdZdd„Zy)Ú	UDPSocketz{
    Represents an unconnected UDP socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    c              ƒ  óH   K  — | j                  |||ff«      ƒ d{  –—† S 7 Œ­w)z^
        Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))).

        N©Úsend)r"   ÚdataÚhostÚports       r#   ÚsendtozUDPSocket.sendtoŸ   s&   è ø€ ð
 —Y‘Y  t¨T lÐ3Ó4×4Ð4Ð4ús   ‚"› œ"N)rz   rf   r{   Ústrr|   r6   r+   r,   ©r-   r.   r/   rY   r}   r    r0   r#   rv   rv   ˜   s   „ ñô5r0   rv   c                  ó   — e Zd ZdZy)ÚConnectedUDPSocketzy
    Represents an connected UDP socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    NrX   r    r0   r#   r�   r�   §   rZ   r0   r�   c                  ó   — e Zd ZdZdd„Zy)ÚUNIXDatagramSocketz…
    Represents an unconnected Unix datagram socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    c              ƒ  óD   K  — | j                  ||f«      ƒ d{  –—† S 7 Œ­w)zCAlias for :meth:`~.UnreliableObjectSendStream.send` ((data, path)).Nrx   )r"   rz   Úpaths      r#   r}   zUNIXDatagramSocket.sendto¸   s   è ø€ à—Y‘Y  d˜|Ó,×,Ð,Ð,ús   ‚ ™š N)rz   rf   r…   r~   r+   r,   r   r    r0   r#   rƒ   rƒ   ¯   s   „ ñô-r0   rƒ   c                  ó   — e Zd ZdZy)ÚConnectedUNIXDatagramSocketz‚
    Represents a connected Unix datagram socket.

    Supports all relevant extra attributes from :class:`~SocketAttribute`.
    NrX   r    r0   r#   r‡   r‡   ½   rZ   r0   r‡   )5Ú
__future__r   ÚsocketÚabcr   Úcollections.abcr   r   r   Ú
contextlibr   Úior	   Ú	ipaddressr
   r   r   Útypesr   Útypingr   r   r   r   Ú_core._typedattrr   r   r   Ú_streamsr   r   r   Ú_tasksr   r~   ÚIPAddressTyper6   ÚIPSockAddrTyper4   rf   ÚUDPPacketTypeÚUNIXDatagramPacketTyper   r   r2   r>   rW   r\   rh   rv   r�   rƒ   r‡   r    r0   r#   ú<module>r˜      s7  ðÝ "ã Ý ß 9Ñ 9Ý %Ý ß .Ý  Ý ß -Ó -÷ñ ÷
 CÑ BÝ à�c˜;¨Ð3Ñ4€Ø�s˜C�x‘€Ø�^ SÐ(Ñ)€Ø�e˜^Ð+Ñ,€Ø˜u c˜zÑ*Ð Ù�:Ó€÷
ñ 
ô)Ð'ô )ô#Ð,ô #ôL�:˜ô ô�|ô ô,7�X˜lÑ+¨_ô 7ô65Ð& }Ñ5°ô 5ôÐ/°Ñ6¸ô ô-ØÐ1Ñ2°Oô-ôÐ"8¸Ñ"?Àõ r0   