
    hv                       S SK Jr  S SKrS SKJr  S SKJrJr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  S S
KJrJr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(\#\'\!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      r0 " S S\\(   \-5      r1 " S S \\'   \-5      r2 " S! S"\\)   \-5      r3 " S# S$\\'   \-5      r4g)%    )annotationsN)abstractmethod)Callable
CollectionMapping)AsyncExitStack)IOBase)IPv4AddressIPv6Address)AddressFamily)TracebackType)AnyTypeVarUnion   )TypedAttributeProviderTypedAttributeSettyped_attribute   )
ByteStreamListenerUnreliableObjectStream)	TaskGroupT_Retvalc                  8    \ rS rSrSS jr        SS jrSrg)_NullAsyncContextManager   c                   #    g 7fN selfs    D/var/www/html/env/lib/python3.13/site-packages/anyio/abc/_sockets.py
__aenter__#_NullAsyncContextManager.__aenter__   s        c                   #    g 7fr   r    )r"   exc_typeexc_valexc_tbs       r#   	__aexit__"_NullAsyncContextManager.__aexit__!   s
      r&   r    N)returnNone)r(   ztype[BaseException] | Noner)   zBaseException | Noner*   zTracebackType | Noner-   zbool | None)__name__
__module____qualname____firstlineno__r$   r+   __static_attributes__r        r#   r   r      s2    , & %	
 
r4   r   c                      \ 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_portr    N)r/   r0   r1   r2   r   r8   __annotations__r:   r<   r>   r?   r@   r3   r    r4   r#   r6   r6   *   sP    +-FM-"1"3M<3%'J' / 1J1#2#4NL4&(K(r4   r6   c                  F    \ rS rSr\SS j5       r\\SS j5       5       rSrg)_SocketProvider9   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                  $ r   )_raw_socketr8   r!   s   r#   <lambda>2_SocketProvider.extra_attributes.<locals>.<lambda>?   s    D,<,<,C,Cr4   c                 D   > T " TR                   R                  5       5      $ r   rH   getsockname)convertr"   s   r#   rI   rJ   @   s    7  ,,.4r4   c                    > T R                   $ r   )rH   r!   s   r#   rI   rJ   C   s    0@0@r4   c                    > T $ r   r    )peernames   r#   rI   rJ   L   s    r4   c                 >   > T R                   R                  5       S   $ )Nr   rL   r!   s   r#   rI   rJ   Q   s    ((446q9r4   r   c                    > T $ r   r    )r@   s   r#   rI   rJ   U   s    +r4   )_core._socketsrF   r6   r8   r:   r>   rH   getpeernameOSErrorr?   r   AF_INETAF_INET6r<   r@   )r"   
attributesrN   rQ   r@   s   ` @@@r#   extra_attributes _SocketProvider.extra_attributes:   s    E ""$C)) , &&(@4

	/6t7G7G7S7S7U/VH
 9IJ556 ""}'<'<m>T>T&UU9 112 #&qk:M
?667!  	H	s    C5 5DDc                    g r   r    r!   s    r#   rH   _SocketProvider._raw_socketY   s     	r4   r    N)r-   zMapping[Any, Callable[[], Any]])r-   r=   )	r/   r0   r1   r2   propertyrZ   r   rH   r3   r    r4   r#   rC   rC   9   s0     <   r4   rC   c                      \ rS rSrSrSrg)SocketStream_   zi
Transports bytes over a socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
r    Nr/   r0   r1   r2   __doc__r3   r    r4   r#   r`   r`   _       r4   r`   c                  <    \ rS rSr\SS j5       r\SS j5       rSrg)UNIXSocketStreamg   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      r#   send_fdsUNIXSocketStream.send_fdsh        r&   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      r#   receive_fdsUNIXSocketStream.receive_fdsr   rm   r&   r    N)ri   bytesrj   zCollection[int | IOBase]r-   r.   )ro   r;   rp   r;   r-   ztuple[bytes, list[int]])r/   r0   r1   r2   r   rk   rq   r3   r    r4   r#   rf   rf   g   s(       r4   rf   c                  F    \ rS rSrSr\SS j5       r S     S	S jjrSrg)
SocketListener}   zq
Listens to incoming socket connections.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    g7f)zAccept an incoming connection.Nr    r!   s    r#   acceptSocketListener.accept   rm   r&   Nc                  #    SSK Jn  [        5        IS h  vN nUc  UR                  U" 5       5      I S h  vN n U R	                  5       I S h  vN nUR                  X5        M+   NQ N2 N! , IS h  vN  (       d  f       g = f7f)Nr   )create_task_group) r{   r   enter_async_contextrx   
start_soon)r"   handler
task_groupr{   stackstreams         r#   serveSocketListener.serve   sn     
 	)!##u!#(#<#<=N=P#QQ
#{{},%%g6 	 $Q - $##sT   B	A)B	A/A+A/A-A/)B	+A/-A//B5A86BB	r    )r-   r`   r   )r   zCallable[[SocketStream], Any]r   zTaskGroup | Noner-   r.   )	r/   r0   r1   r2   rc   r   rx   r   r3   r    r4   r#   ru   ru   }   sF     - - (,7.7 %7 
	7 7r4   ru   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)zN
Alias for :meth:`~.UnreliableObjectSendStream.send` ((data, (host, port))).

Nsend)r"   datahostports       r#   sendtoUDPSocket.sendto   s#     
 YYTl34444s   !!r    N)r   rs   r   strr   r;   r-   r.   r/   r0   r1   r2   rc   r   r3   r    r4   r#   r   r      s    5r4   r   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    Nrb   r    r4   r#   r   r      rd   r4   r   c                  "    \ rS rSrSrSS jrSrg)UNIXDatagramSocket   zy
Represents an unconnected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                B   #    U R                  X45      I Sh  vN $  N7f)zCAlias for :meth:`~.UnreliableObjectSendStream.send` ((data, path)).Nr   )r"   r   paths      r#   r   UNIXDatagramSocket.sendto   s     YY|,,,,s   r    N)r   rs   r   r   r-   r.   r   r    r4   r#   r   r      s    -r4   r   c                      \ rS rSrSrSrg)ConnectedUNIXDatagramSocket   zv
Represents a connected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
r    Nrb   r    r4   r#   r   r      rd   r4   r   )5
__future__r   socketabcr   collections.abcr   r   r   
contextlibr   ior	   	ipaddressr
   r   r   typesr   typingr   r   r   _core._typedattrr   r   r   _streamsr   r   r   _tasksr   r   IPAddressTypetupler;   IPSockAddrTyper9   rs   UDPPacketTypeUNIXDatagramPacketTyper   r   r6   rC   r`   rf   ru   r   r   r   r   r    r4   r#   <module>r      s7   "   9 9 %  .    & & 
 C B c;34sCx^S()e^+,ucz* :
 
)' )#, #L: | ,7Xl+_ 765&}5 5/6 -12O-"8"? r4   