
    1h{                       S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
Jr  S SKJr  S SKJrJrJrJrJrJrJr  S	S
KJr  S	SKJrJrJr  SSKJrJrJr  SSKJ r   \\!\
\4   r"\\!\#4   r$\\$\!4   r%\\&\$4   r'\" S5      r( " S S\5      r) " S S\5      r* " S S\\*5      r+ " S S\+5      r, " S S\\+   \*5      r- " S S\\'   \*5      r. " S S\\&   \*5      r/g)    )annotationsN)abstractmethod)AsyncExitStack)IOBase)IPv4AddressIPv6Address)AddressFamily)AnyCallable
CollectionMappingTupleTypeVarUnion   )create_task_group)TypedAttributeProviderTypedAttributeSettyped_attribute   )
ByteStreamListenerUnreliableObjectStream)	TaskGroupT_Retvalc                      \ rS rSr% \" 5       rS\S'   \" 5       rS\S'   \" 5       rS\S'   \" 5       r	S\S	'   \" 5       r
S\S
'   \" 5       rS\S'   Srg)SocketAttribute#   r	   familySockAddrTypelocal_addressint
local_portsocket.socket
raw_socketremote_addressremote_port N)__name__
__module____qualname____firstlineno__r   r   __annotations__r!   r#   r%   r&   r'   __static_attributes__r(       J/var/www/auris/envauris/lib/python3.13/site-packages/anyio/abc/_sockets.pyr   r   #   sP    +-FM-"1"3M<3%'J' / 1J1#2#4NL4&(K(r/   r   c                  F    \ rS rSr\SS j5       r\\SS j5       5       rSrg)_SocketProvider2   c                  ^ ^^^ SSK Jm  [        R                  U 4S j[        R                  UU 4S j[        R
                  U 4S j0n T" T R                  R                  5       5      mTb  U4S jU[        R                  '   T R                  R                  [        R                  [        R                  4;   a6  U 4S jU[        R                  '   Tb  TS   mU4S	 jU[        R                  '   U$ ! [         a    S m Nf = f)
Nr   )convert_ipv6_sockaddrc                 0   > T R                   R                  $ N)_raw_socketr   selfs   r0   <lambda>2_SocketProvider.extra_attributes.<locals>.<lambda>8   s    D,<,<,C,Cr/   c                 D   > T " TR                   R                  5       5      $ r7   r8   getsockname)convertr:   s   r0   r;   r<   9   s    7  ,,.4r/   c                    > T R                   $ r7   )r8   r9   s   r0   r;   r<   <   s    0@0@r/   c                    > T $ r7   r(   )peernames   r0   r;   r<   E   s    r/   c                 >   > T R                   R                  5       S   $ )Nr   r>   r9   s   r0   r;   r<   K   s    ((446q9r/   r   c                    > T $ r7   r(   )r'   s   r0   r;   r<   N   s    +r/   )_core._socketsr5   r   r   r!   r%   r8   getpeernameOSErrorr&   r	   AF_INETAF_INET6r#   r'   )r:   
attributesr@   rC   r'   s   ` @@@r0   extra_attributes _SocketProvider.extra_attributes3   s    E ""$C)) , &&(@4

	/6t7G7G7S7S7U/VH
 9IJ556 ""}'<'<m>T>T&UU : ** #&qk:M
?667!  	H	s    C5 5DDc                    g r7   r(   r9   s    r0   r8   _SocketProvider._raw_socketR   s     	r/   r(   N)returnzMapping[Any, Callable[[], Any]])rP   r$   )	r)   r*   r+   r,   propertyrL   r   r8   r.   r(   r/   r0   r2   r2   2   s0     <   r/   r2   c                      \ rS rSrSrSrg)SocketStreamX   zi
Transports bytes over a socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
r(   Nr)   r*   r+   r,   __doc__r.   r(   r/   r0   rS   rS   X       r/   rS   c                  <    \ rS rSr\SS j5       r\SS j5       rSrg)UNIXSocketStream`   c                   #    g7f)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      r0   send_fdsUNIXSocketStream.send_fdsa           c                   #    g7f)z
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      r0   receive_fdsUNIXSocketStream.receive_fdsk   r`   ra   r(   N)r\   bytesr]   zCollection[int | IOBase]rP   None)rc   r"   rd   r"   rP   ztuple[bytes, list[int]])r)   r*   r+   r,   r   r^   re   r.   r(   r/   r0   rY   rY   `   s(       r/   rY   c                  F    \ rS rSrSr\SS j5       r S     S	S jjrSrg)
SocketListenerv   zq
Listens to incoming socket connections.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    g7f)zAccept an incoming connection.Nr(   r9   s    r0   acceptSocketListener.accept}   r`   ra   Nc                  #    [        5        IS h  vN nUc!  UR                  [        5       5      I S h  vN n U R                  5       I S h  vN nUR	                  X5        M+   NT N2 N! , IS h  vN  (       d  f       g = f7fr7   )r   enter_async_contextr   rm   
start_soon)r:   handler
task_group
exit_stackstreams        r0   serveSocketListener.serve   sk     
 "##z!#-#A#ABSBU#VV
#{{},%%g6 	 $V - $##sT   BA&B A,A(A,A*A,&B(A,*A,,B2A53B?Br(   )rP   rS   r7   )rr   zCallable[[SocketStream], Any]rs   zTaskGroup | NonerP   rh   )	r)   r*   r+   r,   rV   r   rm   rv   r.   r(   r/   r0   rj   rj   v   sF     - - (,7.7 %7 
	7 7r/   rj   c                  "    \ rS rSrSrSS jrSrg)	UDPSocket   zo
Represents an unconnected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                F   #    U R                  XU445      I Sh  vN $  N7f)zKAlias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))).N)send)r:   datahostports       r0   sendtoUDPSocket.sendto   s!     YYTl34444s   !!r(   N)r}   rg   r~   strr   r"   rP   rh   )r)   r*   r+   r,   rV   r   r.   r(   r/   r0   ry   ry      s    5r/   ry   c                      \ rS rSrSrSrg)ConnectedUDPSocket   zm
Represents an connected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
r(   NrU   r(   r/   r0   r   r      rW   r/   r   )0
__future__r   socketabcr   
contextlibr   ior   	ipaddressr   r   r	   typingr
   r   r   r   r   r   r   _core._tasksr   _core._typedattrr   r   r   _streamsr   r   r   _tasksr   r   IPAddressTyper"   IPSockAddrTyper    rg   UDPPacketTyper   r   r2   rS   rY   rj   ry   r   r(   r/   r0   <module>r      s    "   %  .     - 
 C B c;34sCx^S()e^+,:)' )#, #L: | ,7Xl+_ 72	5&}5 	5/6 r/   