U
    aÊ¹j;K  ã                   @  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mZ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)d™d+d,„ƒZ*d-d.„ Z+d/d0„ Z,d1d2„ Z-d3d4„ Z.G d5d6„ d6ƒZ/e0d7d8d9d:iie0d8gd;�e,d<d=d>d?d@gd9gdAœiƒdB�e0dCe0dDdE�dF�e0dGdHedIƒie0dJdHgfgdK�e,d<d=d>d?d@gdHgdLœiƒdB�e0dMdNedOƒie0e/dPdMdNgdQ�gdR�e,dSdTdUd=d>d?d@gigiƒdB�e0dVdWedXƒie0dWgdY�e,d<dWdUd=d>d?d@gigiƒdB�e0dZed[ƒed\ƒd]œe0d^d_gd`�e,d<dUd=d>d?d@dad^d_gigiiƒdB�e0dbdce,d<dUd=d>d?ddd@giiƒedeƒdf�e0dgdhej1 ediƒdj�e0dkdlej1 dm�e0dndodpdqiedrƒds�e0dtdpduej1 iedvƒdw�e0dxdydpdzied{ƒds�e0d|d8d}d9d:iiie0d8gd~gd�e,d<d€dUd=d>d?d�d@gid8d9d}d9gigigiƒdB�e0d‚dƒd9d„iie0dƒgdƒgd�e,d<d€dUd=d>d?d�d@gidƒd9gigiƒdB�e0d…d8d:dHed†ƒid‡œie0d8gdˆd‰gfgdŠ�e,d<d=d>d?d@gd9dJdHgigdAœiƒdB�fZ2d‹e3dŒ< ej&j'd�e2dŽd'„ e2D ƒd(�d�d�„ ƒZ4d‘d’„ Z5d“d”„ Z6d•d–„ Z7d—d˜„ Z8dS )šzwheel testsé    )ÚannotationsN)ÚAny)Úpath©Ú	parse_tag)Úcanonicalize_name)ÚPY_MAJORÚDistributionÚPathMetadata)ÚWheelé   )Útempdir)ÚDALS)Úget_config_var)Úget_platformzinvalid.whlz&simplewheel-2.0-1-py2.py3-none-any.whlZ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.whlZexample_pkg_aÚpy3z9PyQt5-5.9-5.9.1-cp35.cp36.cp37-abi3-manylinux1_x86_64.whlZPyQt5z5.9z5.9.1zcp35.cp36.cp37Úabi3Zmanylinux1_x86_64©ÚfilenameÚinfoc                 C  s   g | ]}|d  ‘qS )r   © ©Ú.0Útr   r   úZ/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/tests/test_wheel.pyÚ
<listcomp>Q   s     r$   )Zidsc              	     sV   t  |¡r,t |¡� t| ƒ W 5 Q R X d S t| ƒ‰ ‡ fdd„| ¡ D ƒ|ksRt‚d S )Nc                   s   i | ]}|t ˆ |ƒ“qS r   )Úgetattr)r!   Úk©Úwr   r#   Ú
<dictcomp>Y   s      z#test_wheel_info.<locals>.<dictcomp>)ÚinspectÚisclassÚpytestÚraisesr   ÚkeysÚAssertionErrorr   r   r'   r#   Útest_wheel_infoP   s    
r0   c              	   k  sz   dt dƒ|  d¡i}| r$| | ¡ tƒ �F}t ||¡ tjtj	dddf|d� t
 
tj |dd¡¡d	 V  W 5 Q R X 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$    ÿø	÷þ
 ÿrF   c              
   C  sH   t ƒ }t | ¡D ]2\}}}|D ]"}| tj tj || ¡|¡¡ qq|S ©N)Úsetr@   ÚwalkÚaddr   rA   Úrelpath)ÚrootÚcontentsÚdirpathÚdirnamesÚ	filenamesr   r   r   r#   Útree_setu   s
    "rQ   c                   sr   t ƒ }|  ¡ D ]^\‰ }t|tƒr(t|ƒ}|D ]>}t|tƒrV|‡ 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   )r@   r   rA   )r!   Úval©Únoder   r#   Ú	<setcomp>†   s     zflatten_tree.<locals>.<setcomp>)	rH   ÚitemsÚ
isinstanceÚdictÚflatten_treerJ   r@   r   rA   )ÚtreeÚoutputrM   Úelemr   rS   r#   rY   }   s    

rY   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   Z	shlib_ext)Úformatr   r   r   )r!   Úxr   r   r#   rU   �   s   ûýz&format_install_tree.<locals>.<setcomp>r   )rZ   r   r   r#   Úformat_install_treeŒ   s    úra   c                 C  sÂ   t | ƒ}tj || ¡ ¡}| |¡ |d k	rRt|ƒ}t|ƒ}	| |	¡sRt	||	 ƒ‚t
|tj |d¡ƒ}
tj||
d�}|j|ks‚t	‚|j|ks�t	‚|d kr¨| d¡r¾t	‚n|| d¡ ¡ ks¾t	‚d S )NúEGG-INFO)Úmetadataúrequires.txt)r   r@   r   rA   Úegg_nameZinstall_as_eggra   rQ   Úissubsetr/   r
   r	   Úfrom_filenamer   r   Úhas_metadataÚget_metadataÚlstrip)r   Úinstall_dirZinstall_tree_includesr   r   Úrequires_txtr(   Zegg_pathÚinstall_treeÚexprc   r7   r   r   r#   Ú_check_wheel_install—   s    
ro   c                   @  s"   e Zd Zdd„ Zddœdd„ZdS )ÚRecordc                 K  s   || _ || _d S rG   ©Z_idÚ_fields)ÚselfÚidrC   r   r   r#   Ú__init__®   s    zRecord.__init__Ústr)Úreturnc                 C  s   d| j | jf S )Nz%s(**%r)rq   )rs   r   r   r#   Ú__repr__²   s    zRecord.__repr__N)Ú__name__Ú
__module__Ú__qualname__ru   rx   r   r   r   r#   rp   ­   s   rp   ÚbasicÚfooú__init__.pyÚ )Úpackagesúfoo-1.0-py{py_version}.eggúPKG-INFOÚRECORDÚWHEELútop_level.txt)rb   r}   ©rt   rD   Úsetup_kwargsrm   r2   u   Description accentuÃ©e)Údescription)rt   r‡   Údatazdata.txtz.
                Some data...
                Údata_dir)Ú
data_files)rb   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}rb   Úheaderzheader.hz
                )ÚheadersÚscriptúX
                #/usr/bin/python
                print('hello world!')
                úN
                #/bin/sh
                echo 'hello world!'
                ©ú	script.pyú	script.shr–   r—   ©Úscriptsr™   Z	requires1zfoobar==2.0rd   z%
            foobar==2.0
            )rt   Úinstall_requiresrm   rl   Z	requires2z:
        bar
        foo<=2.0; %r in sys_platform
        z2
            bar
            foo<=2.0
            )rt   rš   rl   Z	requires3z)
        bar; %r != sys_platform
        )rt   rš   Z	requires4z
        foo
        Úextrazfoobar>3zG
            foo

            [extra]
            foobar>3
            )rt   rš   Úextras_requirerl   Z	requires5zfoobar; %r != sys_platformz!
            [extra]
            )rt   rœ   rl   Z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
            Znamespace_packageÚbarzfoo.bar)Únamespace_packagesr€   z foo-1.0-py{py_version}-nspkg.pthznamespace_packages.txtZempty_namespace_packageZfoobarz7__import__('pkg_resources').declare_namespace(__name__)Z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  s   g | ]}|d  ‘qS )rt   r   )r!   r    r   r   r#   r$   ,  s     c              
   C  s¬   |   dd¡}|   dd¡}|   dg ¡}|   di ¡}|   dd ¡}|   d¡}|   d	i ¡}|   d
i ¡}tf |||||dœ|—Ž�*}	tƒ �}
t|	|
||||ƒ W 5 Q R X W 5 Q R X d S )Nr�   r}   r   ú1.0rš   rœ   rl   rm   rD   r‡   ©r�   r   rš   rœ   rB   )ÚgetrF   r   ro   )r    r   r   rš   rœ   rl   rm   rD   r‡   r   rk   r   r   r#   Útest_wheel_install)  s:    
ûú ù     ÿr¤   c               
   C  sh   d} d}t | |d��J}tƒ �8}| | t| ƒ¡}t ||¡ t||d t| ƒ|d ƒ W 5 Q R X W 5 Q R X d S )NZFoo_Barr¡   )r�   r   )rF   r   Úreplacer   ÚshutilÚmovero   )r   r   r   rk   Znew_filenamer   r   r#   Útest_wheel_install_pep_503D  s(    þ ýúr¨   c                  C  s‚   d} d}d  | |¡}tƒ �^}tj ||¡}t |d¡ ¡  tƒ �.}t 	t
¡� t||d | |d ƒ W 5 Q R X W 5 Q R X W 5 Q R X d S )NZ
nodistinfor¡   z{0}-{1}-py2.py3-none-any.whlr(   )r_   r   r@   r   rA   ÚzipfileÚZipFileÚcloser,   r-   Ú
ValueErrorro   )r   r   Ú
wheel_namerE   Ú
wheel_pathrk   r   r   r#   Útest_wheel_no_dist_dirW  s          ÿr¯   c                 C  s(   dd„ }|   d|¡ tdƒ ¡ s$t‚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#   rU   h  s   ÿz=test_wheel_is_compatible.<locals>.sys_tags.<locals>.<setcomp>zcp36-cp36m-manylinux1_x86_64r   r   r   r   r#   Úsys_tagsg  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_compatibler/   )Zmonkeypatchr±   r   r   r#   Útest_wheel_is_compatiblef  s    r´   c                  C  s>  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 ¡}| f ||g i |dœ|—Ž�Š}tƒ �x}t|||||d ƒ t|ƒ}	t	 
|¡|	 ¡  }
|
d d d }| ¡ süt‚tjdk�r&tt | ¡ j¡ƒdk�s&t‚W 5 Q R X W 5 Q R X d S )Nc              	   {  s”   dt dƒ|  d¡i}| r$| | ¡ tƒ �`}t ||¡ t |¡d }t 	|d¡ t
jtjdddf|d� t tj |d	d
¡¡d V  W 5 Q R X d S )Nr1   z¤
                # -*- coding: utf-8 -*-
                from setuptools import setup
                import setuptools
                setup(**%r)
                r2   r—   iÿ  r3   r4   r5   r7   r8   r   )r   r9   r:   r   r   r   ÚpathlibÚPathr@   Úchmodr;   r<   r=   r>   r?   rA   )rB   rC   rD   rE   Zrunshr   r   r#   rF   r  s(    ÿø	÷þ
 ÿz$test_wheel_mode.<locals>.build_wheelr’   r“   r”   r•   r–   r—   r˜   r�   rb   r‚   rƒ   r„   r…   r™   r†   r�   r}   r   r¡   rm   rD   r‡   r¢   Úwin32Z0o777)N)Ú
contextlibÚcontextmanagerrX   r   rY   r£   r   ro   r   rµ   r¶   re   Úexistsr/   r=   r   ÚoctÚstatÚS_IMODEÚst_mode)rF   r    r   r   rm   rD   r‡   r   rk   r(   ÚbaseZ	script_shr   r   r#   Útest_wheel_modeq  st    ÿÿùÿ
ûÿÿí 
ûú ù     ÿrÁ   )N)9Ú__doc__Ú
__future__r   r¹   r?   r*   r@   rµ   r¦   r½   r;   r=   r©   Útypingr   r,   Zjaracor   Zpackaging.tagsr   Zpackaging.utilsr   Úpkg_resourcesr   r	   r
   Zsetuptools.wheelr   Zcontextsr   Útextwrapr   Údistutils.sysconfigr   Údistutils.utilr   r¬   ZWHEEL_INFO_TESTSÚmarkZparametrizer0   rº   rF   rQ   rY   ra   ro   rp   rX   r   rŸ   Ú__annotations__r¤   r¨   r¯   r´   rÁ   r   r   r   r#   Ú<module>   s¾  úþúþúþúþÝ1  ÿ
	
ÿ
þÿúÿþ ÿÿ
ÿ
þÿô ÿÿ-  ÿÿÿüÿþÿÊD ÿÿÿüÿþÿõÿÿùÿ
ûÿÿíûÿÿÿòüÿùýþ ÿÿø ÿÿû ÿÿð ÿÿþûÿ
þÿõÿõ þÿþûÿ
ÿÿõÿó! ÿÿþÿ
þüÿÿþùÿî€ € ¸  rý
