
    <fh@Z              
         d dl mZ d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZmZ d dl
mZ d dlmZmZmZ d dlZd dlZd dlZd dlZd dlmZmZ ddlmZmZ dd	lmZ erd d
lm Z m!Z! da"	 d dl#mZ$ d(dZ&d(dZ'd)dZ(	 	 	 	 	 	 d*dZ) e* e)ed            Z+ e* e)ed            Z,e+D  cg c]  } | jZ                   c} Z.ej^                  j`                  ej^                  jc                  e	jd                  dd dk(  d      ej^                  jc                  e	jd                  jf                  dk(  d      ej^                  ji                  de.      ej^                  ji                  dg d      ej^                  jk                  d      d+d                                          Z6eej^                  j`                  ej^                  jc                  e	jd                  dd dk(  d      ej^                  jc                  e	jd                  jf                  dk(  d      ej^                  ji                  de.      ej^                  ji                  dd d!g      	 	 	 	 	 	 	 	 d,d"                                          Z7d(d#Z8d(d$Z9ej^                  jc                   e:ejv                  d%       d&      d(d'       Z<y# e%$ r eZ$Y Lw xY wc c} w )-    )annotationsN)PathPurePath)
ModuleType)TYPE_CHECKINGAnyProtocol)RUN_SLOWskip_if_optional_else_raise   )_core_util)slow)IterableIteratorF)r	   c                     	 ddl m}  t        s  g d      }|d   rJ |d   rJ day y # t        $ r}t        |       Y d }~;d }~ww xY w)Nr   )run)z--config-file=z--cache-dir=./.mypy_cachez--no-error-summaryz-czimport trio   T)mypy.apir   ImportErrorr   mypy_cache_updated)r   errorresults      K/var/www/zara/venv/lib/python3.12/site-packages/trio/_tests/test_exports.py_ensure_mypy_cache_updatedr   '   sb    + 
  
 !9}!9}! 	  +#E**+s   * 	AAAc                 2   t         t         j                  t         j                  g} t        t              D ]`  }|j                  d      rd}| D ]2  }|t        |      v st        ||      t        t        |      u s.|dz  }4 t        ||       |dk(  r`J  y )N_r   r   )triolowleveltestingdirr   
startswithgetattrprint)sourcessymbolfoundsources       r    test_core_is_properly_reexportedr)   @   s     T]]DLL1Ge* S! 	FV$)@GE * 
	 	fezz    c                R    	 t        j                  d| f       y# t        $ r Y yw xY w)z&Check if a class cannot be subclassed.SubclassTesterFT)types	new_class	TypeError)clss    r   class_is_finalr1   R   s1    (3&1   s    	&&c              #  $  K   |  | j                   j                         D ]i  \  }}|j                  d      r|rt        |t              s+|j
                  j                  | j
                        sQ|| u rVt        ||      E d {    k y 7 wNr   )__dict__itemsr"   
isinstancer   __name__iter_modules)moduleonly_publicnameclass_s       r   r8   r8   ]   s      L--/ 	5f??3K&*-))&//:V444	5 	5s   BBBBT)r:      )      r   betaz several tools don't support 3.14)reasonalphaz<skip static introspection tools on Python dev/alpha releasesmodnametool)pylintjedimypypyright_verifytypesz>ignore:module 'sre_constants' is deprecated:DeprecationWarningc                   t        j                  |      }d%d} |t        |            }|dk(  r|j                  d       t        j
                  D ]1  }t        ||d       t        t        |      u s!|j                  |       3 | dk(  rB	 ddlm	}         }	|j                  J |	j                  |j                  |      }
 ||
      }n=| dk(  rpt        j                  j                   d	k7  rt#        j$                  d
       	 dd l}j)                  d| d| d      }|j+                         } |d |D              }n| dk(  rt,        st#        j$                  d       t/        j0                         dz  }t3                t5        |j7                  d            }|dz   j9                  dd      \  }}|d d }|r||z  n|}|j;                         r|dz  }n||dz   z  }|j=                         sJ |j?                         sJ |jA                         5 }tC        jD                  |jG                               } |d |d   jI                         D              }d d d        n| dk(  rt,        st#        j$                  d       	 dd l%}dd l&}|jO                  dd| dgd      }tC        jD                  |jP                        }|d    d   D ch c]*  }|d!   jS                  |      r|d!   tU        |      dz   d  , }}n
tW               |z
  }|dhz  }|rCtY        |  d"| d#       tY                t[        |      D ]  }tY        d$|         tW               y # t        $ r}t        |       Y d }~d }~ww xY w# t        $ r}t        |       Y d }~d }~ww xY w# 1 sw Y   xY w# t        $ r}t        |       Y d }~=d }~ww xY wc c}w )&Nsymbolsc                P    | D ch c]  }|j                  d      r| c}S c c}w r3   r"   rJ   r&   s     r   no_underscoresz9test_static_tool_sees_all_symbols.<locals>.no_underscores   s#    %,K6F4E4Ec4JKKKs   ##r   testsrE   r   )PyLinterrF   cpythonjedi does not support pypyzimport ; .c              3  4   K   | ]  }|j                     y wNr;   .0cs     r   	<genexpr>z4test_static_tool_sees_all_symbols.<locals>.<genexpr>   s     %Baff%B   rG   z$use --run-slow to check against mypy.mypy_cache*/trior   __init__.data.json
.data.jsonc              3  X   K   | ]"  \  }}|j                  d       s|d   dk(  r| $ yw)rT   kindGdefNrL   )rY   keyvalues      r   r[   z4test_static_tool_sees_all_symbols.<locals>.<genexpr>   s3      *C~~c*uV}/F *s   (*namesrH   z'use --run-slow to check against pyrightpyrightz--verifytypes=z--outputjsonT)capture_outputtypeCompletenessr;   z" can't see the following names in :z    rJ   zIterable[str]returnzset[str]).	importlibimport_moduler!   discard
__future__all_feature_namesr#   removepylint.lintrP   r   r   __file__get_astsysimplementationr;   pytestskiprF   Scriptcompleter
   r   cwdr   nextglobsplitis_direxistsis_fileopenjsonloadsreadr5   rh   
subprocessr   stdoutr"   lenAssertionErrorr$   sorted)rD   rC   tmp_pathr9   rN   runtime_namesr;   rP   r   linteraststatic_namesrF   scriptcompletionscache
trio_cacher   	mod_cache
cache_file
cache_jsonrh   r   rescurrent_resultxmissing_namess                              r   !test_static_tool_sees_all_symbolsr   w   s   & $$W-FL #3v;/M &g& ,, '64&'*d*CC  &' x	/, ***nnV__g6%c*	""i/KK45	/
 wwir'!<=oo'%%Bk%BB	KK>?
]*"$%**X./
m**32
7#2,,3J(	!$88I"g&<=I!!!  """^^ 	JOO$56J) *",W"5";";"=* L	 	 
&	&KKAB	/ 	nn.	2NC  
 CJJ/ $$67	B
y##G, fIc'lQ&()
 
  "L0M gYM8	CD=) 	!DD- 	! c  	/'..	/  	/'..	/4	 	  	/'..	/
s[   M M< ANN* /O	M9#M44M9<	NNNN'*	O	3OO	z"several tools don't support 3.14.0module_namerF   rG   c                   t         t        j                  |         }dHd}| dk(  r2t        j                  j
                  dk7  rt        j                  d       | dk(  rt        j                         dz  t                t        j                  d            }|}|dz   j                  dd	      \  }}|d d
 }|r||z  n|}|j                         r|dz  }n||dz   z  }|j                         sJ |j!                         sJ |j#                         5 }	t%        j&                  |	j)                               }
d d d        t*        j,                  dIfd       }i }|j.                  j1                         D ]  \  }}t3        |t4              s|dk(  r|t7        t8              v r/|t:        j<                  j>                  u s|t:        j<                  j@                  u rhtC        t7        t5        |                  h dz  }t5        |      t4        u r"|jE                  d       |jE                  d       t        j                  j
                  dk(  r|h dz  } |d tG        jH                  |      D              |z
  }| dk(  rC	 dd l%}jQ                  d| d| d| d      }|jS                         } |d |D              |z
  }n| dk(  r
d   |   }d|vsJ d        |d         }d|v sJ |d   } |d |jU                  dd      D              }|d    d	d  D ]/  } ||      d   }| |d! |jU                  dd      D              z  }1 ||z  }ntW        d"      ||z
  }||z
  }| dk(  r6tX        |jZ                  v r$t        j\                  d#k\  r|j_                  d$       | dk(  r6tX        |jZ                  v r$t        j\                  d#k\  r|j_                  d%       | dk(  rTta        jb                  |      r?te        |      }|D ch c]  }|jg                  d&      r| }}te        |      |d	z
  k(  sJ | dk(  rSth        jj                  |jZ                  v r7t        j\                  d'k\  r$t        j\                  d(k  r|j_                  d)       | dk(  r$|t:        jl                  k(  r|j_                  d*       t:        jn                  d+d,ht:        jp                  d-d.ht:        jr                  h d/t:        jt                  d0ht:        jv                  d1ht:        jx                  d-ht:        jz                  d-ht:        j<                  j|                  d2d3ht:        j<                  j~                  h d4i	}| dk(  r6||v r2te        |      }|||   z  }te        |      |te        ||         z
  k(  sJ |t:        j                  k(  r"|j_                  d5       |j_                  d6       | dk(  rt        j\                  d#k\  r|t:        jn                  t:        j                  t:        j                  t:        jt                  t:        jx                  fv r"|j_                  d7       |j_                  d8       |t:        jn                  t:        j                  fv r"|j_                  d9       |j_                  d:       |t:        j                  t:        j                  t:        j                  fv r_|t        j.                  j                         z  }| dk(  rt        j                  d;k(  r|h d<z  }| dk(  rt        j                  d;k(  r|h d<z  }| dk(  rXt        j\                  d d= d>k(  rB|t:        j                  t:        j                  t:        j                  fv r|j_                  d?       t        j\                  d>k\  r&ta        jb                  |      r|j_                  d@       t        j\                  d(k\  r"|j                  dA       |j                  dB       |s|s||dC|| d| <    |r ddDlImI} t        dE|  dF| dG        ||       |rJ y # 1 sw Y   xY w# tL        $ r}tO        |       Y d }~d }~ww xY wc c}w )JNc                p    | D ch c]&  }|j                  d      r|j                  d      r|( c}S c c}w )Nr   __rL   rM   s     r   	no_hiddenz6test_static_tool_sees_class_members.<locals>.no_hidden  s?     "
%%c*v/@/@/F 
 	
 
s   +3rF   rQ   rR   rG   r]   r^   rT   r   r_   r`   ra   c                   | j                  d      ^}}}t        	j                  d            }||z  }|j                         s||dz   z  }|r9|d d D ]  }||z  }	 ||d   z  }|j                         r|dz  }n!||d   dz   z  }n|j                         r|dz  }|j	                         5 }t        j                  |j                               d   |   cd d d        S # 1 sw Y   y xY w)NrT   z3.*/ra   r_   r`   rg   )r   r~   r   r   r   r   r   r   )
r&   topnamerC   r;   versionr   piece
next_cachefr   s
            r   lookup_symbolz:test_static_tool_sees_class_members.<locals>.lookup_symbol/  s    &,ll3&7#Ggt5::f-.G')I##%#w'=>	$Sb\ 'E&I'&4
$$& *-A AI )WR[<-G HI!!#11	! ;Qzz!&&(+G4T:; ; ;s   .)C!!C*ztrio.socket>   __copy__	__final__	__order__	__slots____weakref____deepcopy____getstate____setstate____match_args____orig_bases____parameters____annotations____attrs_attrs____class_getitem____protocol_attrs____attrs_own_setattr____callable_proto_members_only____firstlineno____static_attributes__pypy>   
__sizeof____unicode____itemsize____basicsize____dictoffset____weakrefoffset__c              3  &   K   | ]	  }|d      yw)r   N )rY   r   s     r   r[   z6test_static_tool_sees_class_members.<locals>.<genexpr>~  s     ?qad?s   r   zfrom z import rS   c              3  4   K   | ]  }|j                     y wrV   rW   rX   s     r   r[   z6test_static_tool_sees_class_members.<locals>.<genexpr>  s     $AQVV$Ar\   rg   nodezpreviously this was an 'if' but it seems it's no longer possible for this cache to contain 'node', if this assert raises for you please let us know!	cross_refc              3  D   K   | ]  }|j                  d       r|  ywrT   NrL   rY   ks     r   r[   z6test_static_tool_sees_class_members.<locals>.<genexpr>  s       %S8I%     r   mroc              3  D   K   | ]  }|j                  d       r|  ywr   rL   r   s     r   r[   z6test_static_tool_sees_class_members.<locals>.<genexpr>  s       *ALL<MA*r   zunknown tool)r>      add_note	__notes__AttrsAttributes__)r>      )r>   r?   __signature__cancel_scopepeer_addressendpointsocketincoming_packets_buffer>   pidargsstdinstdiostderrr   transport_listenertransport_stream
close_hookreceive_some_hook>   r   send_all_hook"wait_send_all_might_not_block_hookreceive_streamsend_stream
__aenter__	__aexit__	__aiter__	__anext__win32>   groupowneris_mountr   )r>      with_segments__replace____annotate_func____annotations_cache__)missingextra)pprint
z$ can't see the following symbols in rk   rl   )r&   strrm   zdict[str, Any])KPUBLIC_MODULESPUBLIC_MODULE_NAMESindexrw   rx   r;   ry   rz   r   r}   r   r~   r   r   r   r   r   r   r   r   r   	functools	lru_cacher4   r5   r6   typer!   stdlib_socketr   r    RaisesGroupMatchersetaddinspect
getmembersrF   r   r   r{   r|   getr   BaseException__mro__version_infors   attrshasr   endswithenumEnumNurseryDTLSChannelDTLSEndpointProcessSSLListener	SSLStreamSocketListenerSocketStreamMemoryReceiveStreamMemorySendStreamStapledStreamMemoryReceiveChannelMemorySendChannelWindowsPath	PosixPathr   keysplatformrp   r   r$   ) rD   r   r   r9   r   r   rC   r   r   r   r   r   errors
class_namer<   ignore_namesr   rF   r   r   r   r   cached_type_infor   r&   r   r   beforeeEXTRASr   r   s                                   @r   #test_static_tool_sees_class_membersr(     s   * /55kBCF
 v~#,,11Y>01v~
]*"$%**X./
m**32
7#2,,3J(	!$88I"g&<=I!!!  """^^ 	7JOO$56J	7 
			; 
	;( !#F$oo335 Q
F&$'-'J#m:L,L T\\---4<<;O;O1O 3tF|,- 1
 
, <4./45 ""f,  L ?G$6$6v$>??,N 	 6>3 [[}HZL:,aHF !//+K$$A[$AALPLV^)'2:>..f ff.,-=k-JK----#F+D$ %88GR0% L u+ab/ $V,V4	 *#xx4* ! 
 L(L !00,.}, FN/  G+NN:& FN/  G+LL%6>eii/ZF %M1QZZ8K-LQMEMu:!+++ FN		V^^+  G+  7*LL) 6>f4LL( ~z:*CDLLO34NN/0(zLL,,|=P.QLL)) ,
 6>f.ZFVF^#Eu:#fVn*=!==== T'''LL)*LL' 6>c..'9  ))&&  ##  |,{+$**D,E,EFF{+{+dii!1!14>>BBx((--//Gv~#,,'"999v~#,,'"977 FN  !$/499d&6&6GGNN?+w&599V+<NN=)w& OO/0OO34e"5Fk]!J<01]Qj !4&<[MKLv:vi	7 	7r  3+E223n Ns0   $`= a
a,a,=a
	a)a$$a)c                     t        t        j                        sJ t        D ]I  } | j                  j                         D ]*  }t        |t        j                        st        |      r*J  K y)z6Check all NoPublicConstructor classes are also @final.N)r1   r   NoPublicConstructorALL_MODULESr4   valuesr6   )r9   r<   s     r   test_nopublic_is_finalr-  "  s_    %33444 .oo,,. 	.F&%";";<%f---	..r*   c                 X   t        t              rJ t        t              sJ t        D ]  } | j                  j                         D ]  \  }}t        |t              s|j                  d      r)t        j                  |      r?t        |j                  v st        |j                  v rdt        |t              ru|t         j"                  j$                  u s|t         j&                  j(                  u r|t         j*                  u r|j-                  d      rt        |      rJ   y )Nr   
Statistics)r1   objectboolr   r4   r5   r6   r   r"   r  
isabstractr	   	__bases__Protocol_ext
issubclassr  r   abc
Instrumentr   
SocketTyper   r  )r9   r;   r<   s      r   test_classes_are_finalr9  ,  s    f%%%$   *"OO113 	*LD&fd+s# !!&)6+++|v?O?O/O &-0 ,,,$++:P:P0P "}}\*!&)))?	* *r*   trio_moddedzPytest plugin not installed.c                    t         D ]  } | j                  j                         D ]  }t        j                  |      st        |t        j                        r4t        j                  |      D cg c]S  }|j                  rE|j                  |j                  |j                  j                  di       j                  d      fvr|U }}|g k(  rJ |         yc c}w )a  Check whether we provide `alias` for all underscore prefixed attributes.

    Attrs always sets the `alias` attribute on fields, so a pytest plugin is used
    to monkeypatch `field()` to record whether an alias was defined in the metadata.
    See `_trio_check_attrs_aliases`.
    trio_original_argsaliasN)r   r4   r,  r  r  r6   r   r*  fieldsinitr=  r;   metadatar  )r9   r<   attr
attributess       r   'test_pyright_recognizes_init_attributesrC  U  s     ! ,oo,,. 	,F99V$&%";";< "LL0
99::IIMM%%&:B?CCGL 
J 
 #+V+#%	,,
s   /AC)rm   None)r0   r   rm   r1  )r9   ztypes.ModuleTyper:   r1  rm   zIterator[types.ModuleType])rD   r   rC   r   r   r   rm   rD  )rD   r   r   r   r   r   rm   rD  )=rq   r   r  r   rn   r  r   r   r   rw   r-   pathlibr   r   r   typingr   r   r	   r  ry   r   trio.testingtrio._tests.pytest_pluginr
   r    r   r   _core._tests.tutilr   collections.abcr   r   r   typing_extensionsr4  r   r   r)   r1   r8   listr   r+  r7   r   markredistributors_should_skipskipifr
  releaselevelparametrizefilterwarningsr   r(  r-  r9  hasattrfieldrC  )ms   0r   <module>rW     s   "        
  "  / /     K  %2 :
"2$555  5" l4T:;<%89+9:aqzz:  ''Ra..-   !!W,I   $78!RSDj	 T 9	 ($j^ ''Ra../   !!W,I   (;<&&!12W
WW W 
	W 3 =	 (  Wt.%*R ]++)  ,	,m  LZ ;s   6J> 6K>K	K	