a
    (ñ»j«  ã                   @  sl  U d dl mZ d dlZd dlZd dlmZmZ d dlZd dlZd dl	m
Z
 er^d dlmZmZ ejdddœd	d
„ƒZddddœdd„Zejjejdkdd�ddœdd„ƒZejjejdkdd�ddœdd„ƒZdddœdd„Zddœdd„Zeeej eej f Zeeee f ZejejfejejfejejfgZded < ej d!e¡d"d"dd#œd$d%„ƒZ ejejfejejfejefeejfgZ!d&ed'< ej d!e!¡d(d(dd#œd)d*„ƒZ"ej d!ejejfejejfg¡ej d
g d+¢¡d"d"ddd,œd-d.„ƒƒZ#dddœd/d0„Z$dddœd1d2„Z%ej d3d4d5g¡ddd6œd7d8„ƒZ&dddœd9d:„Z'ej d3d;d<g¡ddd6œd=d>„ƒZ(dddd?œd@dA„Z)dddœdBdC„Z*dddœdDdE„Z+ddœdFdG„Z,ej dHejj-ejj.g¡ddIddJœdKdL„ƒZ/ddœdMdN„Z0dddœdOdP„Z1dddœdQdR„Z2dddœdSdT„Z3dddœdUdV„Z4ddœdWdX„Z5ej dYej6j7ej6j8ej6j9ej6j:g¡dZdd[œd\d]„ƒZ;dS )^é    )ÚannotationsN)ÚTYPE_CHECKINGÚUnion)ÚAsyncIOWrapper)Ú	AwaitableÚCallablezpathlib.Pathz	trio.Path)Útmp_pathÚreturnc                 C  s   t  | d ¡S )NÚtest)ÚtrioÚPath)r   © r   ú;E:\soccer\ml_env\Lib\site-packages\trio/_tests/test_path.pyÚpath   s    r   Ústrz<tuple[Callable[[], object], Callable[[], Awaitable[object]]])r   Úmethod_namer	   c                 C  s(   t  | ¡}t | ¡}t||ƒt||ƒfS ©N)Úpathlibr   r   Úgetattr)r   r   Z	sync_pathZ
async_pathr   r   r   Úmethod_pair   s    

r   ÚntzOS is not posix)ÚreasonÚNone©r	   c                   C  s   t t ¡ tjƒsJ ‚d S r   )Ú
isinstancer   r   Ú	PosixPathr   r   r   r   Útest_instantiate_posix   s    r   zOS is not Windowsc                   C  s   t t ¡ tjƒsJ ‚d S r   )r   r   r   ÚWindowsPathr   r   r   r   Útest_instantiate_windows#   s    r   )r   r	   c              	   Ã  s`   |   d¡I d H 4 I d H š$}t|tƒs(J ‚W d   ƒI d H  qR1 I d H sH0    Y  |js\J ‚d S ©NÚw)Úopenr   r   Úclosed©r   Úfr   r   r   Ú"test_open_is_async_context_manager(   s    8r%   c                  C  s.   t  d¡} t| ƒdksJ ‚t| ƒdks*J ‚d S )Nr
   s   test)r   r   r   Úbytes©r   r   r   r   Ú
test_magic/   s    
r(   z+list[tuple[EitherPathType, EitherPathType]]Ú	cls_pairs)Úcls_aÚcls_bÚEitherPathType)r*   r+   r	   c                 C  sp   | dƒ|dƒ }}||ksJ ‚||kr*J ‚| dƒ|dƒ }}||k sHJ ‚||ksTJ ‚|d kr`J ‚|d krlJ ‚d S )NÚ ÚaÚbr   )r*   r+   r.   r/   r   r   r   Útest_cmp_magic?   s    r0   z)list[tuple[PathOrStrType, PathOrStrType]]Úcls_pairs_strÚPathOrStrTypec                 C  sH   | dƒ|dƒ }}|| }t |tjƒs*J ‚t|ƒtj dd¡ksDJ ‚d S )Nr.   r/   )r   r   r   r   Úosr   Újoin)r*   r+   r.   r/   Úresultr   r   r   Útest_div_magicZ   s    r6   )Úfoozfoo/bar/bazz./foo)r*   r+   r   r	   c                 C  s*   | |ƒ||ƒ }}t |ƒt |ƒks&J ‚d S r   )Úhash)r*   r+   r   r.   r/   r   r   r   Útest_hash_magicd   s    
r9   c                 C  s"   dt | ƒv sJ ‚| jdksJ ‚d S )NÚnamer
   )Údirr:   r'   r   r   r   Útest_forwarded_propertiesr   s    r<   c                 C  sH   | j jdksJ ‚| j jdks J ‚| j jd us0J ‚| j j| j jv sDJ ‚d S )NÚresolvezPath.resolve)r=   Ú__name__Ú__qualname__Ú__doc__r'   r   r   r   Útest_async_method_signaturey   s    rA   r   Úis_dirÚis_file)r   r	   c                 Ã  s0   t d| ƒ\}}|ƒ }|ƒ I d H }||ks,J ‚d S ©NÚ.)r   ©r   ÚmethodZasync_methodr5   Zasync_resultr   r   r   Útest_compare_async_stat_methodsƒ   s    rH   c                 C  s8   t  t¡� t| dƒ W d   ƒ n1 s*0    Y  d S )NZinvalid_fake_attr)ÚpytestÚraisesÚAttributeErrorr   r'   r   r   r   Útest_invalid_name_not_wrapped�   s    rL   Úabsoluter=   c                 Ã  sH   t d| ƒ\}}|ƒ }|ƒ I d H }t|tjƒs0J ‚t|ƒt|ƒksDJ ‚d S rD   )r   r   r   r   r   rF   r   r   r   Útest_async_methods_rewrap’   s
    rN   )r   r   r	   c                 C  sX   |   d¡}|  d¡}t|tjƒs$J ‚||d ks4J ‚t|tjƒsDJ ‚||d ksTJ ‚d S )Nr7   z.pyztest.py)Ú	with_nameÚwith_suffixr   r   r   )r   r   rO   rP   r   r   r   Útest_forward_methods_rewrap�   s    

rQ   c                 C  s   t | jtjƒsJ ‚d S r   )r   Úparentr   r   r'   r   r   r   Útest_forward_properties_rewrap§   s    rS   c                 C  s   dt |  d¡ƒv sJ ‚d S )Nztotally-unique-path)r   Újoinpathr'   r   r   r   Ú#test_forward_methods_without_rewrap«   s    rU   c                  C  s   t  d¡} t| ƒdksJ ‚d S )NrE   ztrio.Path('.'))r   r   Úreprr'   r   r   r   Ú	test_repr¯   s    
rW   Úmethz(Callable[[trio.Path, trio.Path], object])r   rX   r	   c                 Ã  s4   |   ¡ I d H }|| |ƒ}|d u r$| }||ks0J ‚d S r   )rM   )r   rX   Úwrappedr5   r   r   r   Útest_path_wraps_pathµ   s
    
rZ   c                   C  s8   t  t¡� t d¡ W d   ƒ n1 s*0    Y  d S )Né   )rI   rJ   Ú	TypeErrorr   r   r   r   r   r   Útest_path_nonpathÂ   s    r]   c              	   Ã  s^   t  | d¡I d H 4 I d H š*}|jt | ¡ks0J ‚W d   ƒI d H  qZ1 I d H sP0    Y  d S r   )r   Ú	open_filer:   r3   Úfspathr#   r   r   r   Útest_open_file_can_open_pathÇ   s    r`   c                 Ã  s  |   ¡ I d H  | d   ¡ I d H  | d d  d¡I d H  | d  d¡I d H  | d  d¡I d H  dhddhdœ ¡ D ]L\}}tƒ }|  |¡I d H D ] }t|tjƒs¦J ‚| |j	¡ q’||kstJ ‚qttƒ }|  
d¡I d H D ] }t|tjƒsìJ ‚| |j	¡ qØ|ddhk�sJ ‚d S )Nr7   z_bar.txtó    úbar.txtzbar.dat)ú*.txtz**/*.txtrc   )ÚmkdirÚwrite_bytesÚitemsÚsetÚglobr   r   r   Úaddr:   Úrglob)r   Z_patternZ_resultsÚentriesÚentryr   r   r   Útest_globmethodsÌ   s$    þrm   c                 Ã  s&   | j  ¡ I d H } |  ¡  d¡s"J ‚d S )Nzfile:///)rR   r=   Úas_uriÚ
startswithr'   r   r   r   Útest_as_urié   s    rp   c                 Ã  s~   |   ¡ I d H  | d   ¡ I d H  | d  d¡I d H  tƒ }|  ¡ I d H D ] }t|tjƒs\J ‚| |j¡ qH|ddhkszJ ‚d S )Nr7   rb   ra   )	rd   re   rg   Úiterdirr   r   r   ri   r:   )r   rk   rl   r   r   r   Útest_iterdirï   s    rr   c                   Ã  sr   t tj ¡ I d H tjƒsJ ‚ttj ¡ I d H ƒtj d¡ks@J ‚ttj ¡ I d H ƒt 	¡ ks`J ‚tjjj
snJ ‚d S )Nú~)r   r   r   Úhomer   r3   r   Ú
expanduserÚcwdÚgetcwdr@   r   r   r   r   Útest_classmethodsý   s    $ rx   Úwrapperz2Callable[[Callable[[], None]], Callable[[], None]])ry   r	   c                 C  s$   | ddœdd„ƒ}|j d u s J ‚d S )Nr   r   c                   S  s   d S r   r   r   r   r   r   Úfunc_without_docstring  s    z@test_wrapping_without_docstrings.<locals>.func_without_docstring)r@   )ry   rz   r   r   r   Ú test_wrapping_without_docstrings  s    r{   )<Ú
__future__r   r3   r   Útypingr   r   rI   r   Ztrio._file_ior   Úcollections.abcr   r   Zfixturer   r   ÚmarkZskipifr:   r   r   r%   r(   Útyper   r,   r   r2   r)   Ú__annotations__Zparametrizer0   r1   r6   r9   r<   rA   rH   rL   rN   rQ   rS   rU   rW   Ú__init__rT   rZ   r]   r`   rm   rp   rr   rx   Ú_pathZ_wraps_asyncZ_wrap_methodZ_wrap_method_pathZ_wrap_method_path_iterabler{   r   r   r   r   Ú<module>   s„   	


ý

ü	þ	
	

üþ	