
    n&ph"                     "   S SK r S SKrS SKJr  S SKrS SKJr  S SKJr  S SK	J
r
  S SKJr  S rS rS	 r " S
 S5      r\R"                  R%                  SSS0SSS4SS0SSS40 SSS40 SSS4/5      S 5       r\R"                  R%                  SS/SS .SS!14SS"/SS .1 S#k4S$S%01 S&k40 1 S&k4/5      S' 5       r\R"                  R%                  S(S)S*/S/0 4S)S+/S/0 4S,S-/S/SS04S,S./S/SS04S/S0/S1S2/S3S4S5.4S,S+/SS/S6S704/5      S8 5       rg)9    N)Path)	is_static)expand)find_package_path)DistutilsOptionErrorc                     U R                  5        H3  u  p#X-  nUR                  R                  SSS9  UR                  USS9  M5     g )NT)exist_okparentszutf-8)encoding)itemsparentmkdir
write_text)filesroot_dirfilecontentpaths        V/var/www/html/venv/lib/python3.13/site-packages/setuptools/tests/config/test_expand.pywrite_filesr      sB    46'2 '    c                    1 Skn[        U Vs0 s H  o3S_M     snU 5        / SQnUR                  U 5        [        [        R                  " U5      5      U:X  d   e[        [        R                  " X@5      5      U:X  d   eg s  snf )N>   a.inib.ini
dir1/c.inidir1/file3.txtdir1/dir2/a.inidir1/dir2/file2.txtdir1/dir2/dir3/file1.txt )z**/*.txtz[ab].*z**/[ac].ini)r   chdirsetr   glob_relative)tmp_pathmonkeypatchr   kpatternss        r   test_glob_relativer(      sz    E &1B&14Hhv##H-.%777v##H78EAAA 's   Bc                    U S-  nU S-  R                  SS9  U S-  R                  5         SSSS	.n[        X25        [        [	        U5      S
-   5      nUR                  SS9  [        SS0U5        UR                  5        nUR                  U5        [        R                  " [        U5      5      S:X  d   eSn[        R                  " [        US9   [        R                  " S/5        S S S 5        Sn[        R                  " [        US9   [        R                  " S/5        S S S 5        S S S 5        [        R                  " [        U5      U5      S:X  d   e[        R                  " [        WS9   [        R                  " S/U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)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   r0   mcannot_access_msgcannot_access_secrets_msgs           r   test_read_filesr<   (   s   fDt, EE3t9y()GMM4M .8				!	  e-:::<]]/7HIzl+ J %F!]]/7PQ;<= R 
 T%[$/9<<<	+3D	E:,- 
F	E JI RQ 
	 
F	EsI    AF8F*#F8F'%F84G	
F$	 F8'
F5	1F88
G	
Gc                       \ rS rSr\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                  SSS/5      S 5       r	\R
                  R                  S/ S	Q5      S
 5       r
S rSrg)TestReadAttrE   example)s'   __version__ = 'é'
raise SystemExit(1)
s?   # -*- coding: utf-8 -*-
__version__ = 'é'
raise SystemExit(1)
s?   # -*- coding: latin1 -*-
__version__ = ''
raise SystemExit(1)
c                 b    US-  R                  U5        [        R                  " SUS9S:X  d   eg )Nzmod.pyzmod.__version__r      é)write_bytesr   	read_attr)selfr@   r$   s      r   test_read_attr_encoding_cookie+TestReadAttr.test_read_attr_encoding_cookieF   s3     
H	))'2 1HEMMMr   c                     SSSS.n[        X15        UR                  5        nUR                  U5        [        R                  " S5      n[        R                  " SSS05      nS S S 5        WS	:X  d   e[        W5      (       d   eUS
   S:X  d   eUS   S1:X  d   e[        U5      (       d   e[        R                  " SUS9S	:X  d   e[        R                  " SSS0U5      nUS   S:X  d   eg ! , (       d  f       N= f)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   r.   *   rB   r/   )r      rP   )r   r4   r!   r   rE   r   )rF   r$   r%   r   r9   versionvaluess          r   test_read_attrTestReadAttr.test_read_attrT   s   !#6S	
 	E$  "aGGH&&'89G%%&6	8JKF	 # '!!!    c{ac{rd"""      1HEPPP!!"2UI4FQc{i'''! #"s   AC//
C=z3VERSION: str
VERSION = '0.1.1'
raise SystemExit(1)
z+VERSION: str = '0.1.1'
raise SystemExit(1)
c                     SUS.n[        X15        [        R                  " SUS9nUS:X  d   e[        U5      (       d   eg )Nr    rJ   rK   rL   rB   rN   )r   r   rE   r   )rF   r$   r@   r   rQ   s        r   test_read_annotated_attr%TestReadAttr.test_read_annotated_attrp   sM      "#*
 	E$""#4xH'!!!!!!!r   )zVERSION = (lambda: '0.1.1')()
z(def fn(): return '0.1.1'
VERSION = fn()
z#VERSION: str = (lambda: '0.1.1')()
c                     SUS.n[        XA5        UR                  U5        [        R                  " S5      nUS:X  d   e[	        U5      (       a   eg )Nr    rV   rL   rN   )r   r!   r   rE   r   )rF   r$   r%   r@   r   rQ   s         r   test_read_dynamic_attr#TestReadAttr.test_read_dynamic_attr   s\      "#*
 	E$(#""#45'!!!W%%%%%r   c                 l    SSSS.n[        X!5        SnSS0n[        R                  " X4U5      S:X  d   eg	)
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   rE   )rF   r$   r   	attr_descpackage_dirs        r   test_import_orderTestReadAttr.test_import_order   sH     $XT 0

 	E$'	5k	ATIIIr    N)__name__
__module____qualname____firstlineno__r7   markparametrizerG   rS   rW   rZ   rb   __static_attributes__rd   r   r   r>   r>   E   s    [[	
	N	N(8 [[D;	
	"	" [[	
	&	&Jr   r>   )ra   r   modulereturn_valuer    r^   r]   zpkg.mainrO   pkgrM   zlib/main.py   zsingle_module.pysingle_moduleF   zflat_layout/pkg.pyzflat_layout.pkgiD  c                     U R                  [        S0 5        USU 30n[        Xa5        [        R                  " U S3X!5      nU" 5       R                  5       U:X  d   eg )Nmodulesz,class Custom:
    def testing(self): return z.Custom)setattrsysr   r   resolve_classtesting)r%   r$   ra   r   rl   rm   r   clss           r   test_resolve_classry      s_     Y+B<.QRE 


&1;
IC5==?l***r   )argspkgs.F)where
namespacesotherdir1>   rn   dir2r   r~   T>   rn   r   r   	dir1.dir2c                 R   1 Skn[        U Vs0 s H  oDS_M     snU 5        0 nXS.UEnUR                  SS/5      n[        [        R                  " S0 UD65      U:X  d   eU H5  n[        XU 5      n	[        R                  R                  U	5      (       a  M5   e   UR                  SS/5       V
s/ s H<  n
[        X
-  R                  5       5      R                  [        R                  S5      PM>     nn
[        [        R                  " SSU0UD65      U:X  d   eg s  snf s  sn
f )N>   rJ   other/__init__.pydir1/dir2/__init__.pyr    )r   fill_package_dirr}   r|   /rd   )r   getr"   r   find_packagesr   osr   existspopr3   resolvereplacesep)r$   rz   r{   r   r&   ra   kwargsr}   rn   pkg_pathps              r   test_find_packagesr      s   E
 &1B&1K"LtLFJJw&Ev##-f-.$666$Sx@ww~~h''''  'C5))A 	X\""$%--bffc:) 
 
 v##8%8489TAAA! 's   D2AD$)r   r}   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                 h   [        U Vs0 s H  oDS_M     snU 5        0 nXSS.n[        R                  " SSU0UD6n[        UR	                  5       5      [        UR	                  5       5      :X  d   eU H5  n[        XU 5      n	[        R                  R                  U	5      (       a  M5   e   g s  snf )Nr    F)r   r   r~   r}   rd   )	r   r   r   r"   r   r   r   r   r   )
r$   r   r}   r   r&   pkg_dirr   r{   rn   r   s
             r   test_fill_package_dirr      s    ( &1B&1G"uUF6e6v6Dw}}3';'A'A'C#DDDD$S8<ww~~h''''  's   B/)r   ru   pathlibr   r7   setuptools._staticr   setuptools.configr   setuptools.discoveryr   distutils.errorsr   r   r(   r<   r>   ri   rj   ry   r   r   rd   r   r   <module>r      s   	 
   ( $ 2 13B&.:aJ aJH 5
e'R8

B7	"5	!#4c:	++ 5	.0@A=	68PQ
	DE	23	BB2 .
o	.r:
0	1C5"=
 "5	6"eM
 "8	9E7RKP$&=>V +6	
 $%78CLZ 	
&('&(r   