Ë
    nûàgÑ  ã                   ó  — d 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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 ddlmZ ddlZddlmZ ddlZddlmc 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dl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2Z3 ejh                  d¬«      d„ «       Z5 G d„ d«      Z6 e1d«      Z7 G d„ d«      Z8ejr                  ju                  d«       G d„ d«      «       Z;ejh                  d„ «       Z<ejr                  j{                  d«      ejr                  j{                  d«       G d „ d!«      «       «       Z>ejh                  d"„ «       Z?ejr                  j{                  d#«       G d$„ d%«      «       Z@ejh                  d&„ «       ZA G d'„ d(«      ZB G d)„ d*«      ZCd+„ ZDd,„ ZEd-„ ZFd.„ ZGd/d0eDddd1fd2„ZHejr                  j“                  e
j”                  j—                  d3«      xr  ej˜                  e
jš                  «      d4¬5«       G d6„ d7«      «       ZN G d8„ d9«      ZO G d:„ d;«      ZP G d<„ d=e«      ZQd>„ ZRejr                  j§                  e
j”                  d?k(  d@¬5«      dA„ «       ZTy)BzEasy install Testsé    N)ÚPath)Ú
NamedTuple)Úmock©Úpath)ÚDistributionÚnormalize_pathÚworking_set)Úsandbox)Ú
safer_name)ÚPthDistributions)r   ©Ú	run_setup)Úfail_on_ascii)Ú
MockServerÚpath_to_urlé   )Úcontexts)ÚDALST)Úautousec                 ó(   — | j                  dd«       y)zŸ
    Important: Disable the default index for pip to avoid
    querying packages in the index and potentially resolving
    and installing packages there.
    ÚPIP_NO_INDEXÚtrueN)Úsetenv)Úmonkeypatchs    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/setuptools/tests/test_easy_install.pyÚpip_disable_indexr   *   s   € ð ×Ñ�~ vÕ.ó    c                   ó   — e Zd Zd„ Zd„ Zy)ÚFakeDistc                 ó   — |dk7  ri S ddiS )NÚconsole_scriptsÚnameÚep© )ÚselfÚgroups     r   Úget_entry_mapzFakeDist.get_entry_map5   s   € ØÐ%Ò%ØˆIØ˜ˆ~Ðr   c                  ó   — y)NÚspecr%   ©r&   s    r   Úas_requirementzFakeDist.as_requirement:   s   € Ør   N)Ú__name__Ú
__module__Ú__qualname__r(   r,   r%   r   r   r    r    4   s   „ òó
r   r    z3
    from setuptools import setup

    setup()
    c                   ó0  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  d„ «       Z
ed„ «       Zej                  d„ «       Zed	„ «       Zej                  d
„ «       Zej                   j#                  ej&                  j)                  d«       d¬«      d„ «       Zy)ÚTestEasyInstallTestc                 ó¨  — t         j                  j                  «       j                  «       j	                  «       }t        «       }t        t         j                  j                  |«      «      }t        j                  |d«      \  }}|j                  |«      sJ ‚d|v sJ ‚d|v sJ ‚d|v sJ ‚t        j                  d|t        j                  ¬«      sJ ‚y )Né   z'spec'z'console_scripts'z'name'z^# EASY-INSTALL-ENTRY-SCRIPT)Úflags)ÚeiÚCommandSpecÚbestÚfrom_environmentÚ	as_headerr    ÚnextÚScriptWriterÚget_argsÚ	itertoolsÚisliceÚ
startswithÚreÚsearchÚ	MULTILINE)r&   ÚheaderÚdistÚargsÚ_nameÚscripts         r   Útest_get_script_argsz(TestEasyInstallTest.test_get_script_argsH   sµ   € Ü—‘×$Ñ$Ó&×7Ñ7Ó9×CÑCÓEˆÜ‹zˆÜ”B—O‘O×,Ñ,¨TÓ2Ó3ˆÜ!×(Ñ(¨¨qÓ1‰ˆˆvØ× Ñ  Ô(Ð(Ð(Ø˜6Ñ!Ð!Ð!Ø" fÑ,Ð,Ð,Ø˜6Ñ!Ð!Ð!Ü�y‰yÐ7¸ÄrÇ|Á|ÕTÐTÑTr   c                 óœ  — t        «       }t        j                  |«      }d„ |_        d|_        ddg|_        t        j                  j                  t        j                  «       d«      |_        dg|_        |j                  «        |j                  j                  i k(  sJ ‚t        j                  |«      }d„ |_        ddg|_        t        j                  j                  t        j                  «       d«      |_        dg|_        |j                  «        t!        |j                  j                  j#                  «       «      }|ddgk(  sJ ‚y )Nc                   ó   — y©NTr%   r%   r   r   ú<lambda>z8TestEasyInstallTest.test_no_find_links.<locals>.<lambda>X   ó   � r   TÚlink1Úlink2Úokc                   ó   — yrK   r%   r%   r   r   rL   z8TestEasyInstallTest.test_no_find_links.<locals>.<lambda>b   rM   r   )r   r5   Úeasy_installÚcheck_pth_processingÚno_find_linksÚ
find_linksÚosr   ÚjoinÚtempfileÚmkdtempÚinstall_dirrE   Úensure_finalizedÚpackage_indexÚscanned_urlsÚsortedÚkeys)r&   rD   Úcmdr_   s       r   Útest_no_find_linksz&TestEasyInstallTest.test_no_find_linksS   s  € ô ‹~ˆÜ�o‰o˜dÓ#ˆÙ#/ˆÔ Ø ˆÔØ! 7Ð+ˆŒÜŸ'™'Ÿ,™,¤x×'7Ñ'7Ó'9¸4Ó@ˆŒØ�6ˆŒØ×ÑÔØ× Ñ ×-Ñ-°Ò3Ð3Ð3ô �o‰o˜dÓ#ˆÙ#/ˆÔ Ø! 7Ð+ˆŒÜŸ'™'Ÿ,™,¤x×'7Ñ'7Ó'9¸4Ó@ˆŒØ�6ˆŒØ×ÑÔÜ�c×'Ñ'×4Ñ4×9Ñ9Ó;Ó<ˆØ˜ Ð)Ò)Ð)Ñ)r   c                 ó  — t        «       }t        j                  |«      }t        j                  «       |_        t        j                  t        j                  j                  «      5  |j                  «        ddd«       y# 1 sw Y   yxY w)zS
        Test that `cant_write_to_target` is rendered as a DistutilsError.
        N)r   r5   rR   rV   ÚgetcwdrZ   ÚpytestÚraisesÚ	distutilsÚerrorsÚDistutilsErrorÚcant_write_to_target)r&   rD   r`   s      r   Útest_write_exceptionz(TestEasyInstallTest.test_write_exceptionj   s_   € ô ‹~ˆÜ�o‰o˜dÓ#ˆÜŸ)™)›+ˆŒÜ�]‰]œ9×+Ñ+×:Ñ:Ó;ñ 	'Ø×$Ñ$Ô&÷	'÷ 	'ñ 	'ús   Á&B Â B	c                 óˆ   ‡— t        d«      Šˆfd„}|j                  t        d|d¬«       ‰t        j                  «       v sJ ‚y)zh
        get_site_dirs should always return site dirs reported by
        site.getsitepackages.
        z/setuptools/test/site-packagesc                  ó
   •— ‰ gS ©Nr%   r   s   €r   Úmock_gspz8TestEasyInstallTest.test_all_site_dirs.<locals>.mock_gsp{   s
   ø€ Ø�6ˆMr   ÚgetsitepackagesF©ÚraisingN)r	   ÚsetattrÚsiter5   Úget_site_dirs)r&   r   rn   r   s      @r   Útest_all_site_dirsz&TestEasyInstallTest.test_all_site_dirst   sF   ø€ ô
 Ð>Ó?ˆô	ð 	×ÑœDÐ"3°XÀuÐÔMØ”r×'Ñ'Ó)Ñ)Ð)Ñ)r   c                 ó`   — |j                  t        dd¬«       t        j                  «       sJ ‚y )Nro   Frp   )Údelattrrs   r5   rt   )r&   r   s     r   Ú0test_all_site_dirs_works_without_getsitepackageszDTestEasyInstallTest.test_all_site_dirs_works_without_getsitepackages�   s*   € Ø×ÑœDÐ"3¸UÐÔCÜ×ÑÔ!Ð!Ñ!r   c                 óÜ   — dt        d«      fddg}d}||z  }t        j                  t        |«      d«      }|D ]  \  }}|j	                  ||«       Œ |j                  «        t        |«      S )Núsetup.pya5  
                    import setuptools
                    setuptools.setup(
                        name="setuptools-test-unicode",
                        version="1.0",
                        packages=["mypkg"],
                        include_package_data=True,
                    )
                    ©zmypkg/__init__.pyÚ )u   mypkg/â˜ƒ.txtr|   zsetuptools-test-unicode-1.0.zipÚw)r   ÚzipfileÚZipFileÚstrÚwritestrÚclose©r&   ÚtmpdirÚfilesÚ
sdist_nameÚsdistÚ	sdist_zipÚfilenameÚcontents           r   Úsdist_unicodez!TestEasyInstallTest.sdist_unicode…   s‰   € ð Üðó
ðððð'
ˆð0 7ˆ
Ø˜Ñ#ˆô —O‘O¤C¨£J°Ó4ˆ	Ø!&ò 	2ÑˆH�gØ×Ñ˜x¨Õ1ð	2à�‰ÔÜ�5‹zÐr   c                 ó   — t        ddgi«      }|dz  j                  «       }t        j                  |t	        |«      dg¬«      }|j                  t        j                  dt	        |«      «       |j                  «        |j                  |«       y)zq
        The install command should execute correctly even if
        the package has unicode filenames.
        Úscript_argsrR   ÚtargetÚx©rZ   rE   Ú
PYTHONPATHN©	r   Ú
ensure_dirr5   rR   r€   ÚsetitemrV   Úenvironr[   )r&   r‹   r„   r   rD   rŽ   r`   s          r   Útest_unicode_filename_in_sdistz2TestEasyInstallTest.test_unicode_filename_in_sdist©   s|   € ô ˜]¨^Ð,<Ð=Ó>ˆØ˜8Ñ#×/Ñ/Ó1ˆÜ�o‰oØÜ˜F›Ø�ô
ˆð
 	×ÑœBŸJ™J¨´c¸&³kÔBØ×ÑÔØ×Ñ˜Õ'r   c                 ó  — dt        d«      fddt        d«      fg}d}||z  }t        j                  t        |«      d«      }|D ]&  \  }}|j	                  ||j                  d«      «       Œ( |j                  «        t        |«      S )	Nrz   ar  
                    import setuptools
                    setuptools.setup(
                        name="setuptools-test-unicode",
                        version="1.0",
                        packages=["mypkg"],
                        include_package_data=True,
                        scripts=['mypkg/unicode_in_script'],
                    )
                    r{   zmypkg/unicode_in_scriptu…   
                    #!/bin/sh
                    # Ã¡

                    non_python_fn() {
                    }
                z&setuptools-test-unicode-script-1.0.zipr}   úutf-8)r   r~   r   r€   r�   Úencoder‚   rƒ   s           r   Úsdist_unicode_in_scriptz+TestEasyInstallTest.sdist_unicode_in_scriptº   s¤   € ð Üð	óðð &à)Üðóðð#
ˆð< >ˆ
Ø˜Ñ#ˆô —O‘O¤C¨£J°Ó4ˆ	Ø!&ò 	BÑˆH�gØ×Ñ˜x¨¯©¸Ó)@ÕAð	Bà�‰ÔÜ�5‹zÐr   c                 ó   — t        ddgi«      }|dz  j                  «       }t        j                  |t	        |«      dg¬«      }|j                  t        j                  dt	        |«      «       |j                  «        |j                  |«       y)zr
        The install command should execute correctly even if
        the package has unicode in scripts.
        r�   rR   rŽ   r�   r�   r‘   Nr’   )r&   rš   r„   r   rD   rŽ   r`   s          r   Útest_unicode_content_in_sdistz1TestEasyInstallTest.test_unicode_content_in_sdistä   sv   € ô ˜]¨^Ð,<Ð=Ó>ˆØ˜8Ñ#×/Ñ/Ó1ˆÜ�o‰o˜d´°F³À3À%ÔHˆØ×ÑœBŸJ™J¨´c¸&³kÔBØ×ÑÔØ×ÑÐ0Õ1r   c                 ór   — dt        d«      fdt        d«      fg}d}t        ||z  «      }t        ||«       |S )Nrz   a  
                    import setuptools
                    setuptools.setup(
                        name="setuptools-test-script",
                        version="1.0",
                        scripts=["mypkg_script"],
                    )
                    Úmypkg_scriptzg
                     #/usr/bin/python
                     print('mypkg_script')
                     zsetuptools-test-script-1.0.zip)r   r€   Ú
make_sdist)r&   r„   r…   r†   r‡   s        r   Úsdist_scriptz TestEasyInstallTest.sdist_scriptó   s\   € ð Üðó	ðð Üðóðð
ˆð0 6ˆ
Ü�F˜ZÑ'Ó(ˆÜ�5˜%Ô Øˆr   ÚlinuxzTest can only be run on Linux©Úreasonc                 óJ  — t        ddgi«      }|dz  j                  «       }t        j                  |t	        |«      dg¬«      }|j                  t        j                  dt	        |«      «       |j                  «        |j                  |«       |dz  j                  «       sJ ‚y)	z.
        Check scripts are installed.
        r�   rR   rŽ   r�   r�   r‘   rž   N)
r   r“   r5   rR   r€   r”   rV   r•   r[   Úexists)r&   r    r„   r   rD   rŽ   r`   s          r   Útest_script_installz'TestEasyInstallTest.test_script_install  s“   € ô ˜]¨^Ð,<Ð=Ó>ˆØ˜8Ñ#×/Ñ/Ó1ˆÜ�o‰oØÜ˜F›Ø�ô
ˆð
 	×ÑœBŸJ™J¨´c¸&³kÔBØ×ÑÔØ×Ñ˜Ô&Ø˜Ñ'×/Ñ/Ô1Ð1Ñ1r   N)r-   r.   r/   rH   ra   rj   ru   rx   rd   Úfixturer‹   r   r–   rš   rœ   r    ÚmarkÚskipifÚsysÚplatformr?   r¦   r%   r   r   r1   r1   G   sÎ   „ ò	Uò*ò.'ò*ò"ð ‡^�^ñ!ó ð!ðF ñ(ó ð(ð  ‡^�^ñ'ó ð'ðR ñ2ó ð2ð ‡^�^ñó ðð< ‡[�[×ÑØ�L‰L×#Ñ# GÓ,Ð,Ð5Tð ó ñ2óñ2r   r1   zignore:Unbuilt eggc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚTestPTHFileWriterc                 óÒ   — t        dt        j                  «       g«      }|j                  rJ ‚|j	                  t        t        j                  «       «      «       |j                  sJ ‚y)zba pth file manager should set dirty
        if a distribution is in site but also the cwd
        údoes-not_existN)r   rV   rc   ÚdirtyÚaddÚPRDistribution)r&   Úpths     r   Ú!test_add_from_cwd_site_sets_dirtyz3TestPTHFileWriter.test_add_from_cwd_site_sets_dirty(  sH   € ô Ð/´"·)±)³+°Ó?ˆØ—9’9Ðˆ}Ø�‰”œrŸy™y›{Ó+Ô,Ø�yŠyÐ‰yr   c                 ó¸   — d}t        j                  |«      }t        d|g«      }|j                  rJ ‚|j	                  t        |«      «       |j                  rJ ‚y )Nz%/test/location/does-not-have-to-existr¯   )Úpkg_resourcesr	   r   r°   r±   r²   )r&   Úlocationr³   s      r   Útest_add_from_site_is_ignoredz/TestPTHFileWriter.test_add_from_site_is_ignored1  sY   € Ø:ˆä ×/Ñ/°Ó9ˆÜØàðó
ˆð —9’9Ðˆ}Ø�‰”˜xÓ(Ô)Ø—9’9Ðˆ}�9r   c                 óÎ  — |j                  d«      }|j                  «        t        |j                  d«      «      }t        |«      }t        |«      }|j                  |j                  cxk(  rg k(  sJ d«       ‚ J d«       ‚|j                  d«      }|j                  «        t        |«      }|j                  j                  |«       |j                  «        |j                  sJ d«       ‚||j                  vsJ d«       ‚|j                  «        ||j                  v sJ d«       ‚|j                  d   |k(  sJ d	«       ‚t        |«      j                  |j                  k(  sJ d
«       ‚y)z«
        If the pth file is modified under the hood, then PthDistribution
        will refresh its content before saving, merging contents when
        necessary.
        Ú
pth_subdirz	file1.pthz6unless there would be some default added at some pointÚ
src_subdirzEthe new_src_path added must still be present/valid in pth1 after savez:right before we save the entry should still not be presentzJthe new_src_path entry should have been added by pth2 with its save() calléÿÿÿÿzVand it should match exactly on the last entry actually given we append to it in save()zXand we should have the exact same list at the end with a fresh PthDistributions instanceN)rW   Úmkdirr€   r   ÚpathsÚappendÚsave)r&   r„   rº   Úpth_pathÚpth1Úpth2Únew_src_pathÚnew_src_path_strs           r   Ú*test_many_pth_distributions_merge_togetherz<TestPTHFileWriter.test_many_pth_distributions_merge_together?  sg  € ð —[‘[ Ó.ˆ
Ø×ÑÔÜ�z—‘ {Ó3Ó4ˆÜ Ó)ˆÜ Ó)ˆØ�z‰z˜TŸZ™ZÔ-¨2Ò-ð 	
ØDó	
Ñ-ð 	
ØDó	
Ð-ð
 —{‘{ <Ó0ˆØ×ÑÔÜ˜|Ó,ÐØ�
‰
×ÑÐ*Ô+Ø�	‰	ŒØ�zŠzð 	
ØSó	
ˆzð   t§z¡zÑ1ð 	
ØHó	
Ð1ð 	�	‰	ŒØ 4§:¡:Ñ-ð 	
ØXó	
Ð-ð �z‰z˜"‰~ Ò-ð 	
ð.ó	
Ð-ô
   Ó)×/Ñ/°4·:±:Ò=ð 	
ð5ó	
Ñ=r   N)r-   r.   r/   r´   r¸   rÆ   r%   r   r   r­   r­   &  s   „ òòó)
r   r­   c              #   óÞ   K  — | dz  j                  dd¬«      5 }|j                  t        «       d d d «       | j                  «       5  | –— d d d «       y # 1 sw Y   Œ'xY w# 1 sw Y   y xY w­w)Nrz   r}   r˜   ©Úencoding)ÚopenÚwriteÚSETUP_PYÚas_cwd)r„   Úfs     r   Úsetup_contextrÏ   k  sh   è ø€ à
�:Ñ
×	#Ñ	# C°'Ð	#Ó	:ð ¸aØ	�‰”Ô÷à	�‰‹ñ ØŠ÷ð ÷ð ú÷ð üs3   ‚A-™A¯A-ÁA!Á	A-ÁAÁA-Á!A*Á&A-Úuser_overriderÏ   c                   ó–  — e Zd Z ej                  d ej
                  «       «      Z ej                  dej                  «       ej                  dd«      ed„ «       «       «       Z	 ej                  dd«      ed„ «       «       Z
ed„ «       Zd	„ Zej                  d
„ «       Zej                  d„ «       Zd„ Zej(                  d„ «       Zd„ Zy)ÚTestUserInstallTestz;setuptools.command.easy_install.easy_install.check_site_dirz(setuptools.command.easy_install.__file__úsite.ENABLE_USER_SITETc                 ó$   — | j                  «        y rm   ©Úassert_not_user_siter+   s    r   Ú/test_user_install_not_implied_user_site_enabledzCTestUserInstallTest.test_user_install_not_implied_user_site_enabled  s   € ð 	×!Ñ!Õ#r   Fc                 ó$   — | j                  «        y rm   rÕ   r+   s    r   Ú0test_user_install_not_implied_user_site_disabledzDTestUserInstallTest.test_user_install_not_implied_user_site_disabled…  s   € ð 	×!Ñ!Õ#r   c                  ó¦   — t        «       } d| _        t        j                  | «      }dg|_        |j                  «        |j                  rJ d«       ‚y )Nrz   Úpyzuser should not be implied)r   Úscript_namer5   rR   rE   r[   Úuser)rD   r`   s     r   rÖ   z(TestUserInstallTest.assert_not_user_siteŠ  sJ   € ô ‹~ˆØ%ˆÔÜ�o‰o˜dÓ#ˆØ�6ˆŒØ×ÑÔØ—8’8Ð9Ð9Ó9ˆ|�8r   c                 óà   — t        j                  d«       t        j                  d«      }t        j                  t        j
                  t        j                  ¬«       |j                  d«       y )NÚmultiprocessingÚtest_easy_install)ÚlevelÚstreamzthis should not break)	rd   ÚimportorskipÚloggingÚ	getLoggerÚbasicConfigÚINFOrª   ÚstderrÚinfo)r&   Úlogs     r   Útest_multiproc_atexitz)TestUserInstallTest.test_multiproc_atexit”  sG   € Ü×ÑÐ-Ô.ä×ÑÐ 3Ó4ˆÜ×Ñ¤'§,¡,´s·z±zÕBØ�‰Ð(Õ)r   c                 ó¤   — |dz  }|j                  d«      5 }|j                  d«       d d d «       t        |«      S # 1 sw Y   t        |«      S xY w)Nzfoo-1.0.egg-infor}   z
Name: foo
)rÊ   rË   r€   )r&   r„   Úegg_filerÎ   s       r   Úfoo_packagezTestUserInstallTest.foo_package›  sK   € àÐ.Ñ.ˆØ�]‰]˜3Óð 	# 1Ø�G‰G�MÔ"÷	#ä�6‹{Ð÷	#ä�6‹{Ðús	   —<¼Ac              #   óš  K  — t        |«      }t        j                  dt        j                  |gz   «      5  t
        j                  j                  j                  t        j                  «      }t        j                  j                  t
        j                  |¬«      5  |–— d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nzsys.path©r‘   )
r€   r   Úpatchrª   r   rV   ÚpathseprW   Údictr•   )r&   r„   rŽ   Úpython_paths       r   Úinstall_targetz"TestUserInstallTest.install_target¢  s�   è ø€ ä�V“ˆÜ�Z‰Z˜
¤C§H¡H°¨xÑ$7Ó8ñ 	ÜŸ'™'Ÿ/™/×.Ñ.¬s¯x©xÓ8ˆKÜ—‘—‘¤§¡¸�ÓDñ Ø’÷÷	ð 	÷ð ú÷	ð 	üs5   ‚4C¶A'B?ÂB3Â"B?Â*	CÂ3B<	Â8B?Â?CÃCc                 óú  — t        «       }d|_        t        j                  |«      }||_        dg|_        |j                  «        |j                  j                  |g«       |j                  d«      }t        j                  j                  t        j                  j                  |j                  «      «      }t        j                  j                  t        j                  j                  |«      «      }||k(  sJ ‚y)zd
        The local index must be used when easy_install locates installed
        packages.
        rz   ÚfooN)r   rÜ   r5   rR   rZ   rE   r[   Úlocal_indexÚscanrV   r   ÚnormcaseÚrealpathr·   )r&   rî   rõ   rD   r`   ÚresÚactualÚexpecteds           r   Útest_local_indexz$TestUserInstallTest.test_local_indexª  s¹   € ô
 ‹~ˆØ%ˆÔÜ�o‰o˜dÓ#ˆØ(ˆŒØ�7ˆŒØ×ÑÔØ�‰×Ñ˜k˜]Ô+Ø×Ñ˜uÓ%ˆÜ—‘×!Ñ!¤"§'¡'×"2Ñ"2°3·<±<Ó"@ÓAˆÜ—7‘7×#Ñ#¤B§G¡G×$4Ñ$4°[Ó$AÓBˆØ˜Ò!Ð!Ñ!r   c              /   óž   K  —  | j                   |i |¤Ž5  ddlmc m} t        j
                  |_        d–— ddd«       y# 1 sw Y   yxY w­w)zw
        Wrap sandbox.setup_context to patch easy_install in that context to
        appear as user-installed.
        r   N)Úorig_contextÚsetuptools.command.easy_installÚcommandrR   rs   Ú	USER_SITEÚ__file__)r&   rE   Úkwargsr5   s       r   Úuser_install_setup_contextz.TestUserInstallTest.user_install_setup_context»  sE   è ø€ ð ˆT×Ñ Ð/¨Ñ/ñ 	ß8Ð8äŸ.™.ˆBŒKÛ÷		÷ 	ñ 	üs   ‚A•#A¸	AÁA
ÁAc                 ól   — t         j                  | _        t        j                  d| j
                  «      S )Nz setuptools.sandbox.setup_context)r   rÏ   r  r   rñ   r  r+   s    r   Úpatched_setup_contextz)TestUserInstallTest.patched_setup_contextÇ  s-   € Ü#×1Ñ1ˆÔä�z‰zØ.Ø×+Ñ+ó
ð 	
r   N)r-   r.   r/   r   rñ   ÚMockÚprev_sp_writers   r  r×   rÙ   ÚstaticmethodrÖ   rë   rd   r§   rî   rõ   rÿ   Ú
contextlibÚcontextmanagerr  r	  r%   r   r   rÒ   rÒ   s  sþ   „ ð �D—J‘JØEØˆ�	‰	‹ó€Mð €T‡Z�ZÐ:¸D¿N¹NÓKØ€T‡Z�ZÐ'¨Ó.Øñ$ó ó /ó Lð$ð €T‡Z�ZÐ'¨Ó/Øñ$ó ó 0ð$ð ñ:ó ð:ò*ð ‡^�^ñó ðð ‡^�^ñó ðò"ð" ×Ññ	ó ð	ó
r   rÒ   c               #   ó  K  — t         j                  dd«      } t        j                  t        j
                  ¬«      5  t        ddd¬«      5 }|j                  | «       d d d «       d –— d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nzfrom setuptools import setupz from distutils.core import setup)Úcdrz   r}   r˜   rÈ   )rÌ   Úreplacer   ÚtempdirrV   ÚchdirrÊ   rË   )Údistutils_setup_pyrÎ   s     r   Údistutils_packager  Ð  s}   è ø€ ä!×)Ñ)Ø&Ø*óÐô 
×	Ñ	œRŸX™XÔ	&ñ Ü�*˜c¨GÔ4ð 	(¸Ø�G‰GÐ&Ô'÷	(ã÷ð ÷	(ð 	(ú÷ð üs4   ‚;B½A?ÁA3ÁA?Á*	BÁ3A<	Á8A?Á?BÂBr  c                   ó   — e Zd Zd„ Zy)ÚTestDistutilsPackagec                 ó   — t        ddg«       y )Nrz   Ú	bdist_eggr   r+   s    r   Ú)test_bdist_egg_available_on_distutils_pkgz>TestDistutilsPackage.test_bdist_egg_available_on_distutils_pkgÞ  s   € Ü�*˜{˜mÕ,r   N)r-   r.   r/   r  r%   r   r   r  r  Ü  s   „ ó-r   r  c                  ó‚   — t        «       } | j                  dk(  rt        j                  d«       | j	                  «        | S )Nr   zcould not find a valid port)r   Úserver_portrd   ÚskipÚstart)Úp_indexs    r   Ú
mock_indexr   â  s6   € ô ‹l€GØ×Ñ˜aÒô 	�‰Ð1Ô2Ø‡M�M„OØ€Nr   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestInstallRequiresc                 óx  — |dz  }|j                  d¬«       |dz  }|j                  d¬«       | j                  |«       t        j                  ddddt	        |«      dt	        |«      d	t	        |«      d
t	        |«      dt	        |«      dt	        |«      dt	        |«      g}i t
        j                  ¥d|j                  i¥}t        j                  |t	        |«      |t        j                  t        j                  dd¬«      }|j                  dk7  sJ ‚	 d|j                  D �ch c]  }|j                  ’Œ c}v sJ ‚t        d„ |j                   j#                  «       D «       «      sJ ‚yc c}w # t$        $ rB d|j                   v r2t'        j(                  t        j*                  › d|j                   › �«       ‚ w xY w)z~
        When ``python setup.py install`` is called directly, it will use easy_install
        to fetch dependencies.
        ÚprojectT)Úexist_okÚinstallú-cú __import__("setuptools").setup()z--install-basez--install-libz--install-headersz--install-scriptsz--install-dataz--install-purelibz--install-platlibÚ__EASYINSTALL_INDEXr˜   )ÚcwdÚenvÚstdoutrè   ÚtextrÉ   r   ú/does-not-exist/c              3   ó0   K  — | ]  }d |v rd|v r|–— Œ y­w)z"not find suitable distribution forzdoes-not-existNr%   )Ú.0Úlines     r   ú	<genexpr>zOTestInstallRequires.test_setup_install_includes_dependencies.<locals>.<genexpr>  s(   è ø€ ò àØ7¸4Ñ?Ø$¨Ñ,ô ñùs   ‚zfailed to get random numbersz failure - N)r½   Úcreate_projectrª   Ú
executabler€   rV   r•   ÚurlÚ
subprocessÚrunÚPIPEÚSTDOUTÚ
returncodeÚrequestsr   r:   r,  Ú
splitlinesÚ	Exceptionrd   Úxfailr«   )	r&   Útmp_pathr   Úproject_rootÚinstall_rootr`   r+  ÚcpÚrs	            r   Ú(test_setup_install_includes_dependenciesz<TestInstallRequires.test_setup_install_includes_dependenciesï  s¨  € ð   )Ñ+ˆØ×Ñ DÐÔ)Ø )Ñ+ˆØ×Ñ DÐÔ)à×Ñ˜LÔ)ä�N‰NØØ.ØØÜ�ÓØÜ�ÓØÜ�ÓØÜ�ÓØÜ�ÓØÜ�ÓØÜ�Óð%
ˆð( D”—‘ÐCÐ2°J·N±NÑCˆÜ�^‰^ØÜ�LÓ!ØÜ—?‘?Ü×$Ñ$ØØô
ˆð �}‰} Ò!Ð!Ð!ð	Ø%¸*×:MÑ:MÖ)N°Q¨!¯&«&Ò)NÑNÐNÐNÜñ àŸI™I×0Ñ0Ó2ôô ð ñ ùò *Oøô ò 	Ø-°·±Ñ:Ü—‘¤§¡˜~¨[¸¿¹¸ÐDÔEØð	ús   ÄE. Ä#E)Ä62E. Å)E. Å.AF9c                 ól   — d}|dz  j                  t        |«      d¬«       |dz  j                  «        y )Nzž
        [metadata]
        name = project
        version = 42

        [options]
        install_requires = does-not-exist
        py_modules = mod
        ú	setup.cfgr˜   rÈ   zmod.py)Ú
write_textr   Útouch)r&   ÚrootÚconfigs      r   r3  z"TestInstallRequires.create_project'  s7   € ðˆð 
�Ñ	×'Ñ'¬¨V«¸wÐ'ÔGØ	�‰×ÑÕ!r   N)r-   r.   r/   rD  r3  r%   r   r   r"  r"  î  s   „ ò6óp"r   r"  c                   óx  — e Zd Zd„ Zeej                  d„ «       «       ZdZe	j                  j                  de«      d„ «       Ze	j                  j                  de«      d„ «       Ze	j                  j                  de«      d„ «       Zd„ Zd	„ Zd
„ Zd„ Ze	j                  j                  dd«      d„ «       Zd„ Zd„ Zy)ÚTestSetupRequiresc                 ó¨  — |j                  dd«       |j                  dd«       |j                  dd«       t        j                  «       5  t        j	                  «       5 }t        j
                  «       5 }t        j                  |¬«      5  t        j                  ddd	d
|j                  dd||g
}t        j                  |«      j                  «        ddd«       ddd«       ddd«       ddd«       |j                  D �cg c]  }|j                  ‘Œ c}dgk(  sJ ‚y# 1 sw Y   ŒLxY w# 1 sw Y   ŒPxY w# 1 sw Y   ŒTxY w# 1 sw Y   ŒXxY wc c}w )z¼
        When easy_install installs a source distribution which specifies
        setup_requires, it should honor the fetch parameters (such as
        index-url, and find-links).
        ÚPIP_RETRIESÚ0ÚPIP_TIMEOUTr   Úfalserð   r'  r(  rR   z--index-urlz--exclude-scriptsz--install-dirNr.  )r   r   ÚquietrL  Úcreate_sdistr  Úenvironmentrª   r4  r5  r6  ÚPopenÚwaitr;  r   )r&   r   r   Ú	dist_fileÚtemp_install_dirr`   rC  s          r   Ú'test_setup_requires_honors_fetch_paramsz9TestSetupRequires.test_setup_requires_honors_fetch_params6  s1  € ð 	×Ñ˜=¨#Ô.Ø×Ñ˜=¨#Ô.Ø×Ñ˜>¨7Ô3Ü�^‰^Óñ 	5ä"×/Ñ/Ó1ð 5°YÜ×%Ñ%Ó'ð 5Ð+;Ü!×-Ñ-Ð9IÔJñ 5äŸN™NØ Ø>Ø*Ø)Ø&ŸN™NØ/Ø+Ø,Ø%ð˜ô #×(Ñ(¨Ó-×2Ñ2Ô4÷5÷5÷5÷	5ð& !+× 3Ñ 3Ö4˜1�—“Ò4Ð9KÐ8LÒLÐLÑL÷5ð 5ú÷5ð 5ú÷5ð 5ú÷	5ð 	5üò& 5s[   ÁEÁ D7Á5D+ÂAD	ÃD+ÃD7Ã$EÄEÄD(Ä$D+Ä+D4Ä0D7Ä7E 	Ä<EÅEc               #   óØ   K  — t        j                  «       5 } t        j                  j	                  | d«      }t        |dt        d«      fdg«       |–— ddd«       y# 1 sw Y   yxY w­w)zl
        Return an sdist with a setup_requires dependency (of something that
        doesn't exist)
        z"setuptools-test-fetcher-1.0.tar.gzrz   a  
                    import setuptools
                    setuptools.setup(
                        name="setuptools-test-fetcher",
                        version="1.0",
                        setup_requires = ['does-not-exist'],
                    )
                ©rF  r|   N)r   r  rV   r   rW   rŸ   r   )ÚdirÚ	dist_paths     r   rS  zTestSetupRequires.create_sdistT  sr   è ø€ ô ×ÑÓð 	 3ÜŸ™Ÿ™ SÐ*NÓOˆIÜØð #Üðó	ðð &ðôð& ŠO÷+	÷ 	ñ 	üs   ‚A*—>AÁ	A*ÁA'Á#A*)r%   ©Údependency_links©Úsetup_requires)r_  ra  Úuse_setup_cfgc                 ó,  — t        ddd¬«      }t        j                  |«       t        j                  «       5  t        j
                  «       5 }t        ||¬«      }t        j                  j                  |d«      }t        j                  «       5 \  }}t        |dg«       ddd«       j                  «       }t        |«      d	kD  sJ ‚|d
   j                  «       dk(  sJ ‚	 ddd«       ddd«       y# 1 sw Y   ŒSxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)a<  
        Regression test for distribution issue 323:
        https://bitbucket.org/tarek/distribute/issues/323

        Ensures that a distribution's setup_requires requirements can still be
        installed and used locally even if a conflicting version of that
        requirement is already on the path.
        zdoes-not-matterÚfoobarú0.0©Úproject_nameÚversion©rb  rz   ú--nameNr   r¼   Útest_pkg)r²   r
   r±   r   Úsave_pkg_resources_stater  Úcreate_setup_requires_packagerV   r   rW   rR  r   Ú	readlinesÚlenÚstrip)	r&   rb  Ú	fake_distÚtemp_dirrk  Útest_setup_pyr,  Ú_stderrÚliness	            r   Ú.test_setup_requires_overrides_version_conflictz@TestSetupRequires.test_setup_requires_overrides_version_conflicty  sþ   € ô #Ø¨H¸eô
ˆ	ô 	�‰˜	Ô"ä×.Ñ.Ó0ñ 	7Ü×!Ñ!Ó#ð 7 xÜ8Ø¨Mô�ô !#§¡§¡¨X°zÓ B�Ü—^‘^Ó%ð 9Ñ):¨&°'ô ˜m¨h¨ZÔ8÷9ð
 ×(Ñ(Ó*�Ü˜5“z A’~Ð%�~Ø˜R‘y—‘Ó(¨JÒ6Ð6Ñ6÷7÷	7ð 	7÷9ð 9ú÷7ð 7ú÷	7ð 	7ús=   ¸D
ÁAC>ÂC2Â A C>Ã!D
Ã2C;Ã7C>Ã>D	ÄD
Ä
Dc           
      ód  — t        j                  «       5  t        j                  «       5 }t        j                  j                  |d«      }t        |dd«       t        j                  j                  |d«      }t        j                  |«       t        j                  |«      5 }d„ |_
        |j                  |«       ddd«       t        j                  j                  d|«       t        |dd¬«      }t        j                   |«       t#        d	«      }t%        |dd
t        ||¬«      }t        j                  j                  |d«      }	t        j&                  «       5 \  }
}	 t)        |	dg«       ddd«       d
j3                  «       vsJ ‚|
j5                  «       }t7        |«      dkD  sJ ‚|d   j9                  «       dk(  sJ ‚	 ddd«       ddd«       y# 1 sw Y   �ŒxY w# t*        j,                  $ r t/        j0                  d«       Y Œ�w xY w# 1 sw Y   Œ¢xY w# 1 sw Y   ŒYxY w# 1 sw Y   yxY w)zÃ
        Like ``test_setup_requires_overrides_version_conflict`` but where the
        ``setup_requires`` package is part of a namespace package that has
        *already* been imported.
        zfoo_bar-0.1.tar.gzzfoo.barú0.1zfoo_bar-0.1c                 ó   — | S rm   r%   )Úmemberr   s     r   rL   zFTestSetupRequires.test_setup_requires_override_nspkg.<locals>.<lambda>©  s   € À€ r   Nr   rf  aæ                      import foo  # Even with foo imported first the
                                # setup_requires package should override
                    import setuptools
                    setuptools.setup(**%r)

                    if not (hasattr(foo, '__path__') and
                            len(foo.__path__) == 2):
                        print('FAIL')

                    if 'foo_bar-0.2' not in foo.__path__[0]:
                        print('FAIL')
                z0.2ri  rz   rj  z9Installing setup.py requirements caused a VersionConflictÚFAILr   r¼   rk  )r   rl  r  rV   r   rW   Úmake_nspkg_sdistr½   ÚtarfilerÊ   Úextraction_filterÚ
extractallrª   Úinsertr²   r
   r±   r   rm  rR  r   r¶   ÚVersionConflictrd   ÚfailÚgetvaluern  ro  rp  )r&   rb  rr  Úfoobar_1_archiveÚfoobar_1_dirÚtfrD   Útemplaterk  rs  r,  rt  ru  s                r   Ú"test_setup_requires_override_nspkgz4TestSetupRequires.test_setup_requires_override_nspkg˜  sï  € ô ×.Ñ.Ó0ñ :	7Ü×!Ñ!Ó#ð 97 xÜ#%§7¡7§<¡<°Ð:NÓ#OÐ Ü Ð!1°9¸eÔDô  "Ÿw™wŸ|™|¨H°mÓD�Ü—‘˜Ô&Ü—\‘\Ð"2Ó3ð 0°rÙ+F�BÔ(Ø—M‘M ,Ô/÷0ô —‘—‘  <Ô0ä%Ø ¨yÀ%ô�ô —‘ Ô%äðó�ô  9ØØØÜ$ØØ"/ô�ô !#§¡§¡¨X°zÓ B�ä—^‘^Ó%ð Ñ):¨&°'ðô " -°(°Ô<÷	ð  V§_¡_Ó%6Ñ6Ð6Ð6Ø×(Ñ(Ó*�Ü˜5“z A’~Ð%�~Ø˜R‘y—‘Ó(¨JÒ6Ð6Ñ6÷s97÷:	7ð :	7÷0ñ 0ûôT )×8Ñ8ò ÜŸ™ØWöðú÷ð ú÷Y97ð 97ú÷:	7ð :	7úss   •H&ªA8HÂ"GÂ<BHÅHÅ G Å-AHÇH&ÇGÇHÇ (H	ÈHÈ
H	ÈHÈHÈHÈH#	ÈH&È&H/c           	      ó
  — d„ }t        j                  «       5  t        j                  «       5 }t        |t	        d¬«      ||dz   ¬«      }t
        j                  j                  |d«      }t        j                  «       5 \  }}t        |dg«       d d d «       j                  «       }t        |«      dkD  sJ ‚|d   j                  «       d	k(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒSxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)
Nc           
      ój   — dt        d|›d|›d|›d�«      f|dz   t        d«      fg}t        | |«       y )Nrz   zj
                    import setuptools
                    setuptools.setup(
                        name=z",
                        version=z&,
                        py_modules=[z-],
                    )
                    z.pyz6
                    version = 42
                    )r   rŸ   )r]  Údistnamerh  r…   s       r   Úmake_dependency_sdistzVTestSetupRequires.test_setup_requires_with_attr_version.<locals>.make_dependency_sdistÞ  sm   € ð Üðð '˜\ð *!Ø!( ð ,%Ø%- Lð 1ðó	ðð ˜uÑ$ÜðóððˆEô. �y %Õ(r   zattr: foobar.version)rh  )Úsetup_attrsÚmake_packagerb  rz   ú	--versionr   r¼   Ú42)r   rl  r  rm  ró   rV   r   rW   rR  r   rn  ro  rp  )	r&   rb  rŒ  rr  rk  rs  r,  rt  ru  s	            r   Ú%test_setup_requires_with_attr_versionz7TestSetupRequires.test_setup_requires_with_attr_versionÜ  sò   € ò	)ô4 ×.Ñ.Ó0ñ 	1Ü×!Ñ!Ó#ð 1 xÜ8ØÜ $Ð-CÔ DØ!6Ø"/°,Ñ">ô	�ô !#§¡§¡¨X°zÓ B�Ü—^‘^Ó%ð <Ñ):¨&°'Ü˜m¨k¨]Ô;÷<à×(Ñ(Ó*�Ü˜5“z A’~Ð%�~Ø˜R‘y—‘Ó(¨DÒ0Ð0Ñ0÷1÷	1ð 	1÷<ð <ú÷1ð 1ú÷	1ð 	1ús<   ˜C9­AC-Á>C!ÂA C-ÃC9Ã!C*Ã&C-Ã-C6	Ã2C9Ã9Dc           
      ó†  — |j                  dd«       |j                  dd«       |j                  dd«       |j                  d|j                  «       t        j                  «       5  t        j                  «       5 }t        |ddt        g ¬	«      ¬
«      }t        j                  j                  |d«      }t        |dd¬«      5 }|j                  t        d«      «       d d d «       t        j                  j                  |d«      }t        j                  t        j                   j"                  «      5  t%        |dg«       d d d «       d d d «       d d d «       t'        |j(                  «      dk(  sJ ‚|j(                  d   j                  dk(  sJ ‚y # 1 sw Y   ŒµxY w# 1 sw Y   Œ^xY w# 1 sw Y   ŒbxY w# 1 sw Y   ŒfxY w)NrN  rO  rP  r   rQ  ÚPIP_INDEX_URLúpython-xlibú0.19r^  ©r�  rF  r}   r˜   rÈ   z}
                        [easy_install]
                        index_url = https://pypi.org/legacy/
                        rz   r�  r   r   z/python-xlib/)r   r5  r   rl  r  rm  ró   rV   r   rW   rÊ   rË   r   rd   re   rf   rg   rh   r   ro  r;  )r&   r   r   rr  rk  Útest_setup_cfgÚfprs  s           r   Ú"test_setup_requires_honors_pip_envz4TestSetupRequires.test_setup_requires_honors_pip_env  s€  € Ø×Ñ˜=¨#Ô.Ø×Ñ˜=¨#Ô.Ø×Ñ˜>¨7Ô3Ø×Ñ˜?¨J¯N©NÔ;Ü×.Ñ.Ó0ñ 	<Ü×!Ñ!Ó#ð < xÜ8ØØ!ØÜ $°bÔ 9ô	�ô "$§¡§¡¨h¸Ó!D�Ü˜.¨#¸Ô@ð ÀBØ—H‘HÜðóô÷ô !#§¡§¡¨X°zÓ B�Ü—]‘]¤9×#3Ñ#3×#BÑ#BÓCñ <Ü˜m¨k¨]Ô;÷<÷%<÷	<ô* �:×&Ñ&Ó'¨1Ò,Ð,Ð,Ø×"Ñ" 1Ñ%×*Ñ*¨oÒ=Ð=Ñ=÷ð ú÷<ð <ú÷%<ð <ú÷	<ð 	<úsV   Á'F7Á<AF+ÃFÃAF+Ä4FÅF+Å
F7ÆFÆF+ÆF(Æ$F+Æ+F4	Æ0F7Æ7G c                 ób  — |j                  dd«       |j                  dd«       |j                  d|j                  «       t        j                  «       5  t        j                  «       5 }t
        j                  j                  |d«      }t        |dd«       t        |d¬	«      }t        |d
dt        d|› �¬«      ¬«      }t
        j                  j                  |d«      }t        |dg«       d d d «       d d d «       t        |j                  «      dk(  sJ ‚y # 1 sw Y   Œ,xY w# 1 sw Y   Œ0xY w)NrN  rO  rP  r“  z
dep.tar.gzÚ
dependencyr�  Ú	localhost)Ú	authorityr”  r•  zdependency @ r`  r–  rz   r�  r   )r   r5  r   rl  r  rV   r   rW   Úmake_trivial_sdistr   rm  ró   r   ro  r;  )r&   r   r   rr  Ú	dep_sdistÚdep_urlrk  rs  s           r   Ú#test_setup_requires_with_pep508_urlz5TestSetupRequires.test_setup_requires_with_pep508_url$  s  € Ø×Ñ˜=¨#Ô.Ø×Ñ˜=¨#Ô.Ø×Ñ˜?¨J¯N©NÔ;Ü×.Ñ.Ó0ñ 	8Ü×!Ñ!Ó#ð 8 xÜŸG™GŸL™L¨°<Ó@�	Ü" 9¨l¸DÔAÜ% i¸;ÔG�Ü8Øà!ØÜ $°mÀGÀ9Ð4MÔ Nô�ô !#§¡§¡¨X°zÓ B�Ü˜-¨+¨Ô7÷8÷	8ô �:×&Ñ&Ó'¨1Ò,Ð,Ñ,÷8ð 8ú÷	8ð 	8ús%   ÁD%Á*BDÃ.D%ÄD"	ÄD%Ä%D.c           	      ó  — dt        d«      t        d«      dœi}t        j                  «       5  t        j                  «       5 }t	        j
                  ||¬«       t        t        j                  |dd«      «      }t        j                  t        j                  j                  «      5  t        |dg«       ddd«       ddd«       ddd«       t        |j                   «      d	k(  sJ ‚y# 1 sw Y   Œ4xY w# 1 sw Y   Œ8xY w# 1 sw Y   Œ<xY w)
z2The `allow-hosts` option in not supported anymore.rk  z~
                    from setuptools import setup
                    setup(setup_requires='python-xlib')
                    z\
                    [easy_install]
                    allow_hosts = *
                    ©rz   rF  ©Úprefixrz   r�  Nr   )r   r   rl  r  r   Úbuildr€   Úpathlibr   rd   re   rf   rg   rh   r   ro  r;  )r&   r   r…   rr  Úsetup_pys        r   Ú$test_setup_requires_with_allow_hostsz6TestSetupRequires.test_setup_requires_with_allow_hosts8  sî   € ð Ü ðóô "ðóñð
ˆô  ×.Ñ.Ó0ñ 	7Ü×!Ñ!Ó#ð 7 xÜ—
‘
˜5¨Õ2ÜœwŸ|™|¨H°jÀ*ÓMÓN�Ü—]‘]¤9×#3Ñ#3×#BÑ#BÓCñ 7Ü˜h¨¨Ô6÷7÷7÷	7ô �:×&Ñ&Ó'¨1Ò,Ð,Ñ,÷7ð 7ú÷7ð 7ú÷	7ð 	7ús<   ®DÁA%C5Â(C)Â6C5Â>DÃ)C2Ã.C5Ã5C>	Ã:DÄD
c                 ó   — |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       d}t        t        ||z  «      «      }d}t        t        ||z  «      d	d
|«       d}t        t        ||z  «      «      }dt        j
                  j                  › dt        j
                  j                  › d�}t        t        ||z  «      d	d|«       |dz  }	|	j                  t        d«      j                  ||||||¬«      d«       t        t        |	«      «      }
t        j                  «       5  t        t        |«      ddt        d	|
g¬«      ¬«      }t        j                   j#                  |d«      }t%        |dg«       ddd«       t'        t)        t        t+        j,                  t        j                   j#                  d«      «      «      «      }|dgk(  sJ ‚y# 1 sw Y   Œ\xY w)z#Check `python_requires` is honored.rN  rO  rP  r   Ú1ÚPIP_VERBOSEzdep-1.0.tar.gzz>=2.7Údepú1.0zdep-2.0.tar.gzz!=ú.z.*z2.0z
index.htmla©  
            <!DOCTYPE html>
            <html><head><title>Links for dep</title></head>
            <body>
                <h1>Links for dep</h1>
                <a href="{dep_1_0_url}"data-requires-python="{dep_1_0_python_requires}">{dep_1_0_sdist}</a><br/>
                <a href="{dep_2_0_url}"data-requires-python="{dep_2_0_python_requires}">{dep_2_0_sdist}</a><br/>
            </body>
            </html>
            )Údep_1_0_urlÚdep_1_0_sdistÚdep_1_0_python_requiresÚdep_2_0_urlÚdep_2_0_sdistÚdep_2_0_python_requiresr˜   r”  r•  )ra  r_  r–  rz   r�  Nz.eggszdep 1.0)r   r   r€   Úmake_python_requires_sdistrª   Úversion_infoÚmajorÚminorrG  r   Úformatr   rl  rm  ró   rV   r   rW   r   ÚlistÚmapr¶   Úfind_distributions)r&   r   r„   r±  r°  r²  r´  r³  rµ  ÚindexÚ	index_urlrk  rs  Úeggss                 r   Ú(test_setup_requires_with_python_requiresz:TestSetupRequires.test_setup_requires_with_python_requiresR  sî  € à×Ñ˜=¨#Ô.Ø×Ñ˜=¨#Ô.Ø×Ñ˜>¨3Ô/Ø×Ñ˜=¨#Ô.Ø(ˆÜ!¤# f¨}Ñ&<Ó"=Ó>ˆØ")ÐÜ"Ü�˜Ñ&Ó'¨°Ð7Nô	
ð )ˆÜ!¤# f¨}Ñ&<Ó"=Ó>ˆà”×!Ñ!×'Ñ'Ð(¨¬#×*:Ñ*:×*@Ñ*@Ð)AÀÐDð 	 ô 	#Ü�˜Ñ&Ó'¨°Ð7Nô	
ð ˜Ñ%ˆØ×ÑÜðó÷ ‰fØ'Ø+Ø(?Ø'Ø+Ø(?ð ó ð ô-	
ô0  ¤ E£
Ó+ˆ	Ü×.Ñ.Ó0ñ 	4Ü4Ü�F“ØØÜ °ÈÈÔTô	ˆHô ŸG™GŸL™L¨°:Ó>ˆMÜ�m k ]Ô3÷	4ô Ü””]×5Ñ5´b·g±g·l±lÀ8ÈWÓ6UÓVÓWó
ˆð ˜	�{Ò"Ð"Ñ"÷	4ð 	4ús   ÅAG4Ç4G=Ú!with_dependency_links_in_setup_py)FTc                 ó  — |j                  dd«       |j                  dd«       t        j                  «       5  t        j                  «       5 }t	        t
        j                  j                  |d«      dd«       t
        j                  j                  |d«      }t
        j                  j                  |d«      }t
        j                  j                  |d	«      }t        j                  |«       t        |d
d¬«      5 }|r"t
        j                  j                  |d«      g}ng }|j                  t        d«      j                  |¬«      «       d d d «       t        |d
d¬«      5 }|j                  t        d«      j                  t
        j                  j                  |d«      |¬«      «       d d d «       t        |dg«       d d d «       d d d «       y # 1 sw Y   Œ‡xY w# 1 sw Y   Œ3xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrN  rO  rP  zpython-xlib-42.tar.gzr”  r�  rk  rz   rF  r}   r˜   rÈ   ÚlinkszØ
                        from setuptools import installer, setup
                        setup(setup_requires='python-xlib==42',
                        dependency_links={dependency_links!r})
                        r^  z¢
                        [easy_install]
                        index_url = {index_url}
                        find_links = {find_links}
                        r¾  )r¿  rU   r�  )r   r   rl  r  rž  rV   r   rW   r½   rÊ   rË   r   rº  r   )	r&   r   rÂ  rr  rk  rs  r—  r˜  r_  s	            r   Ú0test_setup_requires_with_find_links_in_setup_cfgzBTestSetupRequires.test_setup_requires_with_find_links_in_setup_cfgŽ  s¶  € ð 	×Ñ˜=¨#Ô.Ø×Ñ˜=¨#Ô.Ü×.Ñ.Ó0ñ $	8Ü×!Ñ!Ó#ð #8 xÜ"Ü—G‘G—L‘L Ð+BÓCÀ]ÐTXôô Ÿ7™7Ÿ<™<¨°*Ó=�Ü "§¡§¡¨X°zÓ B�Ü!#§¡§¡¨h¸Ó!D�Ü—‘˜Ô"Ü˜-¨°wÔ?ð À2Ù8Ü,.¯G©G¯L©L¸À7Ó,KÐ+LÑ(à+-Ð(Ø—H‘HÜðó÷ !™&Ð2B˜&ÓCô÷ô ˜.¨#¸Ô@ð ÀBØ—H‘HÜðó÷ !™&Ü&(§g¡g§l¡l°8¸WÓ&EØ'/ð !ó ô÷ô ˜-¨+¨Ô7÷G#8÷$	8ð $	8÷ð ú÷ð ú÷-#8ð #8ú÷$	8ð $	8úsV   ¹G8ÁB/G,Ã=AGÅG,Å$A
G Æ.G,ÇG8ÇGÇG,Ç G)Ç%G,Ç,G5	Ç1G8Ç8Hc                 ó  — t        j                  «       5  t        j                  «       5 }t        t        j
                  j                  |d«      dd«       t        j
                  j                  |d«      }t	        j                  |«       t        j                  t        d«      ddœ|¬«       t        t        j
                  j                  |d	«      d
g«       t        j                  |«       t        j
                  j                  |d«      }t        j
                  j                  |d	«      }t	        j                  |«       t        |dd¬«      5 }|j                  t        d«      «       ddd«       |j                  dt!        |«      «       |j                  dd«       |j                  dd«       |j                  dd«       t        |dg«       ddd«       ddd«       y# 1 sw Y   ŒxxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)zÅ
        Use case: installing a package with a build dependency on
        an already installed `dep[extra]`, which in turn depends
        on `extra_dep` (whose is not already installed).
        úextra_dep-1.0.tar.gzÚ	extra_depr®  r­  a  
                          import setuptools
                          setuptools.setup(
                              name='dep', version='2.0',
                              extras_require={'extra': ['extra_dep']},
                          )
                         r|   r£  r¤  rz   Ú	dist_infork  r}   r˜   rÈ   ú”
                        from setuptools import installer, setup
                        setup(setup_requires='dep[extra]')
                        NÚPIP_FIND_LINKSr   r«  rN  rO  rP  r�  )r   rl  r  rž  rV   r   rW   r½   r¦  r   r   r
   Ú	add_entryrÊ   rË   r   r€   ©r&   r   rr  Údep_pkgrk  rs  r˜  s          r   Ú4test_setup_requires_with_transitive_extra_dependencyzFTestSetupRequires.test_setup_requires_with_transitive_extra_dependencyº  s¦  € ô ×.Ñ.Ó0ñ -	8Ü×!Ñ!Ó#ð ,8 xä"Ü—G‘G—L‘L Ð+AÓBÀKÐQVôô Ÿ'™'Ÿ,™, x°Ó7�Ü—‘˜Ô!Ü—
‘
ä$(ðó%ð &(ñð #õô  œ"Ÿ'™'Ÿ,™, w°
Ó;¸k¸]ÔKÜ×%Ñ% gÔ.äŸ7™7Ÿ<™<¨°*Ó=�Ü "§¡§¡¨X°zÓ B�Ü—‘˜Ô"Ü˜-¨°wÔ?ð À2Ø—H‘HÜðóô÷ð ×"Ñ"Ð#3´S¸³]ÔCØ×"Ñ" >°3Ô7Ø×"Ñ" =°#Ô6Ø×"Ñ" =°#Ô6Ü˜-¨+¨Ô7÷Y,8÷-	8ð -	8÷>ð ú÷=,8ð ,8ú÷-	8ð -	8ús<   •G;ªD'G/ÅG#Å,A&G/ÇG;Ç#G,Ç(G/Ç/G8	Ç4G;Ç;Hc           	      ó<  — t        j                  «       5  t        j                  «       5 }t        t        j
                  j                  |d«      dt        d«      fddg«       t        j
                  j                  |d«      }t	        j                  |«       t        j                  t        d«      dt        d	«      d
œ|¬«       t        t        j
                  j                  |d«      dg«       t        j                  |«       t        j
                  j                  |d«      }t        j
                  j                  |d«      }t	        j                  |«       t        |dd¬«      5 }|j                  t        d«      «       ddd«       |j                  dt!        |«      «       |j                  dd«       |j                  dd«       |j                  dd«       t        |dg«       ddd«       ddd«       y# 1 sw Y   ŒxxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)zk
        Use case: ensure build requirements' extras
        are properly installed and activated.
        rÇ  rz   a$  
                          import setuptools
                          setuptools.setup(
                              name='extra_dep',
                              version='1.0',
                              py_modules=['extra_dep'],
                          )
                          r[  )zextra_dep.pyr|   Úepdepa(  
                          import setuptools
                          setuptools.setup(
                              name='dep', version='2.0',
                              py_modules=['epcmd'],
                              extras_require={'extra': ['extra_dep']},
                              entry_points='''
                                           [distutils.commands]
                                           epcmd = epcmd:epcmd [extra]
                                           ''',
                          )
                         r|   a  
                                     from distutils.command.build_py import build_py

                                     import extra_dep

                                     class epcmd(build_py):
                                         pass
                                     )rz   rF  zepcmd.pyr¤  rÉ  rk  r}   r˜   rÈ   rÊ  NrË  r   r«  rN  rO  rP  Úepcmd)r   rl  r  rŸ   rV   r   rW   r   r½   r¦  r   r
   rÌ  rÊ   rË   r   r€   rÍ  s          r   Ú.test_setup_requires_with_distutils_command_depz@TestSetupRequires.test_setup_requires_with_distutils_command_depï  sÝ  € ô
 ×.Ñ.Ó0ñ M	4Ü×!Ñ!Ó#ð L4 xäÜ—G‘G—L‘L Ð+AÓBð 'Ü ð!ó	ðð *Ø,ðôô* Ÿ'™'Ÿ,™, x°Ó9�Ü—‘˜Ô!Ü—
‘
ä$(ðó%ð &(Ü$(ð)ó	%ñ!ð6 #õ9ô> œ"Ÿ'™'Ÿ,™, w°
Ó;¸k¸]ÔKÜ×%Ñ% gÔ.äŸ7™7Ÿ<™<¨°*Ó=�Ü "§¡§¡¨X°zÓ B�Ü—‘˜Ô"Ü˜-¨°wÔ?ð À2Ø—H‘HÜðóô÷ð ×"Ñ"Ð#3´S¸³]ÔCØ×"Ñ" >°3Ô7Ø×"Ñ" =°#Ô6Ø×"Ñ" =°#Ô6Ü˜-¨'¨Ô3÷YL4÷M	4ð M	4÷~ð ú÷}L4ð L4ú÷M	4ð M	4ús<   •HªD>HÅ(G:ÆA&HÇ)HÇ:HÇ?HÈH	ÈHÈHN)r-   r.   r/   rY  r  r  r  rS  rb  rd   r¨   Úparametrizerv  rˆ  r‘  r™  r¡  r©  rÁ  rÅ  rÏ  rÓ  r%   r   r   rL  rL  5  sí   „ òMð< Ø×Ññó ó ðð8€Mð ‡[�[×Ñ˜_¨mÓ<ñ7ó =ð7ð< ‡[�[×Ñ˜_¨mÓ<ñA7ó =ðA7ðF ‡[�[×Ñ˜_¨mÓ<ñ(1ó =ð(1òT>ò:-ò(-ò4:#ðx ‡[�[×ÑÐ@À-ÓPñ)8ó Qð)8òV38ójR4r   rL  c                 óD   — t        | dt        d|›d|›d�«      fdg«       y)z\
    Create a simple sdist tarball at dist_path, containing just a simple
    setup.py.
    rz   zT             import setuptools
             setuptools.setup(
                 name=z,
                 version=z
             )
         r[  N)rŸ   r   )r]  r‹  rh  s      r   rž  rž  D  sK   € ô Øð Üðð  �lð #Ø!˜ð %
ð	óðð ð	
õr   c                 óä  — d|v sJ ‚|j                  d«      }|d   }t        dt        |«      dz   «      D �cg c]  }dj                  |d| «      ‘Œ }}t	        d|›d|›d|›d|›d	�	«      }d
}d|ft
        j                  j                  |d«      |fg}	|dd D ]D  }
t        j                  j                  |
j                  d«      dgz   Ž }|	j                  |df«       ŒF t        | |	«       yc c}w )z¼
    Make an sdist tarball with distname and version which also contains one
    package with the same name as distname.  The top-level package is
    designated a namespace package).
    r¯  r   r   NzE        import setuptools
        setuptools.setup(
            name=z,
            version=z,
            packages=z",
            namespace_packages=[z]
        )
    z7__import__('pkg_resources').declare_namespace(__name__)rz   z__init__.pyr|   )	ÚsplitÚrangero  rW   r   rV   r   r¿   rŸ   )r]  r‹  rh  ÚpartsÚ	nspackageÚidxÚpackagesr¨  Úinitr…   Úpackager‰   s               r   r|  r|  ^  s  € ð �(‰?Ðˆ?à�N‰N˜3Ó€EØ�a‘€Iä16°q¼#¸e»*Àq¹.Ó1IÖJ¨#�—‘˜˜t ˜Õ%ÐJ€HÐJäðð �ð Ø�Kð  Ø�\ð "!Ø!* ð .ð	ó
€Hð E€Dà˜(Ð#¤b§g¡g§l¡l°9¸mÓ&LÈdÐ%SÐT€EØ˜A˜B�<ò %ˆÜ—7‘7—<‘< '§-¡-°Ó"4¸°Ñ"FÐHˆØ�‰�h �^Õ$ð%ô ˆy˜%Õ ùò+ Ks   ·C-c           	      óZ   — t        | dt        d«      j                  |||¬«      fdg«       y )Nrz   zå                import setuptools
                setuptools.setup(
                  name={name!r},
                  version={version!r},
                  python_requires={python_requires!r},
                )
                )r#   rh  Úpython_requiresr[  )rŸ   r   rº  )r]  r‹  rh  rà  s       r   r¶  r¶  ‚  sF   € ÜØð Üðó	÷ ‘&Ø!¨7ÀOð ó ðð ð!	
õr   c                 óª  — t        |«      dkD  sJ ‚t        j                  | d«      5 }|D ]’  \  }}t        j                  |j                  d«      «      }t        j                  |¬«      }t        |j                  «       «      |_        t        t        j                  «       «      |_        |j                  ||¬«       Œ” 	 ddd«       y# 1 sw Y   yxY w)z…
    Create a simple sdist tarball at dist_path, containing the files
    listed in ``files`` as ``(filename, content)`` tuples.
    r   zw:gzr˜   )r#   )ÚfileobjN)ro  r}  rÊ   ÚioÚBytesIOr™   ÚTarInforƒ  ÚsizeÚintÚtimeÚmtimeÚaddfile)r]  r…   rD   r‰   rŠ   Ú
file_bytesÚ	file_infos          r   rŸ   rŸ   š  s©   € ô ˆu‹:˜Š>Ðˆ>Ü	�‰�i Ó	(ð 8¨DØ!&ò 	8ÑˆH�gÜŸ™ G§N¡N°7Ó$;Ó<ˆJÜŸ™¨XÔ6ˆIÜ  ×!4Ñ!4Ó!6Ó7ˆIŒNÜ!¤$§)¡)£+Ó.ˆIŒOØ�L‰L˜¨JˆLÕ7ñ	8÷8÷ 8ñ 8ús   §BC	Ã	Crd  rx  r%   c                 ó(  — t        |«      }dd|› d|› �gt        j                  j                  | «      gdœ}|r|j	                  |«       t        j                  j                  | d«      }	t        j                  |	«       |r«g }
g }|D ]g  }|j                  |«      }|dj                  «       v r|}n|
}t        |t        t        f«      rdj                  |«      }|j                  |› d|› �«       Œi t        d«      j                  d	j                  |
«      d	j                  |«      ¬
«      }nd}t        t        j                  j                  |	d«      dd¬«      5 }|j!                  |«       ddd«       |€t        d«      }t        t        j                  j                  |	d«      dd¬«      5 }|j!                  ||z  «       ddd«       t        j                  j                  | |› d|› d�«      } ||||«       |	S # 1 sw Y   Œ‘xY w# 1 sw Y   ŒGxY w)a—  Creates a source tree under path for a trivial test package that has a
    single requirement in setup_requires--a tarball for that requirement is
    also created and added to the dependency_links argument.

    ``distname`` and ``version`` refer to the name/version of the package that
    the test package requires via ``setup_requires``.  The name of the test
    package itself is just 'test_pkg'.
    rk  re  z==)r#   rh  ra  r_  zname versionú;z: zg
            [metadata]
            {metadata}
            [options]
            {options}
            ú
)ÚoptionsÚmetadatar|   rF  r}   r˜   rÈ   NzI            import setuptools
            setuptools.setup(**%r)
        rz   ú-z.tar.gz)r   rV   r   ÚabspathÚupdaterW   r½   Úpopr×  Ú
isinstanceÚtupler»  r¿   r   rº  rÊ   rË   )r   r‹  rh  rŽ  Úsetup_py_templater�  rb  Únormalized_distnameÚtest_setup_attrsrk  rð  rñ  r#   ÚvalueÚsectionÚtest_setup_cfg_contentsrÎ   Úfoobar_paths                     r   rm  rm  «  s	  € ô$ % XÓ.ÐàØØ1Ð2°"°W°IÐ>Ð?ÜŸW™WŸ_™_¨TÓ2Ð3ñ	Ðñ Ø×Ñ Ô,ä�w‰w�|‰|˜D *Ó-€HÜ‡H�HˆXÔñ ØˆØˆØ!ò 	/ˆDØ$×(Ñ(¨Ó.ˆEØ�~×+Ñ+Ó-Ñ-Ø"‘à!�Ü˜%¤%¬ Ô/ØŸ™ ›�Ø�N‰N˜d˜V 2 e WÐ-Õ.ð	/ô #'ðó#
÷ ‰&Ø—I‘I˜gÓ&Ø—Y‘Y˜xÓ(ð ó 
ñ 	 ð #%ÐÜ	Œb�g‰g�l‰l˜8 [Ó1°3ÀÔ	Ið )ÈQØ	�‰Ð'Ô(÷)ð Ð Ü ðó
Ðô 
Œb�g‰g�l‰l˜8 ZÓ0°#ÀÔ	Hð 6ÈAØ	�‰Ð!Ð$4Ñ4Ô5÷6ô —'‘'—,‘,˜tÐ(;Ð'<¸A¸g¸YÀgÐ%NÓO€KÙ�˜h¨Ô0à€O÷#)ð )ú÷6ð 6ús   ÅG<Æ-HÇ<HÈHÚjavaz0Test cannot run under java when executable is shr¢   c                   ó,   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestScriptHeaderu   /Users/JosÃ©/bin/pythonz$C:\Program Files\Python36\python.exec                 óØ   — dt        j                  t        j                  j	                  t
        j                  «      «      › d�}t         j                  j                  d«      }||k(  sJ ‚y )Nú#!rï  z#!/usr/local/bin/python©	r5   Únt_quote_argrV   r   Únormpathrª   r4  r;   Ú
get_header©r&   rþ   rý   s      r   Útest_get_script_headerz'TestScriptHeader.test_get_script_header   sP   € ØœŸ™¬¯©×(8Ñ(8¼¿¹Ó(HÓIÐJÈ"ÐMˆÜ—‘×+Ñ+Ð,EÓFˆØ˜Ò!Ð!Ñ!r   c                 óØ   — dt        j                  t        j                  j	                  t
        j                  «      «      › d�}t         j                  j                  d«      }||k(  sJ ‚y )Nr  ú -x
z#!/usr/bin/python -xr  r  s      r   Útest_get_script_header_argsz,TestScriptHeader.test_get_script_header_args  sP   € ØœŸ™¬¯©×(8Ñ(8¼¿¹Ó(HÓIÐJÈ%ÐPˆÜ—‘×+Ñ+Ð,BÓCˆØ˜Ò!Ð!Ñ!r   c                 óˆ   — t         j                  j                  d| j                  ¬«      }d| j                  › d�}||k(  sJ ‚y )Nú#!/usr/bin/python©r4  r  r  )r5   r;   r  Únon_ascii_exe©r&   rý   rþ   s      r   Ú$test_get_script_header_non_ascii_exez5TestScriptHeader.test_get_script_header_non_ascii_exe
  sK   € Ü—‘×+Ñ+Ø¨D×,>Ñ,>ð ,ó 
ˆð ˜×*Ñ*Ð+¨5Ð1ˆØ˜Ò!Ð!Ñ!r   c                 ó”   — t         j                  j                  dd| j                  z   dz   ¬«      }d| j                  › d�}||k(  sJ ‚y )Nr  ú"r  ú#!"z"
)r5   r;   r  Úexe_with_spacesr  s      r   Ú&test_get_script_header_exe_with_spacesz7TestScriptHeader.test_get_script_header_exe_with_spaces  sU   € Ü—‘×+Ñ+Ø¨C°$×2FÑ2FÑ,FÈÑ,Lð ,ó 
ˆð ˜×-Ñ-Ð.¨cÐ2ˆØ˜Ò!Ð!Ñ!r   N)	r-   r.   r/   r  r  r	  r  r  r  r%   r   r   r  r  ø  s"   „ ð
 .€MØ=€Oò"ò
"ò
"ó"r   r  c                   ó¼   — e Zd Zd„ Zd„ Z ej                  dej                  «      ej                  j                  e
j                  «      d„ «       «       Zd„ Zdd„Zy)	ÚTestCommandSpecc                 ó\   — t        j                  ddg«      }|j                  «       dk(  sJ ‚y)zx
        Show how a custom CommandSpec could be used to specify a #! executable
        which takes parameters.
        z/usr/bin/envÚpython3z#!/usr/bin/env python3
N)r5   r6   r9   ©r&   r`   s     r   Útest_custom_launch_commandz*TestCommandSpec.test_custom_launch_command  s,   € ô
 �n‰n˜n¨iÐ8Ó9ˆØ�}‰}‹Ð"<Ò<Ð<Ñ<r   c                 óz   — t        j                  dg«      }t         j                  j                  |«      }||u sJ ‚y)zG
        from_param should return an instance of a CommandSpec
        ÚpythonN)r5   r6   Ú
from_param)r&   r`   Úcmd_news      r   Ú.test_from_param_for_CommandSpec_is_passthroughz>TestCommandSpec.test_from_param_for_CommandSpec_is_passthrough"  s4   € ô �n‰n˜h˜ZÓ(ˆÜ—.‘.×+Ñ+¨CÓ0ˆØ�g‰~Ð‰~r   zsys.executablec                 óâ   — t         j                  j                  dd «       t        j                  j                  «       }t        |«      dk(  sJ ‚|j                  «       j                  d«      sJ ‚y )NÚ__PYVENV_LAUNCHER__r   r  )	rV   r•   rõ  r5   r6   r8   ro  r9   r?   r  s     r   Ú/test_from_environment_with_spaces_in_executablez?TestCommandSpec.test_from_environment_with_spaces_in_executable*  sS   € ô 	�
‰
�‰Ð,¨dÔ3Ü�n‰n×-Ñ-Ó/ˆÜ�3‹x˜1Š}Ðˆ}Ø�}‰}‹×)Ñ)¨%Ô0Ð0Ñ0r   c                 óŠ   — t         j                  j                  d«      }t        |«      dk(  sJ ‚d|j	                  «       vsJ ‚y)z†
        In order to support `executable = /usr/bin/env my-python`, make sure
        from_param invokes shlex on that input.
        z/usr/bin/env my-pythonr3   r  N)r5   r6   r   ro  r9   r  s     r   Ú"test_from_simple_string_uses_shlexz2TestCommandSpec.test_from_simple_string_uses_shlex2  s=   € ô
 �n‰n×'Ñ'Ð(@ÓAˆÜ�3‹x˜1Š}Ðˆ}Ø˜#Ÿ-™-›/Ñ)Ð)Ñ)r   Nc                 ó   — t        j                  t        «      5 }t        j                  j                  t        «       «       ddd«       t        j                  «      dk(  sJ |j                  «       ‚y# 1 sw Y   Œ3xY w)zc
        from_param should raise its own TypeError when the argument's type is unsupported
        Nz1Argument has an unsupported type <class 'object'>)	rd   re   Ú	TypeErrorr5   r6   r   Úobjectr€   rû  )r&   Úexc_infos     r   Ú%test_from_param_raises_expected_errorz5TestCommandSpec.test_from_param_raises_expected_error;  sc   € ô �]‰]œ9Ó%ð 	0¨Ü�N‰N×%Ñ%¤f£hÔ/÷	0ô �—‘ÓÐ#VÒVð	à�>‰>ó	ÙV÷	0ð 	0ús   š(A4Á4A=)ÚreturnN)r-   r.   r/   r  r"  r   rñ   r  r  ró   rV   r•   r%  r'  r,  r%   r   r   r  r    sY   „ ò=òð €T‡Z�ZÐ Ð"2×"BÑ"BÓCØ	‡Z�Z‡_�_�R—Z‘ZÓ ñ1ó !ó Dð1ò*ôr   r  c                   ó   — e Zd Zd„ Zy)ÚTestWindowsScriptWriterc                 óø   — t         j                  j                  d«      }|j                  d«      sJ ‚|j	                  d«      sJ ‚|j                  d«      }|j                  d«      }|j                  d«      rJ ‚y )Nr|   r  rï  z\")r5   ÚWindowsScriptWriterr  r?   ÚendswithÚlstripÚrstrip)r&   Úhdrs     r   Útest_headerz#TestWindowsScriptWriter.test_headerG  sm   € Ü×$Ñ$×/Ñ/°Ó3ˆØ�~‰~˜dÔ#Ð#Ð#Ø�|‰|˜DÔ!Ð!Ð!Ø�j‰j˜ÓˆØ�j‰j˜Óˆà—>‘> %Ô(Ð(Ð(Ð(r   N)r-   r.   r/   r6  r%   r   r   r/  r/  F  s   „ ó)r   r/  c                   ó@   — e Zd ZU eed<   eed<   eed<   eed<   eed<   y)ÚVersionStubr¸  r¹  ÚmicroÚreleaselevelÚserialN)r-   r.   r/   rç  Ú__annotations__r€   r%   r   r   r8  r8  Q  s   … ØƒJØƒJØƒJØÓØ„Kr   r8  c           	      óÞ  — t        «       }|j                  d«      }dg|_        d|_        d|_        t        | «      |_        d |_        |j                  d«      }t        | «      |_        d |_        |j                  «       5 }t        j                  «       5  t        j                  d«       d}t        dd	d
dd«      }|j                  dd«       |j                  d|«       |j                  d|«       |j                  |dt        j                  «       «       |j!                  «        d d d «       d d d «       t#        t$        d«      rdnd}	|j&                  j)                  «       }
t+        j,                  |	dz   |
«      rt+        j,                  |	dz   |
«      sJ ‚|j.                  d   dk(  sJ ‚|j.                  d   dk(  sJ ‚|j.                  d   dk(  sJ ‚y # 1 sw Y   Œ°xY w# 1 sw Y   Œ´xY w)NrR   rP   r   Tr&  Úignorez:3.10.1 (main, Dec 21 2021, 09:17:12) [GCC 10.2.1 20210110]é   é
   r   ÚfinalrÓ   zsys.versionzsys.version_infoÚcreate_home_pathÚpypy_version_infoÚpypyr  z3\.?1z3\.?1\dÚ
py_versionz3.10.1Úpy_version_shortz3.10Úpy_version_nodotÚ310)r   Úget_command_objrE   ÚoptimizerÝ   r€   Úinstall_userbaseÚinstall_usersiteÚcontextÚwarningsÚcatch_warningsÚsimplefilterr8  rr   r   r
  Úfinalize_optionsÚhasattrrª   rZ   Úlowerr@   rA   Úconfig_vars)r„   Ú
tmpdir_cwdr   rD   r`   Úinstall_cmdrñ   rh  ré   r#   rZ   s              r   Ú&test_use_correct_python_version_stringrW  Y  s¼  € ô ‹>€DØ
×
Ñ
˜~Ó
.€CØˆv€C„HØ€C„LØ€C„HÜ˜v›;€CÔØ€CÔØ×&Ñ& yÓ1€KÜ#& v£;€KÔ Ø#'€KÔ à	×	Ñ	Ó	ð  %¬×)@Ñ)@Ó)Bñ Ü×Ñ˜hÔ'ØNˆÜ˜1˜b ! W¨aÓ0ˆØ�‰Ð-¨tÔ4Ø�‰�m WÔ-Ø�‰Ð(¨$Ô/Ø�‰�cÐ-¬t¯y©y«{Ô;Ø×ÑÔ÷÷ ô œSÐ"5Ô6‰6¸H€DØ—/‘/×'Ñ'Ó)€Kô 
‡y�y�˜‘ +Ô.Ü�y‰y˜ 
Ñ*¨KÔ8Ð8Ð8ð
 �?‰?˜<Ñ(¨HÒ4Ð4Ð4Ø�?‰?Ð-Ñ.°&Ò8Ð8Ð8Ø�?‰?Ð-Ñ.°%Ò7Ð7Ñ7÷9ð ú÷ ð ús%   ÂG#ÂBGÄ(G#ÇG 	ÇG#Ç#G,ÚdarwinzDhttps://github.com/pypa/setuptools/pull/4716#issuecomment-2447624418c                 óf  — |j                  dd«       |j                  dt        |dz  «      «       |j                  dt        |dz  «      «       |j                  dt        |dz  «      «       |j                  dd«       |j                  d	d«       t        t	        j
                  «       «      }|j                  d
d
¬«       |dz  }|j                  d
d
¬«       |j                  dt        |«      «       d}|dz  j                  |d¬«       t        |j                  d«      «      g k(  sJ ‚t        |j                  d«      «      g k(  sJ ‚t        dddg«       t        |j                  d«      «      g k(  sJ ‚|j                  d«      D �ch c]  }|j                  ’Œ }}|dhz
  }|dhk(  sJ ‚yc c}w )zC`setup.py develop` should honor `--user` even under build isolationrÓ   FÚHOMEz.homeÚUSERPROFILEÚAPPDATAzsite.USER_BASENzsite.USER_SITET)Úparentsr%  z.sys_prefixz
sys.prefixzF__import__('setuptools').setup(name='aproj', version=42, packages=[])
rz   r˜   rÈ   Ú*Údevelopz--userzeasy-install.pthzaproj.egg-link)rr   r   r€   r   rs   Úgetusersitepackagesr½   rG  r»  Úglobr   r#   )rÏ   r   r?  Ú	user_siteÚ
sys_prefixÚsetup_scriptrÎ   Ú	installeds           r   Ú&test_editable_user_and_build_isolationrf  ‡  s®  € ð ×ÑÐ/°Ô7ð( ×Ñ�vœs 8¨gÑ#5Ó6Ô7Ø×Ñ�}¤c¨(°WÑ*<Ó&=Ô>Ø×Ñ�y¤# h°Ñ&8Ó"9Ô:Ø×ÑÐ(¨$Ô/Ø×ÑÐ(¨$Ô/Ü”T×-Ñ-Ó/Ó0€IØ‡O�O˜D¨4€OÔ0à˜MÑ)€JØ×Ñ˜T¨DÐÔ1Ø×Ñ˜¤c¨*£oÔ6ð 	Rð ð �
Ñ×&Ñ& |¸gÐ&ÔFô �
—‘ Ó$Ó%¨Ò+Ð+Ð+Ü�	—‘˜sÓ#Ó$¨Ò*Ð*Ð*ô ˆj˜9 hÐ/Ô0ô �
—‘ Ó$Ó%¨Ò+Ð+Ð+à!*§¡°Ó!4Ö5˜A�—“Ð5€IÐ5àÐ/Ð0Ñ0€IØÐ)Ð*Ò*Ð*Ñ*ùò 6s   Æ
F.)UÚ__doc__r  rã  r=   rä   rV   r§  r@   rs   r6  rª   r}  rX   rè  rN  r~   r   Útypingr   Úunittestr   rd   Újaracor   r¶   r  r  rR   r5   r   r²   r	   r
   Ú
setuptoolsr   Úsetuptools._normalizationr   r   Úsetuptools.distÚsetuptools.sandboxr   Úsetuptools.testsr   Úsetuptools.tests.serverr   r   r|   r   Útextwrapr   Údistutils.errorsrf   r§   r   r    rÌ   r1   r¨   Úfilterwarningsr­   rÏ   ÚusefixturesrÒ   r  r  r   r"  rL  rž  r|  r¶  rŸ   rm  r©   r«   r?   Úis_shr4  r  r  r/  r8  rW  r>  rf  r%   r   r   ú<module>rv     s—  ðÙ ã Û 	Û Û Û 	Û Û 	Û Û Û 
Û Û Û Û Û Ý Ý Ý ã Ý ã ß ,Ð ,ß UÑ UÝ Ý 0Ý <Ý (Ý (Ý *ß ;å Ý ã ð €‡�˜Ôñ/ó ð/÷ñ ñ ðó€÷\2ñ \2ð~ ‡�×ÑÐ0Ó1÷A
ð A
ó 2ðA
ðH ‡�ñó ðð ‡�×Ñ˜Ó)Ø‡�×Ñ˜Ó)÷X
ð X
ó *ó *ðX
ðv ‡�ñó ðð ‡�×ÑÐ,Ó-÷-ð -ó .ð-ð
 ‡�ñó ð÷D"ñ D"÷NL4ñ L4ò^ò4!!òHò08ð& ØØ#ØØØóJðZ ‡�×ÑØ‡L�L×Ñ˜FÓ#Ò@¨¨¯©°·±Ó(@Ø=ð ó ÷"ð "ó	ð"÷:*ñ *÷Z)ñ )ô�*ô ò+8ð\ ‡�×ÑØ‡L�L�HÑØQð ó ñ9+ó	ñ9+r   