
    +g                       % S SK Jr  S SK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
  S SKJrJrJrJrJrJr  S SKrS SKrS SKJr  SSKJr  \(       a.  S S	KJrJrJr  S S
KJr  S SK J!r!J"r"J#r#J$r$J%r%  SSK&J'r'J(r(  \#" S5      r)\" S5      r*\r+S\,S'    " S S5      r-\R\                  " S5      r/S\,S'   \R\                  " S5      r0S\,S'       S5S jr1    S6S jr2\Rf                  \Rh                  -  r5    S7             S8S jjr6      S9S jr7S:S jr8S;S jr9\" \Rt                  S S S!9\Rv                  \Rx                  S 4         S<S" jj5       r:\Rz                  S#:X  d  \(       d(  \>" \S$5      (       a  \" \R~                  S S S!9S=S% j5       r?\Rz                  S#:X  a  \@rAS\,S&'   \@rBS\,S''   \Rv                  rCO*SrCS(\,S)'   \\@\	S4   rAS\,S&'   \\R                  \@4   rBS\,S''   \" \R                  S S S!9\C\
Rx                  S 4       S>S* jj5       rD\" \R                  S S S!9\Rv                  \Rx                  S S4         S?S+ jj5       r          S@S, jrE\F" \S-S 5      \F" \S.S 5      -  ) rG SA       SBS/ jjrH              SCS0 jrI " S1 S5      rJ\JR                  R                  5        H  u  rMrN\MR                  S25      (       d  \NR                  (       a  M/  \R                  \R                  4 H)  rQ\F" \Q\MS5      rR\R(       d  M  \RR                  (       d  M)    O   Mv  \RR                  \NlP        M      " S3 S4\J5      rSg)D    )annotationsN)index)AddressFamily
SocketKind)TYPE_CHECKINGAnySupportsIndexTypeVarUnionoverload)wraps   )_core)	AwaitableCallableIterable)TracebackType)BufferConcatenate	ParamSpecSelf	TypeAlias)HostnameResolverSocketFactoryPTr   AddressFormatc                  X    \ rS rSr S   S	S jjrS
S jrSS jr        SS jrSrg)	_try_sync<   Nc                    Xl         g N_blocking_exc_override)selfblocking_exc_overrides     T/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/trio/_socket.py__init___try_sync.__init__=   s
     '<#    c                ^    U R                   c  [        U[        5      $ U R                  U5      $ r"   )r$   
isinstanceBlockingIOError)r%   excs     r'   _is_blocking_io_error_try_sync._is_blocking_io_errorC   s,    &&.c?33..s33r*   c                \   #    [         R                  R                  5       I S h  vN   g  N7fr"   )triolowlevelcheckpoint_if_cancelledr%   s    r'   
__aenter___try_sync.__aenter__I   s     mm33555s   ",*,c                   #    Ub  U R                  U5      (       a  g[        R                  R                  5       I S h  vN   g N7f)NTF)r/   r2   r3   cancel_shielded_checkpointr%   exc_type	exc_value	tracebacks       r'   	__aexit___try_sync.__aexit__L   s@       T%?%?	%J%J --::<<< =s   <AAAr#   r"   )r&   z&Callable[[BaseException], bool] | NonereturnNoner.   BaseExceptionr@   boolr@   rA   )r;   type[BaseException] | Noner<   BaseException | Noner=   TracebackType | Noner@   rD   )	__name__
__module____qualname____firstlineno__r(   r/   r6   r>   __static_attributes__ r*   r'   r   r   <   sU     IM<E< 
<46, ( (	
 
r*   r   hostname_resolverz%_core.RunVar[HostnameResolver | None]	_resolversocket_factoryz"_core.RunVar[SocketFactory | None]_socket_factoryc                Z    [         R                  S5      n[         R                  U 5        U$ )a  Set a custom hostname resolver.

By default, Trio's :func:`getaddrinfo` and :func:`getnameinfo` functions
use the standard system resolver functions. This function allows you to
customize that behavior. The main intended use case is for testing, but it
might also be useful for using third-party resolvers like `c-ares
<https://c-ares.haxx.se/>`__ (though be warned that these rarely make
perfect drop-in replacements for the system resolver). See
:class:`trio.abc.HostnameResolver` for more details.

Setting a custom hostname resolver affects all future calls to
:func:`getaddrinfo` and :func:`getnameinfo` within the enclosing call to
:func:`trio.run`. All other hostname resolution in Trio is implemented in
terms of these functions.

Generally you should call this function just once, right at the beginning
of your program.

Args:
  hostname_resolver (trio.abc.HostnameResolver or None): The new custom
      hostname resolver, or None to restore the default behavior.

Returns:
  The previous hostname resolver (which may be None).

N)rP   getset)rO   olds     r'   set_custom_hostname_resolverrW   d   s$    : --
CMM#$Jr*   c                Z    [         R                  S5      n[         R                  U 5        U$ )a  Set a custom socket object factory.

This function allows you to replace Trio's normal socket class with a
custom class. This is very useful for testing, and probably a bad idea in
any other circumstance. See :class:`trio.abc.HostnameResolver` for more
details.

Setting a custom socket factory affects all future calls to :func:`socket`
within the enclosing call to :func:`trio.run`.

Generally you should call this function just once, right at the beginning
of your program.

Args:
  socket_factory (trio.abc.SocketFactory or None): The new custom
      socket factory, or None to restore the default behavior.

Returns:
  The previous socket factory (which may be None).

N)rR   rT   rU   )rQ   rV   s     r'   set_custom_socket_factoryrY      s'    0 

d
#C'Jr*   c                V  #    SS jn[        U5       ISh  vN   [        R                  " U UUUUU[        -  5      sSSS5      ISh  vN   $  N7 N! , ISh  vN  (       d  f       O= f[	        U [
        5      (       a8   U R                  S5      n O%! [         a    [        R                  " U SS9n  Of = f[        R                  S5      nUb  UR                  XX#XE5      I Sh  vN  $ [        R                  R                  [        R                  U UUUUUSS9I Sh  vN  $ 7f)a,  Look up a numeric address given a name.

Arguments and return values are identical to :func:`socket.getaddrinfo`,
except that this version is async.

Also, :func:`trio.socket.getaddrinfo` correctly uses IDNA 2008 to process
non-ASCII domain names. (:func:`socket.getaddrinfo` uses IDNA 2003, which
can give the wrong result in some cases and cause you to connect to a
different host than the one you intended; see `bpo-17305
<https://bugs.python.org/issue17305>`__.)

This function's behavior can be customized using
:func:`set_custom_hostname_resolver`.

c                ~    [        U [        R                  5      =(       a    U R                  [        R                  :H  $ r"   )r,   _stdlib_socketgaierrorerrno
EAI_NONAME)r.   s    r'   numeric_only_failure)getaddrinfo.<locals>.numeric_only_failure   s.    sN334 7		^666	
r*   NasciiT)uts46abandon_on_cancelrB   )r   r\   getaddrinfo_NUMERIC_ONLYr,   strencodeUnicodeEncodeError_idnarP   rT   r2   	to_threadrun_sync)hostportfamilytypeprotoflagsr`   hrs           r'   rf   rf      s    H
 -..))M!
 /....." $	2;;w'D! 	2 <<D1D		2
 
t	B	~^^DeKKKK^^,,&&" - 	
 	
 	
 		
s   D)AD)"AD)	A
D)D)A*AA*&D)B D)B74D)6B771D)(C+):D)#D&$D)c                   #    [         R                  S5      nUb  UR                  X5      I Sh  vN $ [        R                  R                  [        R                  U USS9I Sh  vN $  N: N7f)zLook up a name given a numeric address.

Arguments and return values are identical to :func:`socket.getnameinfo`,
except that this version is async.

This function's behavior can be customized using
:func:`set_custom_hostname_resolver`.

NTrd   )rP   rT   getnameinfor2   rl   rm   r\   )sockaddrrs   rt   s      r'   rv   rv      si      
t	B	~^^H444^^,,&&"	 - 
 
 	
 5
s!   -A.A*5A.%A,&A.,A.c                x   #    [         R                  R                  [        R                  U SS9I Sh  vN $  N7f)zcLook up a protocol number by name. (Rarely used.)

Like :func:`socket.getprotobyname`, but async.

Trd   N)r2   rl   rm   r\   getprotobyname)names    r'   ry   ry     s<      ((%% )    s   1:8:
SocketTypec                    [        U 5      $ )zUConvert a standard library :class:`socket.socket` object into a Trio
socket object.

)_SocketType)socks    r'   from_stdlib_socketr   ,  s    
 tr*   rN   assignedupdatedc                t    [        XU[        U 5      5      u  pn[        [        R                  " XXC5      5      $ )z=Like :func:`socket.fromfd`, but returns a Trio socket object.)_sniff_sockopts_for_filenor   r   r\   fromfd)fdrp   rq   rr   type_s        r'   r   r   4  s4     6fE5QS9UF5n33BMNNr*   win32	fromsharec                @    [        [        R                  " U 5      5      $ )z@Like :func:`socket.fromshare`, but returns a Trio socket object.)r   r\   r   )infos    r'   r   r   D  s     ".":":4"@AAr*   FamilyTTypeTrA   FamilyDefaultc                `    [         R                  " XU5      u  p4[        U5      [        U5      4$ )zLLike :func:`socket.socketpair`, but returns a pair of Trio socket
objects.

)r\   
socketpairr   )rp   rq   rr   leftrights        r'   r   r   T  s.     !++F%@KDt$&8&?@@r*   c                    Uc+  [         R                  S5      nUb  UR                  XU5      $ O[        U UUU5      u  pn[        R                  " XX#5      n[        U5      $ )zCreate a new Trio socket, like :class:`socket.socket`.

This function's behavior can be customized using
:func:`set_custom_socket_factory`.

N)rR   rT   socketr   r\   r   )rp   rq   rr   filenosfstdlib_sockets         r'   r   r   b  sp     ~  &>99V511  9	
e #))&FMm,,r*   c                .   [         R                  S:w  a  XU4$ SSKJnJnJnJn  [        R                  " XX#S9n UR                  Xt5      n UR                  Xu5      nUR                  Xv5      nUR                  5         XU4$ ! UR                  5         f = f)zCCorrect SOCKOPTS for given fileno, falling back to provided values.linuxr   )	SO_DOMAINSO_PROTOCOLSO_TYPE
SOL_SOCKET)r   )
sysplatformr   r   r   r   r   r\   
getsockoptdetach)	rp   r   rr   r   r   r   r   r   sockobjs	            r'   r   r   ~  s     ||we##  ##F5HG##J:"":;"":7 	% 	s   3B BSOCK_NONBLOCKSOCK_CLOEXECc                   ^ ^ [        T SSS9S	U U4S jj5       nST R                   S3Ul        U(       a#  U=R                  ST R                   S3-  sl        U$ )
N)rI   rN   r   c                N   >#    U R                   " TT/UQ70 UD6I S h  vN $  N7fr"   )_nonblocking_helper)r%   argskwargsfnwait_fns      r'   wrapper1_make_simple_sock_method_wrapper.<locals>.wrapper  s)     --grKDKFKKKKs   %#%zLike :meth:`socket.socket.z`, but async.

            z7Only available on platforms where :meth:`socket.socket.z` is available.)r%   r}   r   P.argsr   P.kwargsr@   r   )_wrapsrI   __doc__)r   r   maybe_availr   s   ``  r'    _make_simple_sock_method_wrapperr     sn    
 B3L 4L 5R[[M B GO Ebkk] S 	
 Nr*   c                 #    U[         R                  :X  a0  [        U[        5      (       a  [	        U5      S:X  d  [        S5      eOU[         R                  :X  a9  [        U[        5      (       a  S[	        U5      s=::  a  S::  d  O  [        S5      eOm[        [         S5      (       aV  U[         R                  :X  aB  [        U[        [        [        R                  45      (       d   e[        R                  " U5      $ U$ Utpgn[        U[        5      (       a  Ub   [         R                  " X5        U$ US:X  a  S nUS:X  a  SnS	n	U(       a  U	[         R$                  -  n	U[         R                  :X  a  U(       d  U	[         R&                  -  n	[)        XgXX)5      I S h  vN n
[	        U
5      S
:  d   eU
tGt pnU[         R                  :X  aU  [+        U5      n[	        U5      S:X  d   e[	        U5      S:  a  US   US'   [	        U5      S:  a  US   US'   [        U5      $ U$ ! [         ["        4 a     GNf = f N7f)N   z&address should be a (host, port) tuple   z=address should be a (host, port, [flowinfo, [scopeid]]) tupleAF_UNIX z<broadcast>z255.255.255.255r   r      )r\   AF_INETr,   tuplelen
ValueErrorAF_INET6hasattrr   rh   bytesosPathLikefspathint	inet_ptonOSError	TypeError
AI_PASSIVEAI_V4MAPPEDrf   list)r   rp   rr   ipv6_v6onlyaddresslocalrn   ro   _rs   gai_resnormedlist_normeds                r'   _resolve_address_nocpr     s     ''''5))W1BEFF 2C	>**	*'5))c'l1Ga1GO  2H 
	+	+.:P:P0P'C#<====yy!! ND $!1	$$V2 Nrz} E*** (((+++F5HHG w<1La1 (((6l6{aw<1$QZKNw<1$QZKN[!!MK # 		* Is8   DI H' 4A,I  H>!BI 'H;7I :H;;I c                    ^  \ rS rSrS3U 4S jjrS4S jrS4S jrS5S jrS5S jr\	S6S j5       r
\	S7S j5       r
 S8       S9S	 jjr
\	S:S
 j5       r\	          S;S j5       r S8         S<S jjr\" \R                  S5      4S=S jjrS>S jrS?S jr\R&                  S:X  d  \(       d  \" \R,                  S5      (       a  S@S jrSAS jr        SBS jr\SCS j5       r\SDS j5       r\S4S j5       r\S>S j5       rSES jrSFS jr S3S jr!SGS jr"SHS jr#S>S jr$S3S  jr%SIS! jr&SGS" jr'SJSKS# jjr(  SL       SMS$ jjr) SJ     SNS% jjr*  SL       SOS& jjr+\R&                  S:w  d  \(       d(  \" \R,                  S'5      (       a    SL       SPS( jjr,\R&                  S:w  d  \(       d(  \" \R,                  S)5      (       a    SL       SQS* jjr-SJSRS+ jjr.\	      SSS, j5       r/\	        STS- j5       r/SUS. jr/\R&                  S:w  d  \(       dV  \" \R,                  S/5      (       a8  \0" \R,                  Rb                  S0S0S19   SV         SWS2 jj5       r1S0r2U =r3$ S0r2U =r3$ S0r2U =r3$ )Xr{   i  c                \   > [         TU ]  5         [        U 5      [        L a  [	        S5      eg )Nz`SocketType is an abstract class; use trio.socket.socket if you want to construct a socket object)superr(   rq   r{   r   )r%   	__class__s    r'   r(   SocketType.__init__  s1    :#4  $r*   c                    [         er"   NotImplementedErrorr5   s    r'   r   SocketType.detach)      !!r*   c                    [         er"   r   r5   s    r'   r   SocketType.fileno,  r   r*   c                    [         er"   r   r5   s    r'   getpeernameSocketType.getpeername/  r   r*   c                    [         er"   r   r5   s    r'   getsocknameSocketType.getsockname2  r   r*   c                    g r"   rN   r%   leveloptnames      r'   r   SocketType.getsockopt5      ;>r*   c                    g r"   rN   r%   r   r   buflens       r'   r   r   8      JMr*   c                    [         er"   r   r   s       r'   r   r   ;  
     "!r*   c                    g r"   rN   r%   r   r   values       r'   
setsockoptSocketType.setsockoptC      QTr*   c                    g r"   rN   r%   r   r   r   optlens        r'   r   r   F       r*   c                    [         er"   r   r   s        r'   r   r   O  s
     "!r*      c                    [         er"   r   r%   backlogs     r'   listenSocketType.listenX  r   r*   c                    [         er"   r   r5   s    r'   get_inheritableSocketType.get_inheritable[  r   r*   c                    [         er"   r   r%   inheritables     r'   set_inheritableSocketType.set_inheritable^  r   r*   r   sharec                    [         er"   r   r%   
process_ids     r'   r
  SocketType.sharee  s    %%r*   c                    [         er"   r   r5   s    r'   	__enter__SocketType.__enter__h  r   r*   c                    [         er"   r   r:   s       r'   __exit__SocketType.__exit__k  r   r*   c                    [         er"   r   r5   s    r'   rp   SocketType.familys      !!r*   c                    [         er"   r   r5   s    r'   rq   SocketType.typew  r  r*   c                    [         er"   r   r5   s    r'   rr   SocketType.proto{  r  r*   c                    [         e)zBReturn True if the socket has been shut down with the SHUT_WR flagr   r5   s    r'   did_shutdown_SHUT_WRSocketType.did_shutdown_SHUT_WR  s
     "!r*   c                    [         er"   r   r5   s    r'   __repr__SocketType.__repr__  r   r*   c                    [         er"   r   r5   s    r'   dupSocketType.dup  r   r*   c                    [         er"   r   r5   s    r'   closeSocketType.close  r   r*   c                   #    [         e7fr"   r   r%   r   s     r'   bindSocketType.bind       !!   	c                    [         er"   r   r%   flags     r'   shutdownSocketType.shutdown  r   r*   c                    [         e)zpReturn True if the socket is readable. This is checked with `select.select` on Windows, otherwise `select.poll`.r   r5   s    r'   is_readableSocketType.is_readable  r  r*   c                   #    [         e7f)zIConvenience method that calls trio.lowlevel.wait_writable for the object.r   r5   s    r'   wait_writableSocketType.wait_writable  s     !!r-  c                   #    [         e7fr"   r   r5   s    r'   acceptSocketType.accept  r,  r-  c                   #    [         e7fr"   r   r)  s     r'   connectSocketType.connect  r,  r-  c                   [         er"   r   r%   r   rs   s      r'   recvSocketType.recv  r   r*   c                    [         er"   r   r%   buffernbytesrs   s       r'   	recv_intoSocketType.recv_into  r   r*   c                   [         er"   r   r%   bufsizers   s      r'   recvfromSocketType.recvfrom  r   r*   c                    [         er"   r   rD  s       r'   recvfrom_intoSocketType.recvfrom_into  r   r*   recvmsgc                   [         er"   r   r%   rK  
ancbufsizers   s       r'   rQ  SocketType.recvmsg  
     &%r*   recvmsg_intoc                   [         er"   r   r%   buffersrT  rs   s       r'   rW  SocketType.recvmsg_into  rV  r*   c                   [         er"   r   r%   r   rs   s      r'   sendSocketType.send  r   r*   c                  #    g 7fr"   rN   r%   datar   s      r'   sendtoSocketType.sendto  
         c                  #    g 7fr"   rN   r%   rb  rs   r   s       r'   rc  rd    
      rf  c                   #    [         e7fr"   r   )r%   r   s     r'   rc  rd    r,  r-  sendmsgrN   r   c                  #    [         e7fr"   r   r%   rZ  ancdatars   r   s        r'   rk  SocketType.sendmsg  s      &%r-  rE   r@   r   r@   r   r   r   r   r   r@   r   r   r   r   r   r   r   r@   r   r"   r   r   r   r   r   
int | Noner@   zint | bytesr   r   r   r   r   zint | Bufferr@   rA   
r   r   r   r   r   rA   r   r   r@   rA   
r   r   r   r   r   zint | Buffer | Noner   ru  r@   rA   r   r   r@   rA   r@   rD   r  rD   r@   rA   r  r   r@   r   r@   r   r;   rF   r<   rG   r=   rH   r@   rA   r@   r   r@   r   r@   rh   r@   r{   r   r   r@   rA   r0  r   r@   rA   r@   z tuple[SocketType, AddressFormat]r   r   r   rs   r   r@   zAwaitable[bytes]r   r   rE  r   rF  r   rs   r   r@   Awaitable[int]rK  r   rs   r   r@   z&Awaitable[tuple[bytes, AddressFormat]]rE  r   rF  r   rs   r   r@   z$Awaitable[tuple[int, AddressFormat]]rK  r   rT  r   rs   r   r@   zBAwaitable[tuple[bytes, list[tuple[int, int, bytes]], int, object]]rZ  Iterable[Buffer]rT  r   rs   r   r@   z@Awaitable[tuple[int, list[tuple[int, int, bytes]], int, object]]r   r   rs   r   r@   r  rb  r   r   !tuple[object, ...] | str | Bufferr@   r   rb  r   rs   r   r   r  r@   r   r   objectr@   r   rN   r   N
rZ  r  rn  z!Iterable[tuple[int, int, Buffer]]rs   r   r   zAddressFormat | Noner@   r   )4rI   rJ   rK   rL   r(   r   r   r   r   r   r   r   minr\   	SOMAXCONNr   r  r  r   r   r   r   r   r
  r  r  propertyrp   rq   rr   r  r   r#  r&  r*  r1  r4  r7  r:  r=  rA  rG  rL  rO  rQ  rW  r^  rc  r   rk  rM   __classcell__)r   s   @r'   r{   r{     s/   """" > >M M "	"" " 	"
 
" T T  	
  
  """ " #	"
 " 
" %((@(@#$F """ ||wgn&;&;WEE	&""," (" (	"
 
" " " " " " " " """"""""""" 	"" " 	"
 
" "" "
 
0" 	"" " 	"
 
." ||wgn&;&;YGG  		&	& 	& 		& P	& ||wgn&;&;^LL  		&%	& 	& 		& N	&"  3
 
    3	 
 " ||wgn&;&;YGG 
%%--B	G :<,0	&%	& 7	& 		&
 *	& 	& 
H	&	 HMr*   __c                  4   \ rS rSrS9S jrS:S jrS:S jrS;S jrS;S jr\	S<S j5       r
\	S=S j5       r
 S>       S?S
 jjr
\	S@S j5       r\	          SAS j5       r S>         SBS jjr\" \R                  S5      4SCS jjrSDS jrSES jr\R&                  S:X  d  \(       d  \" \R,                  S5      (       a  SFS jrSGS jr        SHS jr\SIS j5       r\SJS j5       r\S:S j5       r\SDS j5       rSKS jrSLS jr SMS jr!SNS jr"SOS jr#SDS  jr$SMS! jr%      SPS" jr&          SQS# jr'\(" \R,                  RR                  \*RV                  5      r,SRS$ jr)SNS% jr-\(       a  SSSTS& jjr.\(" \R,                  R\                  \*RV                  5      r.\(       a    SU       SVS' jjr/\(" \R,                  R^                  \*RV                  5      r/\(       a   SS     SWS( jjr0\(" \R,                  R`                  \*RV                  5      r0\(       a    SU       SXS) jjr1\(" \R,                  Rb                  \*RV                  5      r1\R&                  S:w  d  \(       dU  \" \R,                  S*5      (       a=  \(       a    SU       SYS+ jjr2\(" \R,                  Rd                  \*RV                  S,S-9r2\R&                  S:w  d  \(       dU  \" \R,                  S.5      (       a=  \(       a    SU       SZS/ jjr3\(" \R,                  Rf                  \*RV                  S,S-9r3\(       a  SSS[S0 jjr4\(" \R,                  Rh                  \*RJ                  5      r4\	      S\S1 j5       r5\	        S]S2 j5       r5\6" \R,                  Rj                  S3S3S49S^S5 j5       r5\R&                  S:w  d  \(       dP  \" \R,                  S65      (       a5  \6" \R,                  Rn                  S3S3S49   S_         S`S7 jj5       r7S8r8g	S8r8g	S8r8g	)ar}   i  c                    [        U5      [        R                  La"  [        S[        U5      R                   S35      eXl        U R
                  R                  S5        SU l        g )Nz.expected object of type 'socket.socket', not ''F)rq   r\   r   r   rI   _socksetblocking_did_shutdown_SHUT_WR)r%   r~   s     r'   r(   _SocketType.__init__  s\    :^222 @dATAT@UUVW  


u%%*"r*   c                6    U R                   R                  5       $ r"   )r  r   r5   s    r'   r   _SocketType.detach      zz  ""r*   c                6    U R                   R                  5       $ r"   )r  r   r5   s    r'   r   _SocketType.fileno"  r  r*   c                6    U R                   R                  5       $ r"   )r  r   r5   s    r'   r   _SocketType.getpeername%      zz%%''r*   c                6    U R                   R                  5       $ r"   )r  r   r5   s    r'   r   _SocketType.getsockname(  r  r*   c                    g r"   rN   r   s      r'   r   _SocketType.getsockopt+  r   r*   c                    g r"   rN   r   s       r'   r   r  .  r   r*   Nc                v    Uc  U R                   R                  X5      $ U R                   R                  XU5      $ r"   )r  r   r   s       r'   r   r  1  s5     >::((88zz$$UV<<r*   c                    g r"   rN   r   s       r'   r   _SocketType.setsockopt;  r   r*   c                    g r"   rN   r   s        r'   r   r  >  r   r*   c                    Uc*  Uc  [        S5      eU R                  R                  XU5      $ Ub  [        SU< S35      eU R                  R                  XX45      $ )NzKinvalid value for argument 'value', must not be None when specifying optlenz$invalid value for argument 'value': z%, must be None when specifying optlen)r   r  r   r   s        r'   r   r  G  sp     >}a  ::((??6ui?de  zz$$UUCCr*   r   c                8    U R                   R                  U5      $ r"   )r  r   r   s     r'   r   _SocketType.listen]  s    zz  ))r*   c                6    U R                   R                  5       $ r"   )r  r  r5   s    r'   r  _SocketType.get_inheritable`  s    zz))++r*   c                8    U R                   R                  U5      $ r"   )r  r  r  s     r'   r  _SocketType.set_inheritablec  s    zz))+66r*   r   r
  c                8    U R                   R                  U5      $ r"   )r  r
  r  s     r'   r
  _SocketType.sharej  s    ::##J//r*   c                    U $ r"   rN   r5   s    r'   r  _SocketType.__enter__m  s    r*   c                :    U R                   R                  XU5      $ r"   )r  r  r:   s       r'   r  _SocketType.__exit__p  s     zz""8	BBr*   c                .    U R                   R                  $ r"   )r  rp   r5   s    r'   rp   _SocketType.familyx  s    zz   r*   c                .    U R                   R                  $ r"   )r  rq   r5   s    r'   rq   _SocketType.type|  s    zzr*   c                .    U R                   R                  $ r"   )r  rr   r5   s    r'   rr   _SocketType.proto  s    zzr*   c                    U R                   $ r"   )r  r5   s    r'   r   _SocketType.did_shutdown_SHUT_WR  s    )))r*   c                L    [        U R                  5      R                  SS5      $ )Nzsocket.socketztrio.socket.socket)reprr  replacer5   s    r'   r   _SocketType.__repr__  s    DJJ''9MNNr*   c                H    [        U R                  R                  5       5      $ )z"Same as :meth:`socket.socket.dup`.)r}   r  r#  r5   s    r'   r#  _SocketType.dup  s    4::>>+,,r*   c                    U R                   R                  5       S:w  aD  [        R                  R	                  U R                   5        U R                   R                  5         g g )N)r  r   r2   r3   notify_closingr&  r5   s    r'   r&  _SocketType.close  sB    ::"$MM((4JJ %r*   c                  #    U R                  USS9I S h  vN n[        [        S5      (       ad  U R                  [        R                  :X  aF  US   (       a<  [
        R                  R                  U R                  R                  U5      I S h  vN $ [
        R                  R                  5       I S h  vN   U R                  R                  U5      $  N NG N#7f)NTr   r   r   )r   r   r\   rp   r   r2   rl   rm   r  r*  r3   
checkpointr)  s     r'   r*  _SocketType.bind  s     227$2GGNI..~555
 00'JJJ --**,,,::??7++ H K -s4   CCA8CC%C5C6 CCCc                    U R                   R                  U5        U[        R                  [        R                  4;   a  SU l        g g )NT)r  r1  r\   SHUT_WR	SHUT_RDWRr  r/  s     r'   r1  _SocketType.shutdown  s;    

D!N**N,D,DEE)-D& Fr*   c                B   [         R                  S:X  a3  [        R                  " U R                  // / S5      u  n  n[	        U5      $ [        R
                  " 5       nUR                  U R                  [        R                  5        [	        UR                  S5      5      $ )Nr   r   )r   r   selectr  rD   pollregisterPOLLIN)r%   rreadyr   ps       r'   r4  _SocketType.is_readable  sk    <<7"!==$**r2qALFAq<KKM	

4::v}}-AFF1Ir*   c                `   #    [         R                  " U R                  5      I S h  vN   g  N7fr"   )r   r7  r  r5   s    r'   r7  _SocketType.wait_writable  s     !!$**---s   $.,.c          	     (  #    U R                   [        R                  :X  a9  U R                  R	                  [        R
                  [        R                  5      nOSn[        U R                  U R                   U R                  UUUS9I S h  vN $  N7f)NF)r   r   r   )
rp   r\   r   r  r   IPPROTO_IPV6IPV6_V6ONLYr   rq   rr   )r%   r   r   r   s       r'   r   !_SocketType._resolve_address_nocp  s{      ;;.111**//++**K
  K*IIKKJJ#
 
 	
 
s   B	BBBc                D  #    [        5        IS h  vN   U" U R                  /UQ70 UD6sS S S 5      IS h  vN   $  N+ N! , IS h  vN  (       d  f       O= f U" U R                  5      I S h  vN     U" U R                  /UQ70 UD6$ ! [         a     Of = fMD  7fr"   )r   r  r-   )r%   r   r   r   r   s        r'   r   _SocketType._nonblocking_helper  s     8 ;;djj24262 ;;;;; $**%%%$**6t6v66" 	 sn   B =B AB ?B B AA
AB 1A42B 8B B 
BB BB c                \   #    U R                  5       I Sh  vN u  p[        U5      U4$  N7f)z-Like :meth:`socket.socket.accept`, but async.N)_acceptr   )r%   r~   addrs      r'   r:  _SocketType.accept  s*     <<>)
!$'-- *s   ,*,c           	       #     U R                  USS9I S h  vN n[        5        IS h  vN   U R                  R                  U5      sS S S 5      IS h  vN   $  NC N2 N	! , IS h  vN  (       d  f       O= f[        R
                  " U R                  5      I S h  vN    O3! [        R                   a    U R                  R                  5         e f = fU R                  R                  [        R                  [        R                  5      nUS:w  a'  [        USU< S[        R                  " U5       35      eg 7f)NFr  r   zError connecting to z: )r   r   r  r=  r   r7  r2   	Cancelledr&  r   r\   r   SO_ERRORr   r   strerror)r%   r   errs      r'   r=  _SocketType.connect  s     
;	 66we6LLG {{` zz))'2a #{{ M"{{{f %%djj111~~ 	 JJ	 jj##N$=$=~?V?VW!8#!5g[2;;sCSBTUVV s   D>B% AB% AB% A!	B% AB% D>B% B% B% !A8'A*(A84*B% B!B% $D>%0CA)D>c                   g r"   rN   r@  s      r'   rA  _SocketType.recv]      Cr*   c                   g r"   rN   rD  s       r'   rG  _SocketType.recv_intoj  s     !r*   c                   g r"   rN   rJ  s      r'   rL  _SocketType.recvfrom}  s    
 69r*   c                   g r"   rN   rD  s       r'   rO  _SocketType.recvfrom_into  s     47r*   rQ  c                   g r"   rN   rS  s       r'   rQ  _SocketType.recvmsg  s	     VYr*   T)r   rW  c                   g r"   rN   rY  s       r'   rW  _SocketType.recvmsg_into  s	     TWr*   c                   g r"   rN   r]  s      r'   r^  _SocketType.send  r  r*   c                  #    g 7fr"   rN   ra  s      r'   rc  _SocketType.sendto  re  rf  c                  #    g 7fr"   rN   rh  s       r'   rc  r    ri  rf  rN   r   c                   #    [        U5      nU R                  US   SS9I Sh  vN US'   U R                  " [        R                  [
        R                  R                  /UQ76 I Sh  vN $  NI N7f)z3Similar to :meth:`socket.socket.sendto`, but async.r  Fr  N)r   r   r   r   r7  r\   r   rc  )r%   r   	args_lists      r'   rc  r    sw     
 J	"88b8OO	" --!!((
 
 
 	
 P
s"   "A2A.AA2)A0*A20A2rk  c                  #    Ub  U R                  USS9I Sh  vN nU R                  [        R                  [        R
                  R                  UUUU5      I Sh  vN $  NH N7f)zSimilar to :meth:`socket.socket.sendmsg`, but async.

Only available on platforms where :meth:`socket.socket.sendmsg` is
available.

NFr  )r   r   r   r7  r\   r   rk  rm  s        r'   rk  _SocketType.sendmsg  sl      " $ : :7% : PP11##%%--   Qs"   A&A"AA&A$A&$A&)r  r  )r~   _stdlib_socket.socketr@   rA   rp  rq  rr  rs  r"   rt  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  rE   r  r  )r   r   r   rD   r@   r   )
r   2Callable[[_stdlib_socket.socket], Awaitable[None]]r   2Callable[Concatenate[_stdlib_socket.socket, P], T]r   r   r   r   r@   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )9rI   rJ   rK   rL   r(   r   r   r   r   r   r   r   r  r\   r  r   r  r  r   r   r   r   r   r
  r  r  r  rp   rq   rr   r  r   r#  r&  r*  r1  r4  r7  r   r   r   r:  r   wait_readabler  r=  rA  rG  rL  rO  rQ  rW  r^  rc  r   rk  rM   rN   r*   r'   r}   r}     s   	+ ##(( > >M M "	== = 	=
 
= T T  	
  
  "DD D #	D
 D 
D, %((@(@#$F *,7 ||wgn&;&;WEE	0C,C (C (	C
 
C ! !       * *O-
,$..

 	

 

8$C$ ?$ 	$
 $ 
$T /$$G
.DW\ O+""D  	! 	! 		!
 	! 	! 1''I 
 	9	9 	9
 4	9 0&&H  	7 	7 		7
 	7 2	7 5++M ||wgn&;&;YGG
 #$	YY  Y 	Y TY 3!!))
 ||wgn&;&;^LL
 #$	W)W  W 	W RW 8!!..
 O+""D  3
 
    3	 
  N!!((2rB
 C
$ ||wgn&;&;YGG 
%%--B	G :<,0	%	 7	 		
 *	 	 
H		 HMr*   r}   )rO   HostnameResolver | Noner@   r  )rQ   SocketFactory | Noner@   r  )r   r   r   r   )rn   zbytes | str | Nonero   zbytes | str | int | Nonerp   r   rq   r   rr   r   rs   r   r@   zqlist[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])rw   z+tuple[str, int] | tuple[str, int, int, int]rs   r   r@   ztuple[str, str])rz   rh   r@   r   )r~   r  r@   r{   )
r   r	   rp   AddressFamily | intrq   SocketKind | intrr   r   r@   r{   )r   r   r@   r{   )rp   r   rq   r   rr   r   r@   ztuple[SocketType, SocketType])
rp   r  rq   r  rr   r   r   ru  r@   r{   )
rp   r  r   r  rr   r   r   ru  r@   z1tuple[AddressFamily | int, SocketKind | int, int])F)r   r  r   r  r   rD   r@   z3Callable[Concatenate[_SocketType, P], Awaitable[T]])r   r   rp   r   rr   r   r   z
bool | intr   r   r   rD   r@   r   )T
__future__r   r   r  r   r\   r   operatorr   r   r   typingr   r   r	   r
   r   r   idnark   r2   
trio._utilr   r   r   r   collections.abcr   r   r   typesr   typing_extensionsr   r   r   r   r   _abcr   r   r   r   r   __annotations__r   RunVarrP   rR   rW   rY   AI_NUMERICHOSTAI_NUMERICSERVrg   rf   rv   ry   r   r   r   SOCK_STREAMr   r   r   r   r   r   r   r   r   getattr_SOCK_TYPE_MASKr   r   r{   __dict__itemsrz   obj
startswithr   stdlib_type
stdlib_objr}   rN   r*   r'   <module>r*     s   " 	   
  ,    & ==#QQ5#A CL y  H 49<<@S3T	0 T6;llCS6T3 T.D(B --0M0MM P

P

"P
 P
 	P

 P
 P
P
f
9

 
2
* B7 #1"8"8+77	OOO O 	O
 O 8O <<7'.+>> N$$r2>B ?B
 <<7GYE9"**MM4sM478GY8^22C78E98 !!B;#((
A
A

A 
A #	
A <
A B7"0"8"8+77	--
- - 	-
 - 8-6      	 
 7 T NOQ/nna01 :?  9	NGGG G
 G G G GT^& ^&D $$**,ID#t%,,n.G.GG[$5
:*,,, H
 	$$CK -M* Mr*   