o
    5‘ði÷"  ã                   @   s4  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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
„ Zeddddddddgd�Zdd„ Zddgdgdœdfdddgfddgffdfdddgidfddidfdd d!„ d"D ƒid#ffZej d$e¡d%d&„ ƒZd'd(„ Zd)d*„ Zej d+g d,¢¡d-d.„ ƒZej d/d0dd1d2gd3gfd4dd1d2gd3gfd3dd1d2gd3gfd0dd5gd6d0gfd3dd7d8gd3d9gfd3d:d;d<œg d=¢g d>¢fg¡d?d@„ ƒZej dAdBddCgfd0dd5dDgfd3ddEgfd3dd1dFgfd3dd7dGgfd3d:d;dHœg d=¢fdIddJdKgfdIddLdMgfg¡dNdO„ ƒZdS )Pé    N)ÚDistribution)Úcheck_package_dataÚcheck_specifieré   )Úmake_trivial_sdist)Úensure_files)ÚDALS)ÚDistutilsSetupErrorc                    sö   |   d¡‰tj dtj tˆƒ¡¡}‡‡fdd„}|ddƒ |ddƒ |  d	¡ d
¡�}| 	t
dƒj|d�¡ W d  ƒ n1 sAw   Y  d ¡ }|  ¡ � tƒ ‰ ˆ  ¡  ‡ fdd„|D ƒ}W d  ƒ n1 siw   Y  dd„ |D ƒ|ksyJ ‚dS )zR
    Check multiple calls to `Distribution.fetch_build_egg` work as expected.
    Úindexzfile://c                    s~   ˆ   | ¡}| › d|› d�}tt| |¡ƒ| |ˆƒ | d¡ d¡�}| tdƒj|d�¡ W d   ƒ d S 1 s8w   Y  d S )Nú-z.tar.gzz
index.htmlÚwz¨
                <!DOCTYPE html><html><body>
                <a href="{dist_sdist}" rel="internal">{dist_sdist}</a><br/>
                </body></html>
                )Ú
dist_sdist)Úmkdirr   ÚstrÚjoinÚopenÚwriter   Úformat)ÚdistnameÚversionÚdist_dirr   Úfp)r
   Úsetuptools_wheel© úY/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/tests/test_dist.pyÚsdist_with_index   s   
ÿÿúÿ"ÿz3test_dist_fetch_build_egg.<locals>.sdist_with_indexÚ
barbazquuxz3.2.0zbarbazquux-runnerz2.11.1z	setup.cfgr   zL
            [easy_install]
            index_url = {index_url}
            )Ú	index_urlNz*
    barbazquux-runner
    barbazquux
    c                    s   g | ]}ˆ   |¡‘qS r   )Úfetch_build_egg)Ú.0Úr)Údistr   r   Ú
<listcomp><   ó    z-test_dist_fetch_build_egg.<locals>.<listcomp>c                 S   s   g | ]}|r|j ‘qS r   )Úname)r   r!   r   r   r   r"   =   r#   )r   ÚurllibÚparseÚurljoinÚrequestÚpathname2urlr   r   r   r   r   r   ÚsplitÚas_cwdr   Úparse_config_files)Útmpdirr   r   r   r   ÚreqsÚresolved_distsr   )r!   r
   r   r   Útest_dist_fetch_build_egg   s.   


ÿûÿÿ	ý
ýr0   Úpackagez0.0.1zFoo Barzfoo@bar.netzLong
descriptionzShort descriptionÚoneÚtwo)r$   r   ÚauthorÚauthor_emailÚlong_descriptionÚdescriptionÚkeywordsc                  C   sr   t t dgdgd�d�} t| ƒ}t|jjƒddgksJ ‚t t| d  ¡ ƒƒ| d< t| ƒ}t|jjƒddgks7J ‚d S )NÚfooÚbar)ÚaÚb)Úextras_requirer;   r<   r=   )Údictr   ÚlistÚmetadataÚprovides_extrasÚreversedÚitems©Úattrsr!   r   r   r   Ú(test_provides_extras_deterministic_orderK   s   rF   z*.txtz*.rstz*.msg)Ú ÚhellorG   rH   z^'package_data' must be a dictionary mapping package names to lists of string wildcard patternsi�  z5keys of 'package_data' dict must be strings (got 400)z["values of 'package_data' dict" must be of type <tuple[str, ...] | list[str]> (got '*.msg')c                 c   s   � | ]}|V  qd S )Nr   )r   Úxr   r   r   Ú	<genexpr>|   s   € rJ   Ú	generatorzd"values of 'package_data' dict" must be of type <tuple[str, ...] | list[str]> (got <generator object©Úpackage_dataÚexpected_messagec                 C   sf   |d u rt d d| ƒd u sJ ‚d S tjtt |¡d�� t d d| ƒ W d   ƒ d S 1 s,w   Y  d S )NrM   ©Úmatch)r   ÚpytestÚraisesr	   ÚreÚescaperL   r   r   r   Útest_check_package_data†   s
   "ÿrU   c                  C   sŠ   dddœ} t | ƒ}t|| | d ƒ dddgdœ} t | ƒ}t|| | d ƒ dddœ} t t¡� t | ƒ}W d   ƒ d S 1 s>w   Y  d S )Nr9   z>=3.0, !=3.1)r$   Úpython_requiresrV   z>=3.0z!=3.1z>=invalid-version)r   r   rQ   rR   r	   rD   r   r   r   Útest_check_specifier�   s   


"ÿrW   c                   C   s>   t jtdd�� tƒ  ¡  W d   ƒ d S 1 sw   Y  d S )Nzmissing.*namerO   )rQ   rR   r	   r   Ú_validate_metadatar   r   r   r   Útest_metadata_nameŸ   s   "ÿrY   )Ú	dist_nameÚ	py_module))úmy.pkgÚmy_pkg)úmy-pkgr]   )r]   r]   )Úpkgr_   c                 C   sº   | |› d�   ¡  | d   ¡  | d   ¡  i t¥|t| ƒdœ¥}t|ƒ}| ¡  |j|gks0J ‚ti |¥ddgi¥ƒ}| ¡  |jdgksGJ ‚ti |¥ddgi¥ƒ}| ¡  |jr[J ‚d S )	Nz.pyúsetup.pyú
noxfile.py)r$   Úsrc_rootÚ
py_modulesÚexplicity_py_moduleÚpackagesÚexplicity_package)ÚtouchÚEXAMPLE_BASE_INFOr   r   Úset_defaultsrc   )Útmp_pathrZ   r[   rE   r!   r   r   r   Útest_dist_default_py_modules¤   s   
rk   )rZ   Úpackage_dirÚpackage_filesre   r\   zmy_pkg/__init__.pyzmy_pkg/mod.pyr]   r^   zmy/pkg/__init__.pyÚmyzsrc/my_pkg/__init__.pyzsrc/my_pkg2/__init__.pyÚmy_pkg2ÚlibÚlib2)r_   Úpkg2)zlib/__init__.pyzlib/nested/__init__.pytzlib2/__init__.py)r_   z
pkg.nestedrr   c                 C   sð   t | |ƒ | d  ¡  | d  ¡  i t¥|t| ƒ|dœ¥}t|ƒ}| ¡  |jr*J ‚|jr/J ‚t|jƒt|ƒks:J ‚ti |¥ddgi¥ƒ}| ¡  |jrNJ ‚t|jƒdhksXJ ‚ti |¥ddgi¥ƒ}| ¡  |jrlJ ‚t|jƒdhksvJ ‚d S )Nr`   ra   )r$   rb   rl   rc   Úexplicit_py_modulere   Úexplicit_package)	r   rg   rh   r   r   ri   rc   Úsetre   )rj   rZ   rl   rm   re   rE   r!   r   r   r   Útest_dist_default_packagesÃ   s.   
ÿü



rv   )rZ   rl   rm   zmy.pkg.nestedzmy/pkg/nested/__init__.pyzmy/pkg/file.pyz	my_pkg.pyzmy_pkg/nested/__init__.pyzsrc/my_pkg/nested/__init__.py)r]   zmy_pkg.lib2ÚUNKNOWNzsrc/mod1.pyzsrc/mod2.pyzsrc/pkg1/__ini__.pyzsrc/pkg2/__init__.pyc                 C   sd   t | |ƒ i t¥d tj | ¡¡|dœ¥}|d= t|ƒ}| ¡  |js(|j	s(J ‚| 
¡ |ks0J ‚dS )z:Make sure dist.name is discovered from packages/py_modulesú/)rb   rl   r$   N)r   rh   r   ÚosÚpathr*   r   ri   rc   re   Úget_name)rj   rZ   rl   rm   rE   r!   r   r   r   Útest_dist_default_nameù   s   
ÿýr|   ) ry   rS   Úurllib.parser%   Úurllib.requestrQ   Ú
setuptoolsr   Úsetuptools.distr   r   Úfixturesr   Útest_find_packagesr   Útextwrapr   Údistutils.errorsr	   r0   r>   rh   rF   ÚCHECK_PACKAGE_DATA_TESTSÚmarkÚparametrizerU   rW   rY   rk   rv   r|   r   r   r   r   Ú<module>   s²    .ùþû

þúÿü	ÿûÿûÚ2
þ
	üüõþ
!

ýóþ