o
    >h@I                     @  s  U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
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
lmZ d	dlmZ ddlmZ ddlmZ de fddddddddfddddddddfddddddddfdddd d!d"d#dffZ!ej"j#d$e!d%d& e!D d'd(d) Z$ej%dd*d+Z&d,d- Z'd.d/ Z(d0d1 Z)d2d3 Z*G d4d5 d5Z+e,d6d7d8d9iie,d7gd:e(d;g d<d8gd=id>e,d?e,d@dAdBe,dCdDedEie,dFdDgfgdGe(d;g d<dDgdHid>e,dIdJedKie,e+dLdIdJgdMgdNe(dOdPdQg d<igid>e,dRdSedTie,dSgdUe(d;dSdQg d<igid>e,dVedWedXdYe,dZd[gd\e(d;dQd]d^d_d`dadZd[gigiid>e,dbdce(d;dQg ddiiededfe,dgdhe
j-diedjdke,dldme
j-dndoe,dpdqdrdsiedtdue,dvdrdwe
j-dxidyedz d{e,d|d}drd~ieddue,dd7dd8d9iiie,d7gdgde(d;ddQg did7d8dd8gigigid>e,ddd8diie,dgdgde(d;ddQg didd8gigid>e,dd7d9dDedidie,d7gddgfgde(d;g d<d8dFdDgigd=id>fZ.de/d< ej"j#de.dd& e.D d'dd Z0dd Z1dd Z2dd Z3dS )zwheel tests    )annotationsN)Anypath	parse_tag)metadata)Wheel   )tempdir)DALS)get_config_var)get_platformzinvalid.whlz&simplewheel-2.0-1-py2.py3-none-any.whlsimplewheelz2.01zpy2.py3noneany)project_nameversionbuild
py_versionabiplatformz$simple.dist-0.1-py2.py3-none-any.whlzsimple.distz0.1z example_pkg_a-1-py3-none-any.whlexample_pkg_apy3z9PyQt5-5.9-5.9.1-cp35.cp36.cp37-abi3-manylinux1_x86_64.whlPyQt5z5.9z5.9.1zcp35.cp36.cp37abi3manylinux1_x86_64filenameinfoc                 C     g | ]}|d  qS )r    .0tr"   r"   {/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/setuptools/tests/test_wheel.py
<listcomp>P       r'   )idsc                   sl   t |r!t| t|  W d    d S 1 sw   Y  d S t|   fdd| D |ks4J d S )Nc                   s   i | ]}|t  |qS r"   )getattr)r$   kwr"   r&   
<dictcomp>X   s    z#test_wheel_info.<locals>.<dictcomp>)inspectisclasspytestraisesr	   keysr   r"   r,   r&   test_wheel_infoO   s   


"r4   c                 k  s    dt d| di}| r||  t )}t|| tjtj	dddf|d t

tj|ddd	 V  W d    d S 1 sBw   Y  d S )
Nsetup.pyz
            # -*- coding: utf-8 -*-
            from setuptools import setup
            import setuptools
            setup(**%r)
            utf-8-qbdist_wheelcwddist*.whlr   )r   encodeupdater   r   r   
subprocess
check_callsys
executableglobosjoin)extra_file_defskwargs	file_defs
source_dirr"   r"   r&   build_wheel[   s$   	
"rJ   c              
   C  sH   t  }t| D ]\}}}|D ]}|tjtj|| | qq|S N)setrD   walkaddr   rE   relpath)rootcontentsdirpathdirnames	filenamesr   r"   r"   r&   tree_sett   s    rU   c                   sr   t  }|  D ]/\ }t|trt|}|D ]}t|tr+| fddt|D O }q|tj | qq|S )z8Flatten nested dicts and lists into a full list of pathsc                   s   h | ]	}t j |qS r"   )rD   r   rE   )r$   valnoder"   r&   	<setcomp>   s    zflatten_tree.<locals>.<setcomp>)	rL   items
isinstancedictflatten_treerN   rD   r   rE   )treeoutputrQ   elemr"   rW   r&   r]   |   s   

r]   c                 C  s   dd | D S )Nc                 S  s.   h | ]}|j t t td ptddqS )
EXT_SUFFIXSO)r   r   	shlib_ext)format	sysconfigget_python_versionr   r   )r$   xr"   r"   r&   rY      s    z&format_install_tree.<locals>.<setcomp>r"   )r^   r"   r"   r&   format_install_tree   s   rh   c                 C  s   t | }tj|| }|| |d ur)t|}t|}	||	s)J ||	 t	j
j|gd\}
|
j	d |ks;J |
j	d |ksDJ |
d|ksMJ d S )Nr   NameVersionrequires.txt)r	   rD   r   rE   egg_nameinstall_as_eggrh   rU   issubsetr   Distributiondiscover	read_text)r   install_dirinstall_tree_includesr   r   requires_txtr-   egg_pathinstall_treeexpr;   r"   r"   r&   _check_wheel_install   s   
rx   c                   @  s   e Zd Zdd ZdddZdS )	Recordc                 K  s   || _ || _d S rK   _id_fields)selfidrG   r"   r"   r&   __init__   s   
zRecord.__init__returnstrc                 C  s   | j  d| jdS )Nz(**)rz   )r}   r"   r"   r&   __repr__   s   zRecord.__repr__N)r   r   )__name__
__module____qualname__r   r   r"   r"   r"   r&   ry      s    ry   basicfoo__init__.py )packagesfoo-1.0-py{py_version}.egg)PKG-INFORECORDWHEELtop_level.txt)EGG-INFOr   r~   rH   setup_kwargsrv   r6   u   Description accentuée)description)r~   r   datazdata.txtz.
                Some data...
                data_dir)
data_files)r   r   	extensionzextension.can  
                #include "Python.h"

                #if PY_MAJOR_VERSION >= 3

                static struct PyModuleDef moduledef = {
                        PyModuleDef_HEAD_INIT,
                        "extension",
                        NULL,
                        0,
                        NULL,
                        NULL,
                        NULL,
                        NULL,
                        NULL
                };

                #define INITERROR return NULL

                PyMODINIT_FUNC PyInit_extension(void)

                #else

                #define INITERROR return

                void initextension(void)

                #endif
                {
                #if PY_MAJOR_VERSION >= 3
                    PyObject *module = PyModule_Create(&moduledef);
                #else
                    PyObject *module = Py_InitModule("extension", NULL);
                #endif
                    if (module == NULL)
                        INITERROR;
                #if PY_MAJOR_VERSION >= 3
                    return module;
                #endif
                }
                zsetuptools.Extension)namesources)ext_modulesz%foo-1.0-py{py_version}-{platform}.eggzextension{shlib_ext}r   headerzheader.hz
                )headersscriptX
                #/usr/bin/python
                print('hello world!')
                N
                #/bin/sh
                echo 'hello world!'
                	script.py	script.shr   r   scriptsr   r   r   r   r   	requires1zfoobar==2.0)r   r   r   rk   r   z%
            foobar==2.0
            )r~   install_requiresrv   rt   	requires2z
        bar
        foo<=2.0; z in sys_platform
        z2
            bar
            foo<=2.0
            )r~   r   rt   	requires3z
        bar; z != sys_platform
        )r~   r   	requires4z
        foo
        extrazfoobar>3zG
            foo

            [extra]
            foobar>3
            )r~   r   extras_requirert   	requires5zfoobar; z != sys_platform
z!
            [extra]
            )r~   r   rt   requires_ensure_orderz9
        foo
        bar
        baz
        qux
        za
            foobar>3
            barbaz>4
            bazqux>5
            quxzap>6
            z
            foo
            bar
            baz
            qux

            [extra]
            foobar>3
            barbaz>4
            bazqux>5
            quxzap>6
            namespace_packagebarzfoo.bar)namespace_packagesr   z foo-1.0-py{py_version}-nspkg.pth)r   r   r   znamespace_packages.txtr   empty_namespace_packagefoobarz7__import__('pkg_resources').declare_namespace(__name__)data_in_packagez>
                        Some data...
                        )r   r   zfoo/data_dirzfoo/data_dir/data.txt)r   r   ztuple[dict[str, Any], ...]WHEEL_INSTALL_TESTSparamsc                 C  r!   )r~   r"   )r$   r   r"   r"   r&   r'   (  r(   c              	   C  s   |  dd}|  dd}|  dg }|  di }|  dd }|  d}|  d	i }|  d
i }td|||||d|-}	t }
t|	|
|||| W d    n1 sTw   Y  W d    d S W d    d S 1 slw   Y  d S )Nr   r   r   1.0r   r   rt   rv   rH   r   r   r   r   r   rF   r"   )getrJ   r   rx   )r   r   r   r   r   rt   rv   rH   r   r   rr   r"   r"   r&   test_wheel_install%  s4   
	Pr   c               
   C  s   d} d}|  d| d}t  Q}tj||}t|d  t  &}tt	 t
||d | |d  W d    n1 s<w   Y  W d    n1 sKw   Y  W d    d S W d    d S 1 scw   Y  d S )N
nodistinfor   -z-py2.py3-none-any.whlr-   )r   rD   r   rE   zipfileZipFilecloser1   r2   
ValueErrorrx   )r   r   
wheel_namerI   
wheel_pathrr   r"   r"   r&   test_wheel_no_dist_dirC  s"   "r   c                 C  s(   dd }|  d| td sJ d S )Nc                   S  s   dd t dD S )Nc                 S  s   h | ]
}|j |j|jfqS r"   )interpreterr   r   r#   r"   r"   r&   rY   T  s    z=test_wheel_is_compatible.<locals>.sys_tags.<locals>.<setcomp>zcp36-cp36m-manylinux1_x86_64r   r"   r"   r"   r&   sys_tagsS  s   z*test_wheel_is_compatible.<locals>.sys_tagsz$setuptools.wheel._get_supported_tagsz2onnxruntime-0.1.2-cp36-cp36m-manylinux1_x86_64.whl)setattrr	   is_compatible)monkeypatchr   r"   r"   r&   test_wheel_is_compatibleR  s   r   c                  C  st  t jddd} tdtdtddtddgd	td
ddddddddgigiid}|dd}|dd}|d}|di }|di }| d||g i |d|[}t ?}t|||||d  t|}	t	
||	  }
|
d d d }| s~J tjdkrtt| jdksJ W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nc                 {  s    dt d| di}| r||  t 6}t|| t|d }t	|d t
jtjdddf|d ttj|d	d
d V  W d    d S 1 sOw   Y  d S )Nr5   z
                # -*- coding: utf-8 -*-
                from setuptools import setup
                import setuptools
                setup(**%r)
                r6   r   i  r7   r8   r9   r;   r<   r   )r   r=   r>   r   r   r   pathlibPathrD   chmodr?   r@   rA   rB   rC   rE   )rF   rG   rH   rI   runshr"   r"   r&   rJ   ^  s(   	
"z$test_wheel_mode.<locals>.build_wheelr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rv   rH   r   r   win320o777rK   r"   )
contextlibcontextmanagerr\   r   r]   r   r   rx   r	   r   r   rl   existsrA   r   octstatS_IMODEst_mode)rJ   r   r   r   rv   rH   r   r   rr   r-   base	script_shr"   r"   r&   test_wheel_mode]  sp   
 
	
Pr   rK   )4__doc__
__future__r   r   rC   r/   rD   r   r   r?   rA   re   r   typingr   r1   jaracor   packaging.tagsr   setuptools._importlibr   setuptools.wheelr	   contextsr   textwrapr   distutils.sysconfigr   distutils.utilr   r   WHEEL_INFO_TESTSmarkparametrizer4   r   rJ   rU   r]   rh   rx   ry   r\   r   r   __annotations__r   r   r   r   r"   r"   r"   r&   <module>   sh   1
	

-D

 
!
    q
