o
    ᡡi0Z                  	   @  sd  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rrd d
lm Z m!Z! da"zd dl#mZ$ W n e%y   eZ$Y nw d>ddZ&d>ddZ'd?ddZ(d@ddZ)e*e)eddZ+e*e)eddZ,d d! e+D Z-ej.j/ej.j0e	j1dd" d#kd$d%ej.j0e	j1j2d&kd'd%ej.3d(e-ej.3d)g d*ej.4d+dAd/d0Z5eej.j/ej.j0e	j1j2d&kd'd%ej.3d1e-ej.3d)d2d3gdBd4d5Z6d>d6d7Z7d>d8d9Z8ej.j0e9ej:d: d;d%d>d<d=Z;dS )C    )annotationsN)PathPurePath)
ModuleType)TYPE_CHECKINGAnyProtocol)RUN_SLOWskip_if_optional_else_raise   )_core_util)slow)IterableIteratorF)r   returnNonec               
   C  sr   zddl m}  W n ty } z
t| W Y d }~nd }~ww ts7| g d}|d r-J |d r3J dad S d S )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result r   i/var/www/html/asbeauty/laura_geller_scraping/env/lib/python3.10/site-packages/trio/_tests/test_exports.py_ensure_mypy_cache_updated'   s   	r   c                  C  sx   t t jt jg} ttD ].}|drqd}| D ]}|t|v r-t||tt|u r-|d7 }qt|| |dks9J qd S )N_r   r   )triolowleveltestingdirr   
startswithgetattrprint)sourcessymbolfoundsourcer   r   r    test_core_is_properly_reexported@   s   

r)   clstypeboolc                 C  s*   z
t d| f W dS  ty   Y dS w )z&Check if a class cannot be subclassed.SubclassTesterTF)types	new_class	TypeError)r*   r   r   r   class_is_finalR   s   r1   moduletypes.ModuleTypeonly_publicIterator[types.ModuleType]c                 c  sf    | V  | j  D ]'\}}|dr|rq	t|tsq	|j| js#q	|| u r(q	t||E d H  q	d S )Nr   )__dict__itemsr"   
isinstancer   __name__iter_modules)r2   r4   nameclass_r   r   r   r:   ]   s   
r:   T)r4   c                 C  s   g | ]}|j qS r   )r9   ).0mr   r   r   
<listcomp>p   s    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:DeprecationWarningstrtmp_pathr   c              
     sj  t  }d,dd}|t|} dkr|d tjD ]}t||d tt|u r.|| q| d	krizd
dlm	} W n t
yQ } z
t| W Y d }~nd }~ww | }	|jd us\J |	|j }
||
}n| dkrtjjdkrxtd zd
d l}W n t
y } z
t| W Y d }~nd }~ww |d  d  d}| }|dd |D }n| dkr5tjjdkrtd tstd t d }t  t|d} d dd\}  d d   r|  n|}| r|d }n| d  }| sJ | sJ |  }t!"|# }|dd |d $ D }W d    n	1 s/w   Y  nS| dkrtsBtd  zd
d l%}W n t
y_ } z
t| W Y d }~nd }~ww d
d l&}|j'd!d"  d#gd$d%}t!"|j(} fd&d'|d( d D }nt) || }|dh8 }|rt*|  d)  d* t*  t+|D ]
}t*d+|  qt) d S )-NsymbolsIterable[str]r   set[str]c                 S     dd | D S )Nc                 S     h | ]	}| d s|qS )r   r"   r=   r&   r   r   r   	<setcomp>       zLtest_static_tool_sees_all_symbols.<locals>.no_underscores.<locals>.<setcomp>r   rN   r   r   r   no_underscores   s   z9test_static_tool_sees_all_symbols.<locals>.no_underscoresr   testsrH   r   )PyLinterrI   cpythonjedi does not support pypyzimport ; .c                 s      | ]}|j V  qd S Nr;   r=   cr   r   r   	<genexpr>       z4test_static_tool_sees_all_symbols.<locals>.<genexpr>rJ   mypy does not support pypyz$use --run-slow to check against mypy.mypy_cache*/trior   __init__.data.json
.data.jsonc                 s  s.    | ]\}}| d s|d dkr|V  qdS )r^   kindGdefNrS   )r=   keyvaluer   r   r   rd      s    namesrK   z'use --run-slow to check against pyrightpyrightz--verifytypes=z--outputjsonT)capture_outputc                   s2   h | ]}|d    r|d  t d d qS )r;   r   N)r"   lenr=   xrF   r   r   rU      s    z4test_static_tool_sees_all_symbols.<locals>.<setcomp>typeCompletenessz" can't see the following names in :z    rN   rO   r   rP   ),	importlibimport_moduler!   discard
__future__all_feature_namesr#   removepylint.lintrZ   r   r
   __file__get_astsysimplementationr;   pytestskiprI   Scriptcompleter	   r   cwdr   nextglobsplitis_direxistsis_fileopenjsonloadsreadr7   rq   
subprocessr   stdoutAssertionErrorr$   sorted)rG   rF   rM   r2   rX   runtime_namesr;   rZ   r   linteraststatic_namesrI   scriptcompletionscache
trio_cacher   	mod_cache
cache_file
cache_jsonrq   r   rescurrent_resultmissing_namesr   rv   r   !test_static_tool_sees_all_symbolsw   s   

















r   module_namerI   rJ   c                   s  t t| }dWdd}| dkrtjjdkrtd	 | d
kr*tjjdkr*td | d
krt	 d  t
  t d}|}|d dd\}}|d d }|rV|| n|}| ra|d }n||d  }| smJ | ssJ | }	t|	 }
W d    n1 sw   Y  tjdX fdd}i }|j D ]\}}t|tsq|dkr|ttv rq|dkr|dv rqttt|h dB }t|tu r|d |d |dd t |D | }| dkr*zd d l!}W n t"y
 } z
t#| W Y d }~nd }~ww |$d!| d"| d#| d}|% }|d$d |D | }n\| d
kr|
d% | }d&|vs>J d'||d( }d&|v sKJ |d& }|d)d |&d%d*D }|d+ dd  D ]}||d& }||d,d |&d%d*D O }qd||8 }nt'd-|| }|| }| dkrt(|j)v rtj*d.kr|+d/ | d
krt(|j)v rtj*d.kr|+d0 | d
krt,-|rt.|}d1d2 |D }t.||d ksJ t,-|r|+d3 | d
krt/j0|j)v rtj*d4krtj*d5k r|+d6 | d
kr|t1j2kr|+d7 t1j3d8d9ht1j4d:d;ht1j5h d<t1j6d=ht1j7d>ht1j8d:ht1j9d:ht1j:j;d?d@ht1j:j<h dAi	}| d
krc||v rct.|}||| 8 }t.||t.||  kscJ |t1j=krs|+dB |+dC | dkrtj*d.kr|t1j3t1j>t1j?t1j6t1j8fv r|+dD |+dE |t1j3t1j>fv r|+dF |+dG |t1jt1j@t1jAfv r|tBjC 8 }| d
krtjDdHkr|h dI8 }| dkrtjDdHkr|h dI8 }| dkrtj*d dJ dKkr|t1jt1j@t1jAfv r|+dL tE|tFr|+dM |+dN tj*dKkrt,-|r|+dO tj*d5kr.|GdP |GdQ |s4|r@||dR|| d| < q|rYd dSlHmH} tIdT|  dU| dV || |r^J d S )YNrN   rO   r   rP   c                 S  rQ   )Nc                 S  s$   h | ]}| d r| dr|qS )r   __rS   rT   r   r   r   rU     s    zItest_static_tool_sees_class_members.<locals>.no_hidden.<locals>.<setcomp>r   rW   r   r   r   	no_hidden  s   z6test_static_tool_sees_class_members.<locals>.no_hiddenrI   r[   r\   rJ   rf   rg   rh   r^   r   ri   rj   rk   r&   rL   dict[str, Any]c           	        s   |  d^}}}t d}|| }| s||d  }|rE|d d D ]}|| }q&||d  }| r<|d }n||d d  }n| rM|d }| }t| d | W  d    S 1 sgw   Y  d S )Nr^   z3.*/rk   ri   rj   rp   )r   r   r   r   r   r   r   r   )	r&   topnamerF   r;   versionr   piece
next_cachefr   r   r   lookup_symbol0  s"   


$z:test_static_tool_sees_class_members.<locals>.lookup_symbolztrio.socketztrio.testing)_RaisesGroup_Matcher>   __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__c                 s  s    | ]}|d  V  qdS )r   Nr   rt   r   r   r   rd   t  s    z6test_static_tool_sees_class_members.<locals>.<genexpr>r   zfrom z import r]   c                 s  r_   r`   ra   rb   r   r   r   rd     re   rp   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                 s      | ]
}| d s|V  qdS r^   NrS   r=   kr   r   r   rd         

r   mroc                 s  r   r   rS   r   r   r   r   rd     r   zunknown tool)rA      add_note	__notes__c                 S  rR   )AttrsAttributes__)endswith)r=   er   r   r   rU     rV   z6test_static_tool_sees_class_members.<locals>.<setcomp>__attrs_props__)rA      )rA   rB   __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   )rA      with_segments__reversed____getnewargs____replace____annotate_func____annotations_cache__)missingextra)pprint
z$ can't see the following symbols in rx   ry   )r&   rL   r   r   )JPUBLIC_MODULESPUBLIC_MODULE_NAMESindexr   r   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	functools	lru_cacher6   r7   r8   r+   r!   stdlib_socketsetaddinspect
getmembersrI   r   r
   r   r   getr   BaseException__mro__version_infor   attrshasrs   enumEnumr   NurseryDTLSChannelDTLSEndpointProcessSSLListener	SSLStreamSocketListenerSocketStreamr    MemoryReceiveStreamMemorySendStreamStapledStreamMemoryReceiveChannelMemorySendChannelWindowsPath	PosixPathr   keysplatform
issubclasstupler|   r   r$   )rG   r   rM   r2   r   r   rF   r   r   r   r   r   errors
class_namer<   ignore_namesr   rI   r   r   r   r   cached_type_infor   r&   r   r   beforeEXTRASr   r   r   r   #test_static_tool_sees_class_members   s*  





































r(  c                  C  sD   t tjsJ tD ]} | j D ]}t|tjrt |sJ qq	dS )z6Check all NoPublicConstructor classes are also @final.N)r1   r   NoPublicConstructorALL_MODULESr6   valuesr8   )r2   r<   r   r   r   test_nopublic_is_final!  s   r,  c                  C  s   t trJ t tsJ tD ]N} | j D ]F\}}t|tsq|dr%qt	
|r+qt|jv s5t|jv r6qt|tr<q|tjju sH|tjju rIq|tju rOq|drUqt |s[J qqd S )Nr   
Statistics)r1   objectr,   r   r6   r7   r8   r+   r"   r  
isabstractr   	__bases__Protocol_extr   r  r   abc
Instrumentr   
SocketTyper   r   )r2   r;   r<   r   r   r   test_classes_are_final+  s.   





r5  trio_moddedzPytest plugin not installed.c                  C  s\   t D ])} | j D ]!}t|sq	t|tjrq	dd t|D }|g ks*J |q	qdS )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`.
    c                 S  s6   g | ]}|j r|j|j|jd i dfvr|qS )trio_original_argsalias)initr8  r;   metadatar  )r=   attrr   r   r   r?   f  s    z;test_pyright_recognizes_init_attributes.<locals>.<listcomp>N)	r   r6   r+  r  r  r8   r   r)  fields)r2   r<   
attributesr   r   r   'test_pyright_recognizes_init_attributesT  s   
r>  )r   r   )r*   r+   r   r,   )r2   r3   r4   r,   r   r5   )rG   rL   rF   rL   rM   r   r   r   )rG   rL   r   rL   rM   r   r   r   )<r}   r   r  r   rz   r  r   r   r  r   r.   pathlibr   r   r   typingr   r   r   r  r   r   trio.testingtrio._tests.pytest_pluginr	   r
    r   r   _core._tests.tutilr   collections.abcr   r   r   typing_extensionsr1  r   r   r)   r1   r:   listr   r*  r   markredistributors_should_skipskipifr
  releaselevelparametrizefilterwarningsr   r(  r,  r5  hasattrfieldr>  r   r   r   r   <module>   s    




q
  


)