
    i"                     6   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 Zd Zd	 Z G 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             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'             Ze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/d0gd1d2gd3d4d5fd,d+gddgd6d7ifg          d8             ZdS )9    N)Path)	is_static)expand)find_package_path)DistutilsOptionErrorc                     |                                  D ]=\  }}||z  }|j                            dd           |                    |d           >d S )NT)exist_okparentszutf-8)encoding)itemsparentmkdir
write_text)filesroot_dirfilecontentpaths        [/srv/django_bis/venv311/lib/python3.11/site-packages/setuptools/tests/config/test_expand.pywrite_filesr      sd     3 3g$4666'22223 3    c                    h d}t          d |D             |            g d}|                    |            t          t          j        |                    |k    sJ t          t          j        ||                     |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                     i | ]}|d S   .0ks     r   
<dictcomp>z&test_glob_relative.<locals>.<dictcomp>        &&&1B&&&r   )z**/*.txtz[ab].*z**/[ac].ini)r   chdirsetr   glob_relative)tmp_pathmonkeypatchr   patternss       r   test_glob_relativer/      s      E &&&&&111444Hhv#H--..%7777v#Hh7788EAAAAAAr   c                    | dz  }| dz                       d           | dz                                   dddd	}t          ||           t          t	          |          d
z             }|                     d           t          ddi|           |                                5 }|                    |           t          j        t          |                    dk    sJ d}t          j        t          |          5  t          j        dg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        dg           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          |          |          dk    sJ t          j        t          |          5  t          j        dg|           d d d            d S # 1 swxY w Y   d S )Ndir__dirT)r	   a.txtabc)r3   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-   r1   r   r7   mcannot_access_msgcannot_access_secrets_msgs           r   test_read_filesrC   (   s   fDt,,,   EEEt3t99y())GMM4M   .888					 
>!	 e--::::<]/7HIII 	, 	,zl+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, %F!]/7PQQQ 	> 	>;<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> T%[[$//9<<<<	+3D	E	E	E . .:,---. . . . . . . . . . . . . . . . . .sm   'AFD#F#D'	'F*D'	+ FE-!F-E1	1F4E1	5FFFG66G:=G:c                       e Zd Zej                            dg d          d             Zd Zej                            dddg          d             Zej                            dg d          d	             Z	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                 n    |dz                       |           t          j        d|          dk    sJ d S )Nzmod.pyzmod.__version__r      é)write_bytesr   	read_attr)selfrF   r,   s      r   test_read_attr_encoding_cookiez+TestReadAttr.test_read_attr_encoding_cookieF   sE     
H	))'222 1HEEEMMMMMMr   c                    dddd}t          ||           |                                5 }|                    |           t          j        d          }t          j        dddi          }d d d            n# 1 swxY w Y   |d	k    sJ t          |          sJ |d
         dk    sJ |d         dhk    sJ t          |          sJ t          j        d|          d	k    sJ t          j        dddi|          }|d         dk    sJ 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.1r4   r   r5   *   rH   r6   )r      rU   )r   r;   r)   r   rK   r   )rL   r,   r-   r   r@   versionvaluess          r   test_read_attrzTestReadAttr.test_read_attrT   s   !#6S	
 
 	E8$$$  "" 	LaGGH&'899G%&6	8JKKF		L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L '!!!!     c{ac{rd""""       1HEEEPPPP!"2UI4FQQc{i''''''s   AA88A<?A<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 t          |          sJ d S )Nr"   rO   rP   rQ   rH   rS   )r   r   rK   r   )rL   r,   rF   r   rV   s        r   test_read_annotated_attrz%TestReadAttr.test_read_annotated_attrp   si      "#*
 
 	E8$$$"#4xHH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                     d|d}t          ||           |                    |           t          j        d          }|dk    sJ t	          |          rJ d S )Nr"   rZ   rQ   rS   )r   r)   r   rK   r   )rL   r,   r-   rF   r   rV   s         r   test_read_dynamic_attrz#TestReadAttr.test_read_dynamic_attr   sx      "#*
 
 	E8$$$(###"#455'!!!!W%%%%%%%r   c                 v    dddd}t          ||           d}ddi}t          j        |||          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   rK   )rL   r,   r   	attr_descpackage_dirs        r   test_import_orderzTestReadAttr.test_import_order   s`     $XT 0
 

 	E8$$$'	5k	;AATIIIIIIr   N)__name__
__module____qualname__r>   markparametrizerM   rX   r[   r]   rd   r#   r   r   rE   rE   E   s        [	
 	
 	
	 	N N	 	N( ( (8 [D;	
 	" 	" 	" [	
 	
 	
 	& 	& 	&J J J J Jr   rE   )rc   r   modulereturn_valuer"   r`   r_   zpkg.mainrT   pkgrR   zlib/main.py   zsingle_module.pysingle_moduleF   zflat_layout/pkg.pyzflat_layout.pkgiD  c                     |                      t          di            |d| i}t          ||           t          j        | d||          } |                                            |k    sJ d S )Nmodulesz,class Custom:
    def testing(self): return z.Custom)setattrsysr   r   resolve_classtesting)r-   r,   rc   r   rj   rk   r   clss           r   test_resolve_classrw      s     Y+++Q<QQREx   

&111;
I
IC355==??l******r   )argspkgs.F)where
namespacesotherdir1>   rl   dir2r}   r|   T>   	dir1.dir2rl   r~   r}   c                     h d}t          d |D                         i } |d|}|                    ddg          }t          t          j        di |          |k    sJ |D ]4}t          ||           }t          j                            |          sJ 5 fd|	                    ddg          D             }t          t          j        dd|i|          |k    sJ d S )N>   other/__init__.pydir1/dir2/__init__.pyrO   c                     i | ]}|d S r!   r#   r$   s     r   r'   z&test_find_packages.<locals>.<dictcomp>   r(   r   )r   fill_package_dirr{   rz   c                     g | ]D}t          |z                                                                t          j        d           ES )/)r:   resolvereplaceossep)r%   pr,   s     r   
<listcomp>z&test_find_packages.<locals>.<listcomp>   sS        	X\""$$%%--bfc::  r   r#   )
r   getr*   r   find_packagesr   r   r   existspop)	r,   rx   ry   r   rc   kwargsr{   rl   pkg_paths	   `        r   test_find_packagesr      s7     E
 &&&&&111K"LLtLFJJw&&Ev#--f--..$6666 ( ($S+x@@w~~h''''''   'C5))  E
 v#88%848899TAAAAAAr   )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                 j   t          d |D             |            i }| |dd}t          j        dd|i|}t          |                                          t          |                                          k    sJ |D ]4}t          |||           }t          j                            |          sJ 5d S )Nc                     i | ]}|d S r!   r#   r$   s     r   r'   z)test_fill_package_dir.<locals>.<dictcomp>   r(   r   F)r   r   r|   r{   r#   )	r   r   r   r*   r   r   r   r   r   )	r,   r   r{   r   pkg_dirr   ry   rl   r   s	            r   test_fill_package_dirr      s    ( &&&&&111G"uUUF66e6v66Dw}}3';'A'A'C'C#D#DDDDD ( ($S'8<<w~~h''''''( (r   )r   rs   pathlibr   r>   setuptools._staticr   setuptools.configr   setuptools.discoveryr   distutils.errorsr   r   r/   rC   rE   rh   ri   rw   r   r   r#   r   r   <module>r      s   				 



        ( ( ( ( ( ( $ $ $ $ $ $ 2 2 2 2 2 2 1 1 1 1 1 13 3 3B B B&. . .:aJ aJ aJ aJ aJ aJ aJ aJH 5
e'R8

B7	"5	!#4c:	 + + + 5	.	.0@A=	6	68P8P8PQ
	DDDE	2223	 B B B2 .
o	.r:
0	1C5"=
 "5	6"eM
 "8	9E7RKP$&=>V +66	
 $%78CLZ 	
 &( (' &( ( (r   