
    i3                       % S SK Jr  S SKrS SK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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"  \RF                  S:  a  S SKJ$r$  OS SK%J$r$  \\&\\4   r'S\(S'   \)\&\*4   r+S\(S'   \\+\&4   r,S\(S'   \)\-\+4   r.S\(S'   \)\-\&4   r/S\(S'   \" S5      r0\Rb                  4SSS.           S.S jjjr2 " S S\5      r3 " S S\5      r4 " S  S!\\45      r5 " S" S#\55      r6 " S$ S%\\5   \45      r7 " S& S'\ \.   \45      r8 " S( S)\ \-   \45      r9 " S* S+\ \/   \45      r: " S, S-\ \-   \45      r;g)/    )annotationsN)abstractmethod)Callable
CollectionMapping)AsyncExitStack)IOBase)IPv4AddressIPv6Address)AddressFamily)AnyTypeVarUnion   )get_async_backend)TypedAttributeProviderTypedAttributeSettyped_attribute   )
ByteStreamListenerUnreliableObjectStream)	TaskGroup)   
   )	TypeAliasr   IPAddressTypeIPSockAddrTypeSockAddrTypeUDPPacketTypeUNIXDatagramPacketTypeT_RetvalF)require_connectedrequire_boundc                  [        U [        5      (       a   [        R                  " U S9nOD[        U [        R                  5      (       a  U nO"[        S[        U 5      R                   S35      e U(       a   UR                  5         U(       af   UR                  [        R                  [        R                  4;   a  UR                  5       S   nOUR                  5       n U(       d  [        S5      eU[        R                  :w  a?  UR                  U:w  a/  [        SUR                    S	UR                  R                    35      eUR                  U:w  a/  [        S
UR                    S	UR                  R                    35      e UR'                  S5        U$ ! [         aV  nUR                  [        R
                  :X  a  [        S5      UeU(       a  [        S5      UeU(       a  [        S5      Uee S nAff = f! [         a  n[        S5      UeS nAff = f! [         a    S n GNHf = f! ["         a'    [        U [        5      (       a  UR%                  5         e f = f)N)filenoz.the file descriptor does not refer to a socketzthe socket must be connectedz+the socket must be bound to a local addresszexpected an int or socket, got z insteadr   z"address family mismatch: expected z, got zsocket type mismatch: expected F)
isinstanceintsocketOSErrorerrnoENOTSOCK
ValueError	TypeErrortype__qualname__getpeernamefamilyAF_INETAF_INET6getsockname	AF_UNSPECnameBaseExceptiondetachsetblocking)
sock_or_fd	sock_typeaddr_familyr#   r$   sockexc
bound_addrs           Z/var/www/html/qgis-automation/mouza_env/lib/python3.13/site-packages/anyio/abc/_sockets.py_validate_socketrB   $   s+    *c""	==
3D 
J	.	.-d:.>.K.K-LHU
 	
"J  " ";;6>>6??"CC!%!1!1!3A!6J!%!1!1!3J  !NOO&***t{{k/I4[5E5E4Ff;;##$& 
 99	!1)..1A		GWX  " 	UKo  
	yyENN* D # !?@cI !NOUXX
	,  J !?@cIJ  "!
"   j#&&KKMsz   F 1H0 9G? 	H0 AH H0 H #B%H0 
G<&AG77G<?
H	HHH0 H-)H0 ,H--H0 01I!c                      \ rS 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)SocketAttributei   a  
.. attribute:: family
    :type: socket.AddressFamily

    the address family of the underlying socket

.. attribute:: local_address
    :type: tuple[str, int] | str

    the local address the underlying socket is connected to

.. attribute:: local_port
    :type: int

    for IP based sockets, the local port the underlying socket is bound to

.. attribute:: raw_socket
    :type: socket.socket

    the underlying stdlib socket object

.. attribute:: remote_address
    :type: tuple[str, int] | str

    the remote address the underlying socket is connected to

.. attribute:: remote_port
    :type: int

    for IP based sockets, the remote port the underlying socket is connected to
r   r2   r   local_addressr(   
local_portsocket.socket
raw_socketremote_addressremote_port N)__name__
__module__r0   __firstlineno____doc__r   r2   __annotations__rF   rG   rI   rJ   rK   __static_attributes__rL       rA   rD   rD   i   sX    @ ,-FM-"1"3M<3%'J' / 1J1#2#4NL4&(K(rS   rD   c                  F    \ rS rSr\SS j5       r\\SS j5       5       rSrg)_SocketProvider   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_socketr2   selfs   rA   <lambda>2_SocketProvider.extra_attributes.<locals>.<lambda>   s    D,<,<,C,CrS   c                 D   > T " TR                   R                  5       5      $ rZ   r[   r5   )convertr]   s   rA   r^   r_      s    7  ,,.4rS   c                    > T R                   $ rZ   )r[   r\   s   rA   r^   r_      s    0@0@rS   c                    > T $ rZ   rL   )peernames   rA   r^   r_      s    rS   c                 >   > T R                   R                  5       S   $ )Nr   ra   r\   s   rA   r^   r_      s    ((446q9rS   r   c                    > T $ rZ   rL   )rK   s   rA   r^   r_      s    +rS   )_core._socketsrX   rD   r2   rF   rI   r[   r1   r*   rJ   r   r3   r4   rG   rK   )r]   
attributesrb   re   rK   s   ` @@@rA   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 rZ   rL   r\   s    rA   r[   _SocketProvider._raw_socket   s     	rS   rL   N)returnzMapping[Any, Callable[[], Any]])rn   rH   )	rM   rN   r0   rO   propertyrj   r   r[   rR   rL   rS   rA   rU   rU      s0     <   rS   rU   c                  ,    \ rS rSrSr\SS j5       rSrg)SocketStream   zi
Transports bytes over a socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    [        U[        R                  SS9n[        5       R	                  U5      I Sh  vN $  N7f)a  
Wrap an existing socket object or file descriptor as a socket stream.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a socket stream

Tr#   N)rB   r)   SOCK_STREAMr   wrap_stream_socketclsr;   r>   s      rA   from_socketSocketStream.from_socket   s6       
F,>,>RVW&(;;DAAAA   6?=?rL   N)r;   socket.socket | intrn   rq   rM   rN   r0   rO   rP   classmethodry   rR   rL   rS   rA   rq   rq      s     B BrS   rq   c                  P    \ rS rSr\SS j5       r\SS j5       r\S	S j5       rSr	g)
UNIXSocketStream   c                   #    [        U[        R                  [        R                  SS9n[	        5       R                  U5      I Sh  vN $  N7f)a"  
Wrap an existing socket object or file descriptor as a UNIX socket stream.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a UNIX socket stream

Trt   N)rB   r)   ru   AF_UNIXr   wrap_unix_stream_socketrw   s      rA   ry   UNIXSocketStream.from_socket   s@       **FNNd
 '(@@FFFF   AAAA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)
NrL   )r]   messagefdss      rA   send_fdsUNIXSocketStream.send_fds           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)
NrL   )r]   msglenmaxfdss      rA   receive_fdsUNIXSocketStream.receive_fds   r   r   rL   N)r;   r|   rn   r   )r   bytesr   zCollection[int | IOBase]rn   None)r   r(   r   r(   rn   ztuple[bytes, list[int]])
rM   rN   r0   rO   r~   ry   r   r   r   rR   rL   rS   rA   r   r      s>    G G     rS   r   c                  b    \ rS rSrSr\    SS j5       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                   #    [        U[        R                  SS9n[        5       R	                  U5      I Sh  vN $  N7f)z
Wrap an existing socket object or file descriptor as a socket listener.

The newly created listener takes ownership of the socket being passed in.

:param sock_or_fd: a socket object or file descriptor
:return: a socket listener

Tr$   N)rB   r)   ru   r   wrap_listener_socketrw   s      rA   ry   SocketListener.from_socket   s5       
F,>,>dS&(==dCCCCr{   c                   #    g7f)zAccept an incoming connection.NrL   r\   s    rA   acceptSocketListener.accept  r   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_contextr   
start_soon)r]   handler
task_groupr   stackstreams         rA   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	rL   )r;   r|   rn   r   )rn   rq   rZ   )r   zCallable[[SocketStream], Any]r   zTaskGroup | Nonern   r   )rM   rN   r0   rO   rP   r~   ry   r   r   r   rR   rL   rS   rA   r   r      sp     D'D 
D D  - - (,7.7 %7 
	7 7rS   r   c                  6    \ rS rSrSr\SS j5       rSS jrSrg)		UDPSocketi"  zo
Represents an unconnected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    [        U[        R                  SS9n[        5       R	                  U5      I Sh  vN $  N7f)a  
Wrap an existing socket object or file descriptor as a UDP socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must be bound to a local address.

:param sock_or_fd: a socket object or file descriptor
:return: a UDP socket

Tr   N)rB   r)   
SOCK_DGRAMr   wrap_udp_socketrw   s      rA   ry   UDPSocket.from_socket)  s5       
F,=,=TR&(88>>>>r{   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       rA   sendtoUDPSocket.sendto8  s#     
 YYTl34444s   !!rL   N)r;   r|   rn   r   )r   r   r   strr   r(   rn   r   	rM   rN   r0   rO   rP   r~   ry   r   rR   rL   rS   rA   r   r   "  s      ? ?5rS   r   c                  ,    \ rS rSrSr\SS j5       rSrg)ConnectedUDPSocketi@  zm
Represents an connected UDP socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    [        U[        R                  SS9n[        5       R	                  U5      I Sh  vN $  N7f)a&  
Wrap an existing socket object or file descriptor as a connected UDP socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a connected UDP socket

Trt   N)rB   r)   r   r   wrap_connected_udp_socketrw   s      rA   ry   ConnectedUDPSocket.from_socketG  s<       "

 '(BB4HHHHr{   rL   N)r;   r|   rn   r   r}   rL   rS   rA   r   r   @  s     I IrS   r   c                  >    \ rS rSrSr\    SS j5       rSS jrSrg)	UNIXDatagramSocketi[  zy
Represents an unconnected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    [        U[        R                  [        R                  5      n[	        5       R                  U5      I Sh  vN $  N7f)z
Wrap an existing socket object or file descriptor as a UNIX datagram
socket.

The newly created socket wrapper takes ownership of the socket being passed in.

:param sock_or_fd: a socket object or file descriptor
:return: a UNIX datagram socket

N)rB   r)   r   r   r   wrap_unix_datagram_socketrw   s      rA   ry   UNIXDatagramSocket.from_socketd  s9       
F,=,=v~~N&(BB4HHHHs   AAA	A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      rA   r   UNIXDatagramSocket.sendtov  s     YY|,,,,s   rL   N)r;   r|   rn   r   )r   r   r   r   rn   r   r   rL   rS   rA   r   r   [  s6     I'I 
I I"-rS   r   c                  4    \ rS rSrSr\    SS j5       rSrg)ConnectedUNIXDatagramSocketi{  zv
Represents a connected Unix datagram socket.

Supports all relevant extra attributes from :class:`~SocketAttribute`.
c                   #    [        U[        R                  [        R                  SS9n[	        5       R                  U5      I Sh  vN $  N7f)a:  
Wrap an existing socket object or file descriptor as a connected UNIX datagram
socket.

The newly created socket wrapper takes ownership of the socket being passed in.
The existing socket must already be connected.

:param sock_or_fd: a socket object or file descriptor
:return: a connected UNIX datagram socket

Trt   N)rB   r)   r   r   r   #wrap_connected_unix_datagram_socketrw   s      rA   ry   'ConnectedUNIXDatagramSocket.from_socket  s@        ))6>>T
 '(LLTRRRRr   rL   N)r;   r|   rn   r   r}   rL   rS   rA   r   r   {  s1     S'S 
%S SrS   r   )r;   r|   r<   zsocket.SocketKindr=   zsocket.AddressFamilyr#   boolr$   r   rn   rH   )<
__future__r   r+   r)   sysabcr   collections.abcr   r   r   
contextlibr   ior	   	ipaddressr
   r   r   typingr   r   r   _core._eventloopr   _core._typedattrr   r   r   _streamsr   r   r   _tasksr   version_infor   typing_extensionsr   r   rQ   tupler(   r   r   r   r    r!   r"   r6   rB   rD   rU   rq   r   r   r   r   r   r   rL   rS   rA   <module>r      s   "   
  9 9 %  .   & & 0 
 C B w + k;!>?y ?!#s(O	 + 34i 4 !67y 7$)%*$5 	 5: )/(8(8B
 $B#B B &B
 B B BJ&)' &)R#, #LB: B.$| $N)7Xl+_ )7X5&}5 5<I/6 I6-12O-@S"8"? SrS   