
    ʨsg                        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 Zd Zd Z G d	 d
      Zej                  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        Zej                  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&        Zej                  j!                  d'd(d)gdgi fd(d*gdgi fd+d,gdgddifd+d-gdgddifd.d/gd0d1gd2d3d4fd+d*gddgd5d6ifg      d7        Zy)8    N)Path)expand)find_package_path)DistutilsOptionErrorc                     | j                         D ]:  \  }}||z  }|j                  j                  dd       |j                  |d       < y )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.12/site-packages/setuptools/tests/config/test_expand.pywrite_filesr      sK     3g$46'23    c                    h d}t        |D ci c]  }|d c}|        g d}|j                  |        t        t        j                  |            |k(  sJ t        t        j                  ||             |k(  sJ y c c}w )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 &1B&14Hhv##H-.%777v##Hh78EAAA 's   
A=c                    | dz  }| dz  j                  d       | dz  j                          dddd	}t        ||       t        t	        |      d
z         }|j                  d       t        ddi|       |j                         5 }|j                  |       t        j                  t        |            dk(  sJ d}t        j                  t        |      5  t        j                  dg       d d d        d}t        j                  t        |      5  t        j                  dg       d d d        d d d        t        j                  t        |      |      dk(  sJ t        j                  t              5  t        j                  dg|       d d d        y # 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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   r/   mcannot_access_msgcannot_access_secrets_msgs           r   test_read_filesr;   '   s   fDt, EEt3t9y()GMM4M .8				 
>!	  e-:::<]]/7HI 	,zl+	, %F!]]/7PQ 	>;<=	>
> T%[$/9<<<	+3D	E .:,-. .	, 	,	> 	>
> 
>. .sI   AF4F0%F4F(,F4;G F%	!F4(F1	-F44F= G	c                       e Zd Zej                  j                  dg d      d        Zd Zej                  j                  dddg      d        Zd Z	y	)
TestReadAttrexample)s'   __version__ = 'é'
raise SystemExit(1)
s?   # -*- coding: utf-8 -*-
__version__ = 'é'
raise SystemExit(1)
s?   # -*- coding: latin1 -*-
__version__ = ''
raise SystemExit(1)
c                 d    |dz  j                  |       t        j                  d|      dk(  sJ y )Nzmod.pyzmod.__version__r      é)write_bytesr   	read_attr)selfr>   r#   s      r   test_read_attr_encoding_cookiez+TestReadAttr.test_read_attr_encoding_cookieE   s3     
H	))'2 1HEMMMr   c                    dddd}t        ||       |j                         5 }|j                  |       t        j                  d      dk(  sJ t        j                  ddd	i      }d d d        d
   dk(  sJ |d   dhk(  sJ t        j                  d|      dk(  sJ t        j                  ddd	i|      }|d   dk(  sJ y # 1 sw Y   ^xY w)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.VERSION0.1.1zlib.mod.VALUESlibzpkg/subr,   r   r-   *   r@   r.   )r      rM   )r   r3   r    r   rC   )rD   r#   r$   r   r8   valuess         r   test_read_attrzTestReadAttr.test_read_attrS   s    !#6S	
 	E8$  " 	LaGGH##$56'AAA%%&6	8JKF		L c{ac{rd"""  1HEPPP!!"2UI4FQc{i'''	L 	Ls   ACCz3VERSION: str
VERSION = '0.1.1'
raise SystemExit(1)
z+VERSION: str = '0.1.1'
raise SystemExit(1)
c                 ^    d|d}t        ||       t        j                  d|      dk(  sJ y )Nr   )rG   rH   rI   r@   rJ   r   r   rC   )rD   r#   r>   r   s       r   test_read_annotated_attrz%TestReadAttr.test_read_annotated_attrk   s9      "#*
 	E8$ 1HEPPPr   c                 l    dddd}t        ||       d}ddi}t        j                  |||      dk(  sJ y	)
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42NrQ   )rD   r#   r   	attr_descpackage_dirs        r   test_import_orderzTestReadAttr.test_import_order{   sL     $XT 0

 	E8$'	5k	;ATIIIr   N)
__name__
__module____qualname__r6   markparametrizerE   rO   rR   rY    r   r   r=   r=   D   sk    [[	
	N	N(0 [[D;	
QQJr   r=   )rX   r   modulereturn_valuer   rU   rT   zpkg.mainrL   pkgrK   zlib/main.py   zsingle_module.pysingle_moduleF   zflat_layout/pkg.pyzflat_layout.pkgiD  c                     | j                  t        di        |d| i}t        ||       t        j                  | d||      } |       j                         |k(  sJ y )Nmodulesz,class Custom:
    def testing(self): return z.Custom)setattrsysr   r   resolve_classtesting)r$   r#   rX   r   r`   ra   r   clss           r   test_resolve_classrm      sc     Y+B<.QREx 


&1;
IC5==?l***r   )argspkgs.F)where
namespacesotherdir1>   rb   dir2rs   rr   T>   	dir1.dir2rb   rt   rs   c                 8   h d}t        |D ci c]  }|d c}|        i }| |d|}|j                  ddg      }t        t        j                  di |      |k(  sJ |D ]0  }t        |||       }	t        j                  j                  |	      r0J  |j                  ddg      D 
cg c]<  }
t        | |
z  j                               j                  t        j                  d      > }}
t        t        j                  dd|i|      |k(  sJ y c c}w c c}
w )N>   other/__init__.pydir1/dir2/__init__.pyrG   r   )r   fill_package_dirrq   rp   /r_   )r   getr!   r   find_packagesr   osr   existspopr2   resolvereplacesep)r#   rn   ro   r   r%   rX   kwargsrq   rb   pkg_pathps              r   test_find_packagesr      s   E
 &1B&1K"LtLFJJw&Ev##-f-.$666 ($S+x@ww~~h'''( 'C5) 	X\""$%--bffc:E 
 v##8%8489TAAA! 's   
D)AD)r   rq   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                 V   t        |D ci c]  }|d c}|        i }| |dd}t        j                  dd|i|}t        |j	                               t        |j	                               k(  sJ |D ]0  }t        |||       }	t        j                  j                  |	      r0J  y c c}w )Nr   F)r   rz   rr   rq   r_   )	r   r   r}   r!   r   r   r~   r   r   )
r#   r   rq   r   r%   pkg_dirr   ro   rb   r   s
             r   test_fill_package_dirr      s    ( &1B&1G"uUF6e6v6Dw}}3';'A'A'C#DDDD ($S'8<ww~~h'''( 's   
B&)r~   ri   pathlibr   r6   setuptools.configr   setuptools.discoveryr   distutils.errorsr   r   r'   r;   r=   r]   r^   rm   r   r   r_   r   r   <module>r      s   	 
   $ 2 13B&.:HJ HJV 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   