K i" "ddlZddlZddlmZddlZddlmZddlmZddl m Z ddl m Z dZ dZd ZGd d Zej"j%d d didddfddidddfidddfidddfgdZej"j%ddgdd dd!hfdd"gdd hd#fd$d%ihd&fihd&fgd'Zej"j%d(d)d*gdgifd)d+gdgifd,d-gdgd difd,d.gdgd difd/d0gd1d2gd3d4d5fd,d+gddgd6d7ifgd8Zy)9N)Path) is_static)expand)find_package_path)DistutilsOptionErrorc|jD]:\}}||z }|jjdd|j|d<y)NT)exist_okparentszutf-8)encoding)itemsparentmkdir write_text)filesroot_dirfilecontentpaths i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/setuptools/tests/config/test_expand.py write_filesrsK3 g$ 46 '23chd}t|Dcic]}|dc}|gd}|j|ttj||k(sJttj|||k(sJycc}w)N>a.inib.ini dir1/c.inidir1/file3.txtdir1/dir2/a.inidir1/dir2/file2.txtdir1/dir2/dir3/file1.txt)z**/*.txtz[ab].*z **/[ac].ini)rchdirsetr glob_relative)tmp_path monkeypatchrkpatternss rtest_glob_relativer(sz E&1B&14Hh v##H- .% 77 7 v##Hh7 8E AA A 's A=c|dz }|dz jd|dz jdddd }t||tt |d z}|jdtd d i||j 5}|j |tjt|d k(sJd}tjt|5tjdgdddd}tjt|5tjdgddddddtjt||d k(sJtjt5tjdg|dddy#1swYxYw#1swY}xYw#1swYxYw#1swYyxYw)Ndir__dirT)r a.txtabc)r,z dir1/b.txtzdir1/dir2/c.txtsecretsz secrets.txtz secret keysza b czCannot access '.*\.\..a\.txt')matchz../a.txtzCannot access '.*secrets\.txt'z../dir_secrets/secrets.txt) rtouchrrstrcontextr!r read_fileslistpytestraisesr)r$r%r*rr0mcannot_access_msgcannot_access_secrets_msgs rtest_read_filesr<(s f D t,   EEt3t9y()G MM4M  .8     >!    e-:::< ]]/7H I ,   zl + ,%F! ]]/7P Q >   ;< = > >   T%[$ /9 << < +3D E.:,-.. , , > > > >..sIAF4F0%F4F(,F4;GF% !F4(F1 -F44F=G ceZdZejj dgddZdZejj dddgdZejj dgdd Z d Z y ) TestReadAttrexample)s'__version__ = 'é' raise SystemExit(1) s?# -*- coding: utf-8 -*- __version__ = 'é' raise SystemExit(1) s?# -*- coding: latin1 -*- __version__ = '' raise SystemExit(1) cd|dz j|tjd|dk(sJy)Nzmod.pyzmod.__version__ré) write_bytesr read_attr)selfr?r$s rtest_read_attr_encoding_cookiez+TestReadAttr.test_read_attr_encoding_cookieFs3 H ))'2 1HEMMMrcdddd}t|||j5}|j|tjd}tjdddi}dddd k(sJt sJ|d d k(sJ|d d hk(sJt |sJtjd|d k(sJtjdddi|}|ddk(sJy#1swYxYw)Nr zVERSION = '0.1.1'z@VALUES = {'a': 0, 'b': {42}, 'c': (0, 1, 1)} raise SystemExit(1))pkg/__init__.pypkg/sub/__init__.pyzpkg/sub/mod.pypkg.sub.VERSIONzlib.mod.VALUESlibzpkg/sub0.1.1r-rr.*rAr/)rrN)rr4r!rrDr)rEr$r%rr9versionvaluess rtest_read_attrzTestReadAttr.test_read_attrTs!#6S   E8$  " La GGH &&'89G%%&6 8JKF  L '!!!   c{ac{rd"""    1HEPPP!!"2UI4FQc{i'''! L Ls ?C  C)z3VERSION: str VERSION = '0.1.1' raise SystemExit(1) z+VERSION: str = '0.1.1' raise SystemExit(1) c|d|d}t||tjd|}|dk(sJt|sJy)Nr rHrIrJrArL)rrrDr)rEr$r?rrOs rtest_read_annotated_attrz%TestReadAttr.test_read_annotated_attrpsL "#*  E8$""#4xH'!!!!!!r)zVERSION = (lambda: '0.1.1')() z(def fn(): return '0.1.1' VERSION = fn() z#VERSION: str = (lambda: '0.1.1')() cd|d}t|||j|tjd}|dk(sJt |rJy)Nr rSrJrL)rr!rrDr)rEr$r%r?rrOs rtest_read_dynamic_attrz#TestReadAttr.test_read_dynamic_attrs[ "#*  E8$(#""#45'!!!W%%%%rcldddd}t||d}ddi}tj|||dk(sJy ) 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 42zversion = '42')zsrc/pkg/__init__.pysrc/pkg/main.pyzsrc/pkg/about.pyzpkg.about.versionr src42N)rrrD)rEr$r attr_desc package_dirs rtest_import_orderzTestReadAttr.test_import_ordersL$XT 0  E8$' 5k  ;ATIIIrN) __name__ __module__ __qualname__r7mark parametrizerFrQrTrVr]rrr>r>Es [[  N N(8 [[ D ;  " " [[  & &Jrr>)r\rmodule return_valuer rYrXzpkg.mainrMpkgrKz lib/main.py zsingle_module.py single_moduleFzflat_layout/pkg.pyzflat_layout.pkgiDc|jtdi|d|i}t||tj|d||}|j |k(sJy)Nmodulesz,class Custom: def testing(self): return z.Custom)setattrsysrr resolve_classtesting)r%r$r\rrdrerclss rtest_resolve_classrqscY+ B<.Q REx   &1; IC 5==?l ** *r)argspkgs.F)where namespacesotherdir1>rfdir2rwrvT> dir1.dir2rfrxrwc8hd}t|Dcic]}|dc}|i}||d|}|jddg}ttjdi||k(sJ|D]0}t |||} t jj| r0J|jddgD cgc]<} t|| z jjt jd>}} ttjdd|i||k(sJycc}wcc} w)N>other/__init__.pydir1/dir2/__init__.pyrHr )rfill_package_dirrurt/rc)rgetr"r find_packagesrosrexistspopr3resolvereplacesep) r$rrrsrr&r\kwargsrurfpkg_pathps rtest_find_packagesrs E &1B&1K" Lt LF JJw &E v##-f- .$ 66 6($S+x@ww~~h'''('C5)   X\ " " $%--bffc: E  v##8%848 9T AA A!' s D)AD)rruexpected_package_dirzpkg1/__init__.pyz pkg1/other.pyzpkg2/__init__.pyzsrc/pkg1/__init__.pyzsrc/pkg1/other.pyzsrc/pkg2/__init__.pyzsrc1/pkg1/__init__.pyzsrc2/pkg2/__init__.pysrc1src2z src1/pkg1z src2/pkg2)pkg1pkg2rzsrc/pkg1cVt|Dcic]}|dc}|i}||dd}tjdd|i|}t|j t|j k(sJ|D]0}t |||} t jj| r0Jycc}w)Nr F)rr~rvrurc) rrrr"r rrrr) r$rrurr&pkg_dirrrsrfrs rtest_fill_package_dirrs(&1B&1G"u UF    6e 6v 6D w}} 3';'A'A'C#D DD D($S'8<ww~~h'''( 's B&)rrmpathlibrr7setuptools._staticrsetuptools.configrsetuptools.discoveryrdistutils.errorsrrr(r<r>rarbrqrrrcrrrs  ($213B&.:aJaJH5 e'R8  B7 "5 !#4c: ++5 .0@A= 68PQ  DE 23 BB2. o .r: 0 1C5"= "5 6"eM "8 9E7RKP $&= > V  + 6 $%7 8 CL Z  &('&(r