
    +gG                        % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	J
r
JrJrJr  S SKrS SKrS SKJrJr  \	(       a(  S SK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  \\R@                  \RB                  4   r"S
\#S'   S S jr$S!S jr%S!S jr&S"S jr'S#S jr(\RR                   " S S5      5       r*\RR                   " S S5      5       r+\RR                   " S S5      5       r,\RR                   " S S\RZ                  R\                  5      5       r/\RR                   " S S\RZ                  R`                  5      5       r1\ " S S5      5       r2\ " S S\R                  Rf                  \S95       r4g)$    )annotationsN)TYPE_CHECKINGAnyNoReturnUnionoverload)NoPublicConstructorfinal)Iterable)AddressFamily
SocketKind)TracebackType)BufferSelf	TypeAlias)AddressFormatr   	IPAddressc                    [        U [        R                  5      (       a  [        R                  R
                  $ [        U [        R                  5      (       a  [        R                  R                  $ [        S5      e)Nz!Unhandled IPAddress instance type)	
isinstance	ipaddressIPv4AddresstriosocketAF_INETIPv6AddressAF_INET6NotImplementedError)ips    ^/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/trio/testing/_fake_net.py_family_forr    +   sT    "i++,,{{"""	B	--	.	.{{###
A
BB    c                    U [         R                  R                  :X  a  [        R                  " S5      $ U [         R                  R
                  :X  a  [        R                  " S5      $ [        S5      e)N0.0.0.0::Unhandled ip address familyr   r   r   r   
ip_addressr   r   familys    r   _wildcard_ip_forr*   3   sT    $$$##I..	4;;''	'##D))
;
<<r!   c                    U [         R                  R                  :X  a  [        R                  " S5      $ U [         R                  R
                  :X  a  [        R                  " S5      $ [        S5      e)N	127.0.0.1::1r%   r&   r(   s    r   _localhost_ip_forr.   <   sT    $$$##K00	4;;''	'##E**
;
<<r!   c                B    [        U [        R                  " U 5      5      eN)OSErrorosstrerror)codes    r   	_fake_errr5   D   s    
$D)
**r!   c                    SnU H^  nXU[        U5      R                  -    n[        U5       nXES [        U5      & S S S 5        U[        U5      -  nU[        U 5      :X  d  M]    U$    U$ ! , (       d  f       N4= f)Nr   )
memoryviewnbyteslen)databufferswrittenbuf
next_piecembufs         r   _scatterr@   H   sx    GGjo.D.D$DE
_&0"3z?# 3z?"c$iN  N _s   A))
A7	c                  P    \ rS rSr% S\S'   S\S'   S
S jr\    SS j5       rSrg	)UDPEndpointT   r   r   intportc                    U R                   R                  U R                  4n[        U R                   [        R
                  5      (       a  US-  nU$ )Nr   r   )r   
compressedrE   r   r   r   )selfsockaddrs     r   as_python_sockaddrUDPEndpoint.as_python_sockaddrY   sF    GGIIA
 dggy4455Hr!   c                F    US S u  p#U " [         R                  " U5      US9$ )N   )r   rE   )r   r'   )clsrJ   r   rE   s       r   from_python_sockaddr UDPEndpoint.from_python_sockaddrb   s)    
 BQ<i**2.T::r!    Nreturn+tuple[str, int] | tuple[str, int, int, int])rJ   rU   rT   rB   )	__name__
__module____qualname____firstlineno____annotations__rK   classmethodrP   __static_attributes__rR   r!   r   rB   rB   T   s7    M
I ;=; 
; ;r!   rB   c                       \ rS rSr% S\S'   Srg)
UDPBindingk   rB   localrR   N)rV   rW   rX   rY   rZ   r\   rR   r!   r   r^   r^   k   s    r!   r^   c                  `    \ rS rSr% S\S'   S\S'   \R                  " S S9rS\S'   SS	 jrS
r	g)	UDPPacketq   rB   sourcedestinationc                "    U R                  5       $ r0   )hex)ps    r   <lambda>UDPPacket.<lambda>u   s
    r!   )reprbytespayloadc                @    [        U R                  U R                  US9$ )Nrd   re   rm   )rb   re   rd   )rI   rm   s     r   replyUDPPacket.replyx   s"    ##
 	
r!   rR   N)rm   rl   rT   rb   )
rV   rW   rX   rY   rZ   attrsfieldrm   rp   r\   rR   r!   r   rb   rb   q   s'    [[&78GU8
r!   rb   c                  *    \ rS rSr% S\S'   SS jrSrg)FakeSocketFactory   FakeNetfake_netc                D    [         R                  U R                  XU5      $ r0   )
FakeSocket_createrx   )rI   r)   type_protos       r   r   FakeSocketFactory.socket   s    !!$--FFr!   rR   N)r)   rD   r|   rD   r}   rD   rT   rz   )rV   rW   rX   rY   rZ   r   r\   rR   r!   r   ru   ru      s    Gr!   ru   c                  f    \ rS rSr% S\S'       S             S	S jjr      S
S jrSrg)FakeHostnameResolver   rw   rx   c                    #    [        S5      e7fNzFakeNet doesn't do fake DNS yetr   )rI   hostrE   r)   typer}   flagss          r   getaddrinfo FakeHostnameResolver.getaddrinfo   s     " ""CDD   c                    #    [        S5      e7fr   r   )rI   rJ   r   s      r   getnameinfo FakeHostnameResolver.getnameinfo   s     
 ""CDDr   rR   N)r   r   r   r   )r   zbytes | NonerE   zbytes | str | int | Noner)   rD   r   rD   r}   rD   r   rD   rT   zqlist[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])rJ   rU   r   rD   rT   ztuple[str, str])rV   rW   rX   rY   rZ   r   r   r\   rR   r!   r   r   r      s     EE 'E 	E
 E E E
E&E=E E 
	Er!   r   c                  F    \ rS rSrS	S jrS
S jrS	S jrSS jrSS jrSr	g)rw      c                    [         R                  " S5      R                  5       U l        [         R                  " S5      R                  5       U l        [        [        SS5      5      U l        0 U l	        S U l
        g )Nz	1.0.0.0/8z1::/16iP  i  )r   IPv4Networkhosts_auto_ipv4_iterIPv6Network_auto_ipv6_iteriterrange_auto_port_iter_boundroute_packetrI   s    r   __init__FakeNet.__init__   s]    (44[AGGI(44X>DDF#E%$7846 r!   c                p    XR                   ;   a  [        [        R                  5        X R                   U'   g r0   )r   r5   errno
EADDRINUSE)rI   bindingr   s      r   _bindFakeNet._bind   s&    kk!e&&'%Gr!   c                    [         R                  R                  [        U 5      5        [         R                  R	                  [        U 5      5        g r0   )r   r   set_custom_socket_factoryru   set_custom_hostname_resolverr   r   s    r   enableFakeNet.enable   s2    --.?.EF001Ed1KLr!   c                d    U R                   c  U R                  U5        g U R                  U5        g r0   )r   deliver_packetrI   packets     r   send_packetFakeNet.send_packet   s*    $'f%r!   c                    [        UR                  S9nX R                  ;   a  U R                  U   R                  U5        g g )Nr`   )r^   re   r   _deliver_packet)rI   r   r   s      r   r   FakeNet.deliver_packet   s8    6#5#56kk!KK 008 r!   )r   r   r   r   r   NrT   None)r   r^   r   rz   rT   r   r   rb   rT   r   )
rV   rW   rX   rY   r   r   r   r   r   r\   rR   r!   r   rw   rw      s    !&
M&r!   rw   c                  t   \ rS rSr          S+S jr\S,S j5       r\S-S j5       r\S.S j5       rS/S jr	S/S jr
      S0S jrS1S	 jrS2S
 jrS3S jr   S4         S5S jjr\R"                  S:w  d  \(       d  \" \R(                  S5      (       a  \r  S6       S7S jjr\R"                  S:w  d  \(       d  \" \R(                  S5      (       a  \rS8S jrS8S jr\S9S j5       r\S:S j5       r S;       S<S jjr\S=S j5       r\          S>S j5       r S;         S?S jjrS@S jr        SAS jrSBSCS jjr\      SDS j5       r \        SES j5       r     SFS jr SBSGS jjr!S6SHS  jjr" SB     SIS! jjr#  S6       SJS" jjr$  S6       SKS# jjr%\R"                  S:w  d  \(       d  \" \R(                  S5      (       a  \%r&S.S$ jr'S.S% jr(SLS& jr)SMS' jr*\R"                  S:X  d  \(       d#  \" \R(                  S(5      (       a  SNS) jr+S*r,gS*r,gS*r,g)Orz      c                   Xl         U(       d  [        R                  R                  nU(       d  [        R                  R                  nU[        R                  R                  [        R                  R
                  4;  a  [        SU 35      eU[        R                  R                  :w  a  [        SU 35      eX l        X0l	        X@l
        SU l        [        R                  [           " [        S5      5      u  U l        U l        S U l        g )Nz%FakeNet doesn't (yet) support family=z#FakeNet doesn't (yet) support type=Finf)	_fake_netr   r   r   SOCK_STREAMr   r   
SOCK_DGRAM_family_type_proto_closedopen_memory_channelrb   float_packet_sender_packet_receiver_binding)rI   rx   r)   r   r}   s        r   r   FakeSocket.__init__   s     "[[((F;;**D$++--t{{/C/CDD%(MfX&VWW4;;)))%(KD6&RSS
595M5M6

,62T2
 ,0r!   c                    U R                   $ r0   )r   r   s    r   r   FakeSocket.type   s    zzr!   c                    U R                   $ r0   )r   r   s    r   r)   FakeSocket.family   s    ||r!   c                    U R                   $ r0   )r   r   s    r   r}   FakeSocket.proto   s    {{r!   c                Z    U R                   (       a  [        [        R                  5        g g r0   )r   r5   r   EBADFr   s    r   _check_closedFakeSocket._check_closed   s    <<ekk" r!   c                    U R                   (       a  g SU l         U R                  b!  U R                  R                  U R                  	 U R                  R                  5         g )NT)r   r   r   r   r   closer   s    r   r   FakeSocket.close   sE    <<==$%%dmm4##%r!   c          	        #    [         R                  R                  U R                  U R                  U R
                  USUS9I S h  vN $  N7f)NF)addressipv6_v6onlyr`   )r   _socket_resolve_address_nocpr   r)   r}   )rI   r   r`   s      r   r    FakeSocket._resolve_address_nocp  sK      \\77IIKKJJ 8 
 
 	
 
s   AAAAc                    [         R                  " [        R                  5         U R                  R                  U5        S S S 5        g ! , (       d  f       g = fr0   )
contextlibsuppressr   BrokenResourceErrorr   send_nowaitr   s     r   r   FakeSocket._deliver_packet  s6      !9!9:++F3 ;::s   A


Ac                  #    U R                  5         U R                  b  [        [        R                  5        [
        R                  R                  5       I S h  vN   U R                  USS9I S h  vN tp#nU/ :X  d   S5       e[        R                  " U5      n[        U5      U R                  :X  d   eU[        R                  " S5      :X  a  [        R                  " S5      nO0U[        R                  " S5      :X  a  [        R                  " S5      nUS:X  a  [        U R                  R                  5      n[!        [#        XS5      S9nU R                  R%                  X`5        X`l        g  GN GN7f)	NTr   zTODO: handle other values?r#   r,   r$   r-   r   )r   r   r5   r   EINVALr   lowlevel
checkpointr   r   r'   r    r)   nextr   r   r^   rB   r   )rI   addrip_strrE   _r   r   s          r   bindFakeSocket.bind  s!    ==$ell#mm&&(((!%!;!;D!;!MMqBw444w!!&)2$++---%%i00%%k2B9''--%%e,B19667D;r#89W+ 	)Ms%   AE7E1E72E43C?E74E7c                    #    [        S5      e7f)Nz0FakeNet does not (yet) support connected socketsr   )rI   peers     r   connectFakeSocket.connect2  s     !"TUUr   Nc                  #    U R                  5         [        R                  R                  5       I S h  vN   Ub  U R	                  USS9I S h  vN nU(       a  [        S5      eU(       a  [        SU 35      eUc  [        [        R                  5        [        R                  U5      nU R                  c8  U R                  [        U R                  5      R                  S45      I S h  vN   SR!                  U5      nU R                  c   e[#        U R                  R$                  UUS9nU R&                  R)                  U5        [+        U5      $  GN" GN
 No7f)NFr   &FakeNet doesn't support ancillary dataz"FakeNet send flags must be 0, not r   r!   ro   )r   r   r   r   r   r   r5   r   ENOTCONNrB   rP   r   r   r*   r)   rH   joinrb   r`   r   r   r9   )rI   r;   ancdatar   r   re   rm   r   s           r   _sendmsgFakeSocket._sendmsg5  s(     	mm&&((( 66we6LLG%&NOO%(J5'&RSS?enn%!66w?== ))-dkk:EEqIJJJ((7#}}(((==&&#
 	""6*7|9 	) M Ks5   2EEEEBE,E-A*EEEwin32sendmsgc                  #    US:w  a  [        S5      eUS:w  a  [        S5      eU R                  c  [        S5      eU R                  5         / nSnU R                  R	                  5       I S h  vN nUR
                  R                  5       n[        UR                  U5      nU[        UR                  5      :  a  U[        R                  R                  -  nXXW4$  Nn7f)Nr   r   z&FakeNet doesn't support any recv flagszThe code will most likely hang if you try to receive on a fakesocket without a binding. If that is not the case, or you explicitly want to test that, remove this warning.)r   r   r   r   receiverd   rK   r@   rm   r9   r   r   	MSG_TRUNC)	rI   r;   
ancbufsizer   r   	msg_flagsr   r   r<   s	            r   _recvmsg_intoFakeSocket._recvmsg_intoa  s      ?%&NOOA:%&NOO==  &2  	02	,,4466--2246>>73S((...I33 7s   A,C.C/A/Cc                ,   U R                  5         U R                  b$  U R                  R                  R                  5       $ U R                  [
        R                  R                  :X  a  gU R                  [
        R                  R                  :X  d   eg)N)r#   r   )r$   r   )	r   r   r`   rK   r)   r   r   r   r   r   s    r   getsocknameFakeSocket.getsockname  si    ==$==&&99;;[[DKK///!;;$++"6"6666r!   c                   U R                  5         U R                  b  [        U R                  S5      (       d   S5       eU R                  R                  bT  [	        U R                  R                  [
        5      (       d   S5       eU R                  R                  R                  5       $ [        [        R                  5        g )NremotezGThis method seems to assume that self._binding has a remote UDPEndpointz,Self._binding.remote should be a UDPEndpoint)
r   r   hasattrr  r   rB   rK   r5   r   r   r   s    r   getpeernameFakeSocket.getpeername  s    ==$  Y YY  }}##/!MM((  B BB  }}++>>@@%..!r!   c                   g r0   rR   )rI   leveloptnames      r   
getsockoptFakeSocket.getsockopt  s    >Ar!   c                   g r0   rR   rI   r  r  buflens       r   r	  r
    s    MPr!   c               F    U R                  5         [        SU SU S35      e)Nz%FakeNet doesn't implement getsockopt(, ))r   r1   r  s       r   r	  r
    s+     	=eWBwiqQRRr!   c                   g r0   rR   )rI   r  r  values       r   
setsockoptFakeSocket.setsockopt  s    TWr!   c                   g r0   rR   rI   r  r  r  optlens        r   r  r    s     r!   c                   U R                  5         X4[        R                  R                  [        R                  R                  4:X  a  U(       d  [        S5      e[        SU SU S35      e)Nz#FakeNet always has IPV6_V6ONLY=Truez%FakeNet doesn't implement setsockopt(r  z, ...))r   r   r   IPPROTO_IPV6IPV6_V6ONLYr   r1   r  s        r   r  r    sf     	KK$$KK## 
 
 %&KLL=eWBwivVWWr!   c                    U $ r0   rR   r   s    r   	__enter__FakeSocket.__enter__  s    r!   c                $    U R                  5         g r0   )r   )rI   exc_type	exc_value	tracebacks       r   __exit__FakeSocket.__exit__  s     	

r!   c                B   #    U R                  XS 5      I S h  vN $  N7fr0   )sendto)rI   r:   r   s      r   sendFakeSocket.send  s     [[d3333s   c                   #    g 7fr0   rR   )rI   _FakeSocket__data_FakeSocket__addresss      r   r%  FakeSocket.sendto  s
     
    c                   #    g 7fr0   rR   )rI   r)  _FakeSocket__flagsr*  s       r   r%  r+    s
      r,  c                   #    [        U5      S:X  a  Uu  p#SnO [        U5      S:X  a  Uu  p$nO[        S5      eU R                  U// XC5      I S h  vN $  N7f)NrN   r      zwrong number of arguments)r9   	TypeErrorr   )rI   argsr:   r   r   s        r   r%  r+    sZ      t9> MDEY!^#' D788]]D62u>>>>s   AAAAc                H   #    U R                  X5      I S h  vN u  p4U$  N7fr0   )recvfrom)rI   bufsizer   r:   _addresss        r   recvFakeSocket.recv
  s"     #}}W<< =s   " 	"c                J   #    U R                  XU5      I S h  vN u  pEU$  N7fr0   )recvfrom_into)rI   r=   r8   r   	got_bytesr6  s         r   	recv_intoFakeSocket.recv_into  s)     $($6$6sE$JJ	 Ks   #!	#c                L   #    U R                  X5      I S h  vN u  p4pVX64$  N
7fr0   )_recvmsg)rI   r5  r   r:   _ancdata
_msg_flagsr   s          r   r4  FakeSocket.recvfrom  s+     
 59MM'4Q.Q+
} /Rs   $"$c                   #    US:w  a$  U[        U5      R                  :w  a  [        S5      eU R                  U/SU5      I S h  vN u  pEpgXG4$  N
7f)Nr   zpartial recvfrom_into)r7   r8   r   r   )rI   r=   r8   r   
got_nbytesr@  rA  r   s           r   r:  FakeSocket.recvfrom_into  s`      Q;6Z_%;%;;%&=>>:>:L:LE;
 5
1
j
 ""5
s   AAAAc                   #    [        U5      nU R                  U/UU5      I S h  vN u  pVpx[        US U 5      XgU4$  N7fr0   )	bytearrayr   rl   )	rI   r5  r   r   r=   rD  r   r   r   s	            r   r?  FakeSocket._recvmsg)  sV       8<8J8JE9
 3
/
Y
 c+:&'WEE3
s   #A >A c                    [        S5      e)Nz&can't get fileno() for FakeNet socketsr   r   s    r   filenoFakeSocket.fileno<  s    !"JKKr!   c                    [        S5      e)Nzcan't detach() a FakeNet socketr   r   s    r   detachFakeSocket.detach?  s    !"CDDr!   c                    g)NFrR   r   s    r   get_inheritableFakeSocket.get_inheritableB  s    r!   c                (    U(       a  [        S5      eg )Nz&FakeNet can't make inheritable socketsr   )rI   inheritables     r   set_inheritableFakeSocket.set_inheritableE  s    %&NOO r!   sharec                    [        S5      e)NzFakeNet can't share socketsr   )rI   
process_ids     r   rV  FakeSocket.shareM  s    %&CDDr!   )r   r   r   r   r   r   r   r   )
rx   rw   r)   r   r   r   r}   rD   rT   r   )rT   r   )rT   r   )rT   rD   r   )r   objectr`   boolrT   ztuple[str, int]r   )r   rZ  rT   r   )r   rZ  rT   r   )rR   r   N)
r;   Iterable[Buffer]r   z!Iterable[tuple[int, int, Buffer]]r   rD   r   zAddressFormat | NonerT   rD   rG   )r;   r\  r   rD   r   rD   rT   zZtuple[int, list[tuple[int, int, bytes]], int, tuple[str, int] | tuple[str, int, int, int]]rS   )r  rD   r  rD   rT   rD   )r  rD   r  rD   r  rD   rT   rl   r0   )r  rD   r  rD   r  
int | NonerT   zint | bytes)r  rD   r  rD   r  zint | BufferrT   r   )
r  rD   r  rD   r  r   r  rD   rT   r   )
r  rD   r  rD   r  zint | Buffer | Noner  r]  rT   r   )rT   r   )r  z#builtins.type[BaseException] | Noner   zBaseException | Noner!  zTracebackType | NonerT   r   )r   )r:   r   r   rD   rT   rD   )r)  r   r*  z!tuple[object, ...] | str | BufferrT   rD   )r)  r   r.  rD   r*  z(tuple[object, ...] | str | Buffer | NonerT   rD   )r2  r   rT   rD   )r5  rD   r   rD   rT   rl   )r=   r   r8   rD   r   rD   rT   rD   )r5  rD   r   rD   rT   ztuple[bytes, AddressFormat])r=   r   r8   rD   r   rD   rT   ztuple[int, AddressFormat])r5  rD   r   rD   r   rD   rT   z>tuple[bytes, list[tuple[int, int, bytes]], int, AddressFormat])rT   r[  )rS  r[  rT   r   )rX  rD   rT   rl   )-rV   rW   rX   rY   r   propertyr   r)   r}   r   r   r   r   r   r   r   sysplatformr   r  r   r   r   recvmsg_intor   r  r   r	  r  r  r"  r&  r%  r7  r<  r4  r:  r?  recvmsgrJ  rM  rP  rT  rV  r\   rR   r!   r   rz   rz      s"   00 0 	0
 0 
0@      #&

 	

 

4 *V 68(,%!% 3% 	%
 &% 
%N ||wgfmmY??
 	"4!"4 "4 	"4

"4H ||wgfmmY??$" A AP P "S S 	S
 S 
S W W  	
   
  "X X 	X
 #X X 
X,5 ( (	
 
4  5 
	    <	
 
 ?? 
?    
%	 	## # 	#
 
##$ 	FF F 	F
 
HF ||wgfmmY??LEP ||wgfmmW==	E >Mr!   rz   )	metaclass)r   r   rT   rD   )r)   rD   rT   r   )r4   rD   rT   r   )r:   rl   r;   r\  rT   rD   )5
__future__r   r   r   r   r2   r   r_  typingr   r   r   r   r   rr   r   
trio._utilr	   r
   builtinscollections.abcr   r   r   typesr   typing_extensionsr   r   r   trio._socketr   r   r   r   rZ   r    r*   r.   r5   r@   frozenrB   r^   rb   abcSocketFactoryru   HostnameResolverr   rw   
SocketTyperz   rR   r!   r   <module>rq     sz   #    	  
    1(0#99*Y22I4I4IIJ	9 JC==+	 ; ; ;,   
 
 
 
 G.. G G E48844 E E<      F BE''3F BE BEr!   