o
    5‘ðiå"  ã                   @   s˜  d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ dd„ Zd	d
„ Zdd„ ZG dd„ dƒZej dddidddfddidddfi dddfi dddfg¡dd „ ƒZej d!d"gd#d$œdd%hfd"d&gd#d$œh d'£fd(d)ih d*£fi h d*£fg¡d+d,„ ƒZej d-d.d/gd"gi fd.d0gd"gi fd1d2gdgddifd1d3gdgddifd4d5gd6d7gd8d9d:œfd1d0gdd"gd;d<ifg¡d=d>„ ƒZdS )?é    N)ÚPath)Ú	is_static)Úexpand)Úfind_package_path)ÚDistutilsOptionErrorc                 C   s<   |   ¡ D ]\}}|| }|jjddd� |j|dd� qd S )NT)Úexist_okÚparentszutf-8)Úencoding)ÚitemsÚparentÚmkdirÚ
write_text)ÚfilesÚroot_dirÚfileÚcontentÚpath© r   úb/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/tests/config/test_expand.pyÚwrite_files   s
   ýr   c                 C   s`   h d£}t dd„ |D ƒ| ƒ g d¢}| | ¡ tt |¡ƒ|ks"J ‚tt || ¡ƒ|ks.J ‚d S )N>   úa.iniúb.iniú
dir1/c.iniúdir1/file3.txtúdir1/dir2/a.iniúdir1/dir2/file2.txtúdir1/dir2/dir3/file1.txtc                 S   ó   i | ]}|d “qS ©Ú r   ©Ú.0Úkr   r   r   Ú
<dictcomp>    ó    z&test_glob_relative.<locals>.<dictcomp>)z**/*.txtz[ab].*z**/[ac].ini)r   ÚchdirÚsetr   Úglob_relative)Útmp_pathÚmonkeypatchr   Úpatternsr   r   r   Útest_glob_relative   s   

r+   c              	   C   s‚  | d }| d j dd� | d  ¡  dddd	œ}t||ƒ tt|ƒd
 ƒ}|j dd� tddi|ƒ | ¡ �V}| |¡ t t	|ƒ¡dksGJ ‚d}t
jt|d�� t dg¡ W d   ƒ n1 saw   Y  d}t
jt|d�� t dg¡ W d   ƒ n1 s€w   Y  W d   ƒ n1 s�w   Y  t t	|ƒ|¡dks J ‚t
jt|d�� t dg|¡ W d   ƒ d S 1 sºw   Y  d S )NÚdir_Ú_dirT)r   úa.txtÚaÚbÚc)r.   z
dir1/b.txtzdir1/dir2/c.txtÚsecretszsecrets.txtzsecret keysza
b
czCannot access '.*\.\..a\.txt')Úmatchz../a.txtzCannot access '.*secrets\.txt'z../dir_secrets/secrets.txt)r   Útouchr   r   ÚstrÚcontextr%   r   Ú
read_filesÚlistÚpytestÚraisesr   )r(   r)   r,   r   r2   ÚmÚcannot_access_msgÚcannot_access_secrets_msgr   r   r   Útest_read_files(   s2   


ÿÿ€÷"ÿr>   c                   @   sj   e Zd Zej dg d¢¡dd„ ƒZdd„ Zej dddg¡d	d
„ ƒZej dg d¢¡dd„ ƒZ	dd„ Z
dS )ÚTestReadAttrÚexample)s'   __version__ = 'Ã©'
raise SystemExit(1)
s?   # -*- coding: utf-8 -*-
__version__ = 'Ã©'
raise SystemExit(1)
s?   # -*- coding: latin1 -*-
__version__ = 'é'
raise SystemExit(1)
c                 C   s(   |d   |¡ tjd|d�dksJ ‚d S )Nzmod.pyzmod.__version__©r   õ   Ã©)Úwrite_bytesr   Ú	read_attr)Úselfr@   r(   r   r   r   Útest_read_attr_encoding_cookieF   s   z+TestReadAttr.test_read_attr_encoding_cookiec                 C   sä   ddddœ}t ||ƒ | ¡ �}| |¡ t d¡}t dddi¡}W d   ƒ n1 s,w   Y  |d	ks7J ‚t|ƒs=J ‚|d
 dksEJ ‚|d dhksNJ ‚t|ƒsTJ ‚tjd|d�d	ks_J ‚t dddi|¡}|d dkspJ ‚d S )Nr   zVERSION = '0.1.1'z@VALUES = {'a': 0, 'b': {42}, 'c': (0, 1, 1)}
raise SystemExit(1))úpkg/__init__.pyúpkg/sub/__init__.pyzpkg/sub/mod.pyúpkg.sub.VERSIONzlib.mod.VALUESÚlibzpkg/subú0.1.1r/   r   r0   é*   rA   r1   )r   é   rM   )r   r6   r%   r   rD   r   )rE   r(   r)   r   r;   ÚversionÚvaluesr   r   r   Útest_read_attrT   s$   ü



üzTestReadAttr.test_read_attrz3VERSION: str
VERSION = '0.1.1'
raise SystemExit(1)
z+VERSION: str = '0.1.1'
raise SystemExit(1)
c                 C   s>   d|dœ}t ||ƒ tjd|d�}|dksJ ‚t|ƒsJ ‚d S )Nr   ©rG   rH   rI   rA   rK   )r   r   rD   r   )rE   r(   r@   r   rN   r   r   r   Útest_read_annotated_attrp   s   	þ
z%TestReadAttr.test_read_annotated_attr)zVERSION = (lambda: '0.1.1')()
z(def fn(): return '0.1.1'
VERSION = fn()
z#VERSION: str = (lambda: '0.1.1')()
c                 C   sD   d|dœ}t ||ƒ | |¡ t d¡}|dksJ ‚t|ƒr J ‚d S )Nr   rQ   rI   rK   )r   r%   r   rD   r   )rE   r(   r)   r@   r   rN   r   r   r   Útest_read_dynamic_attr‚   s   
þ


z#TestReadAttr.test_read_dynamic_attrc                 C   s<   ddddœ}t ||ƒ d}ddi}t |||¡dksJ ‚d	S )
a*  
        Sometimes the import machinery will import the parent package of a nested
        module, which triggers side-effects and might create problems (see issue #3176)

        ``read_attr`` should bypass these limitations by resolving modules statically
        (via ast.literal_eval).
        z1from .main import func
from .about import versionz2import super_complicated_dep
def func(): return 42zversion = '42')zsrc/pkg/__init__.pyúsrc/pkg/main.pyzsrc/pkg/about.pyzpkg.about.versionr   ÚsrcÚ42N)r   r   rD   )rE   r(   r   Ú	attr_descÚpackage_dirr   r   r   Útest_import_order•   s   	ý
zTestReadAttr.test_import_orderN)Ú__name__Ú
__module__Ú__qualname__r9   ÚmarkÚparametrizerF   rP   rR   rS   rY   r   r   r   r   r?   E   s(    þ

þþ
þ
r?   )rX   r   ÚmoduleÚreturn_valuer   rU   rT   zpkg.mainrL   ÚpkgrJ   zlib/main.pyé   zsingle_module.pyÚsingle_moduleéF   zflat_layout/pkg.pyzflat_layout.pkgiD  c                 C   sP   |   tdi ¡ |d|› �i}t||ƒ t |› d�||¡}|ƒ  ¡ |ks&J ‚d S )NÚmodulesz,class Custom:
    def testing(self): return z.Custom)ÚsetattrÚsysr   r   Úresolve_classÚtesting)r)   r(   rX   r   r_   r`   r   Úclsr   r   r   Útest_resolve_class©   s
   

rk   )ÚargsÚpkgsÚ.F)ÚwhereÚ
namespacesÚotherÚdir1>   ra   Údir2rq   rp   T>   ú	dir1.dir2ra   rr   rq   c           	         s¾   h d£}t dd„ |D ƒˆ ƒ i }ˆ |dœ|¥}| ddg¡}ttjd	i |¤Žƒ|ks,J ‚|D ]}t||ˆ ƒ}tj |¡s>J ‚q.‡ fdd„| 	ddg¡D ƒ}ttjd	d|i|¤Žƒ|ks]J ‚d S )
N>   úother/__init__.pyúdir1/dir2/__init__.pyrG   c                 S   r   r   r   r    r   r   r   r#   É   r$   z&test_find_packages.<locals>.<dictcomp>)r   Úfill_package_dirro   rn   c                    s&   g | ]}t ˆ |  ¡ ƒ tjd ¡‘qS )ú/)r5   ÚresolveÚreplaceÚosÚsep)r!   Úp©r(   r   r   Ú
<listcomp>Ô   s    ÿÿz&test_find_packages.<locals>.<listcomp>r   )
r   Úgetr&   r   Úfind_packagesr   r{   r   ÚexistsÚpop)	r(   rl   rm   r   rX   Úkwargsro   ra   Úpkg_pathr   r~   r   Útest_find_packagesº   s   

þ$r†   )r   ro   Úexpected_package_dirzpkg1/__init__.pyzpkg1/other.pyzpkg2/__init__.pyzsrc/pkg1/__init__.pyzsrc/pkg1/other.pyzsrc/pkg2/__init__.pyzsrc1/pkg1/__init__.pyzsrc2/pkg2/__init__.pyÚsrc1Úsrc2z	src1/pkg1z	src2/pkg2)Úpkg1Úpkg2rŠ   zsrc/pkg1c           	      C   s~   t dd„ |D ƒ| ƒ i }| |ddœ}tjdd|i|¤Ž}t| ¡ ƒt| ¡ ƒks*J ‚|D ]}t||| ƒ}tj |¡s<J ‚q,d S )Nc                 S   r   r   r   r    r   r   r   r#   ð   r$   z)test_fill_package_dir.<locals>.<dictcomp>F)r   rw   rp   ro   r   )	r   r   r�   r&   r
   r   r{   r   r‚   )	r(   r   ro   r‡   Úpkg_dirr„   rm   ra   r…   r   r   r   Útest_fill_package_dirÜ   s   þr�   )r{   rg   Úpathlibr   r9   Úsetuptools._staticr   Úsetuptools.configr   Úsetuptools.discoveryr   Údistutils.errorsr   r   r+   r>   r?   r]   r^   rk   r†   r�   r   r   r   r   Ú<module>   s^    d

üþ
	
üþ
	ýýöþ