Ë
    nûàgz  ã                   óH  — 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	m
Z
mZmZmZmZmZmZmZ d„ Z G d„ dej&                  «      Zej                  j*                  Z G d„ d«      Z G d	„ d
«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    N)ÚSpecifierSet)	ÚDistributionÚ
EntryPointÚRequirementÚVersionConflictÚ
WorkingSetÚparse_requirementsÚparse_versionÚ	safe_nameÚsafe_versionc                 ób   — t        j                  | «      \  }}t        |d«       t        ||«      S )z$s -> (s0,s1), (s1,s2), (s2, s3), ...N)Ú	itertoolsÚteeÚnextÚzip)ÚiterableÚaÚbs      ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pkg_resources/tests/test_resources.pyÚpairwiser      s)   € ä�=‰=˜Ó"�D€A€qÜˆˆD„MÜˆq�!‹9Ðó    c                   ó0   — e Zd ZdZdd„Zdefd„Zd„ Zd„ Zy)	ÚMetadatazAMock object to return metadata as if from an on-disk distributionÚreturnNc                 ó$   — t        |«      | _        y ©N)ÚdictÚmetadata)ÚselfÚpairss     r   Ú__init__zMetadata.__init__#   s   € Ü˜U›ˆ�r   c                 ó   — || j                   v S r   ©r   ©r   Únames     r   Úhas_metadatazMetadata.has_metadata&   s   € Ø�t—}‘}Ð$Ð$r   c                 ó    — | j                   |   S r   r#   r$   s     r   Úget_metadatazMetadata.get_metadata)   s   € Ø�}‰}˜TÑ"Ð"r   c                 óJ   — t        j                  | j                  |«      «      S r   )Úpkg_resourcesÚyield_linesr(   r$   s     r   Úget_metadata_lineszMetadata.get_metadata_lines,   s   € Ü×(Ñ(¨×):Ñ):¸4Ó)@ÓAÐAr   )r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   Úboolr&   r(   r,   © r   r   r   r       s!   „ ÙKó$ð% Dó %ò#óBr   r   c                   óz  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Z	d„ Z
ej                  j                   eed	«       d
¬«      Zd„ Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej                  j9                  ej<                  dd dk(  xr ej<                  j>                  dk7  d¬«      d„ «       Z y)Ú
TestDistroc                 ó*  — t        j                  g d d ¬«      }t        |«      g k(  sJ ‚|d   g k(  sJ ‚|j                  t	        d«      «       |j                  t	        d«      «       |j                  t	        d«      «       |d   sJ ‚t        |«      dgk(  sJ ‚g d¢}|d   D �cg c]  }|j
                  ‘Œ c}|k(  sJ ‚|j                  |d   d   «       |d   D �cg c]  }|j
                  ‘Œ c}d	d
gk(  sJ ‚|j                  t	        d«      «       |d   D �cg c]  }|j
                  ‘Œ c}g d¢k(  sJ ‚t        g «      }t	        d«      }t	        d«      }t        d«      \  }|j                  ||«      j
                  dk(  sJ ‚|j                  |«       |j                  ||«      j
                  d	k(  sJ ‚t        g «      }|j                  |«       |j                  |«       t        j                  t        «      5  |j                  ||«       d d d «       t        g «      }|j                  |«       |j                  |«       |j                  |«       |j                  ||«      j
                  d	k(  sJ ‚y c c}w c c}w c c}w # 1 sw Y   ŒxxY w)N)ÚplatformÚpythonÚFooPkgúFooPkg-1.3_1.eggzFooPkg-1.4-py2.4-win32.eggúFooPkg-1.2-py2.4.eggÚfoopkg)ú1.4ú1.3-1ú1.2é   r<   r>   zFooPkg-1.9.egg)ú1.9r<   r>   zFooPkg>=1.3r@   )r*   ÚEnvironmentÚlistÚaddÚdist_from_fnÚversionÚremover   r	   Ú
best_matchÚpytestÚraisesr   )r   ÚadÚexpectedÚdistÚwsÚfoo12Úfoo14Úreqs           r   ÚtestCollectionzTestDistro.testCollection4   sJ  € ä×&Ñ& r°DÀÔFˆÜ�B‹x˜2Š~Ðˆ~Ø�(‰|˜rÒ!Ð!Ð!Ø
�‰Œ|Ð.Ó/Ô0Ø
�‰Œ|Ð8Ó9Ô:Ø
�‰Œ|Ð2Ó3Ô4ð �(Š|Ðˆ|ä�B‹x˜H˜:Ò%Ð%Ð%ò +ˆØ)+¨H©Ö6 �—“Ò6¸(ÒBÐBÐBð 	�	‰	�"�X‘,˜q‘/Ô"Ø)+¨H©Ö6 �—“Ò6¸5À%¸.ÒHÐHÐHð 	�‰Œ|Ð,Ó-Ô.Ø)+¨H©Ö6 �—“Ò6Ò:OÒOÐOÐOä˜‹^ˆÜÐ3Ó4ˆÜÐ9Ó:ˆÜ# MÓ2‰ˆð �}‰}˜S "Ó%×-Ñ-°Ò6Ð6Ð6à
�‰ˆuŒØ�}‰}˜S "Ó%×-Ñ-°Ò6Ð6Ð6ô ˜‹^ˆØ
�‰ˆuŒØ
�‰ˆuŒÜ�]‰]œ?Ó+ñ 	#Ø�M‰M˜#˜rÔ"÷	#ô ˜‹^ˆØ
�‰ˆuŒØ
�‰ˆuŒØ
�‰ˆuŒØ�}‰}˜S "Ó%×-Ñ-°Ò6Ð6Ñ6ùòC 7ùò 7ùò 7÷"	#ð 	#ús   Â$I:ÃI?ÄJÇ?J	Ê	Jc                 óâ   — |j                   dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j
                  t        d«      k(  sJ ‚y )Nr8   r;   z	1.3.post1ú2.4Úwin32r=   )Úproject_nameÚkeyrE   Ú
py_versionr6   Úparsed_versionr
   ©r   Úds     r   ÚcheckFooPkgzTestDistro.checkFooPkgg   su   € Ø�~‰~ Ò)Ð)Ð)Ø�u‰u˜Ò Ð Ð Ø�y‰y˜KÒ'Ð'Ð'Ø�|‰|˜uÒ$Ð$Ð$Ø�z‰z˜WÒ$Ð$Ð$Ø×Ñ¤=°Ó#9Ò9Ð9Ñ9r   c                 ó  — t        ddddd¬«      }| j                  |«       t        d«      }|j                  t        j                  j
                  › dt        j                  j                  › �k(  sJ ‚|j                  �J ‚y )Nú
/some/pathr8   r=   rS   rT   )rU   rE   rW   r6   ú.)r   r[   rW   ÚsysÚversion_infoÚmajorÚminorr6   rY   s     r   ÚtestDistroBasicszTestDistro.testDistroBasicso   s|   € ÜØØ!ØØØô
ˆð 	×Ñ˜Ôä˜Ó&ˆØ�|‰|¤#×"2Ñ"2×"8Ñ"8Ð!9¸¼3×;KÑ;K×;QÑ;QÐ:RÐSÒSÐSÐSØ�z‰zÐ!Ð!Ñ!r   c                 ót   — t        d«      }| j                  |«       t        d«      }| j                  |«       y )Nz FooPkg-1.3.post1-py2.4-win32.eggz%FooPkg-1.3.post1-py2.4-win32.egg-info)rD   r[   rY   s     r   ÚtestDistroParsezTestDistro.testDistroParse}   s4   € ÜÐ;Ó<ˆØ×Ñ˜ÔÜÐ@ÓAˆØ×Ñ˜Õr   c           	      óX   — t        ddddt        d«      ¬«      }| j                  |«       y )Nr]   r8   rS   rT   )zPKG-INFOz%Metadata-Version: 1.0
Version: 1.3-1
)rU   rW   r6   r   )r   r   r[   rY   s     r   ÚtestDistroMetadatazTestDistro.testDistroMetadataƒ   s1   € ÜØØ!ØØÜÐUÓVô
ˆð 	×Ñ˜Õr   c                 ó2   — t        dt        d|f«      ¬«      S )Nz/fooúdepends.txtr#   )r   r   )r   Útxts     r   ÚdistRequireszTestDistro.distRequires�   s   € Ü˜F¬X°}ÀcÐ6JÓ-KÔLÐLr   c                 óf   — t        |j                  |«      «      t        t        |«      «      k(  sJ ‚y r   )rB   Úrequiresr	   )r   rL   rj   Úextrass       r   ÚcheckRequireszTestDistro.checkRequires�   s)   € Ü�D—M‘M &Ó)Ó*¬dÔ3EÀcÓ3JÓ.KÒKÐKÑKr   c                 óT   — dD ]#  }| j                  | j                  |«      |«       Œ% y )N)úTwisted>=1.5zTwisted>=1.5
ZConfig>=2.0)ro   rk   )r   Úvs     r   ÚtestDistroDependsSimplez"TestDistro.testDistroDependsSimple“   s,   € Ø=ò 	8ˆAØ×Ñ˜t×0Ñ0°Ó3°QÕ7ñ	8r   Ú__dir__z8object.__dir__ necessary for self.__dir__ implementation©Úreasonc                 óB   — t        j                  «       }t        |«       y r   )r*   r   ÚdirrY   s     r   Útest_distribution_dirz TestDistro.test_distribution_dirœ   s   € Ü×&Ñ&Ó(ˆÜˆA�r   c                 óÞ   — t        j                  «       }|j                  «       }d|vsJ ‚d |j                  _        |j                  «       }t        |«      t        |«      dz   k(  sJ ‚d|v sJ ‚y )NÚ	test_attrr?   )r*   r   rt   Ú	_providerr{   Úlen©r   rZ   ÚbeforeÚafters       r   Ú+test_distribution_dir_includes_provider_dirz6TestDistro.test_distribution_dir_includes_provider_dir    sh   € ä×&Ñ&Ó(ˆØ—‘“ˆØ &Ñ(Ð(Ð(Ø $ˆ�‰ÔØ—	‘	“ˆÜ�5‹zœS ›[¨1™_Ò,Ð,Ð,Ø˜eÑ#Ð#Ñ#r   c                 óØ   — t        j                  «       }|j                  «       }d|vsJ ‚d |j                  _        |j                  «       }t        |«      t        |«      k(  sJ ‚d|vsJ ‚y )NÚ
_test_attr)r*   r   rt   r|   rƒ   r}   r~   s       r   Ú=test_distribution_dir_ignores_provider_dir_leading_underscorezHTestDistro.test_distribution_dir_ignores_provider_dir_leading_underscoreª   sd   € ä×&Ñ&Ó(ˆØ—‘“ˆØ 6Ñ)Ð)Ð)Ø!%ˆ�‰ÔØ—	‘	“ˆÜ�5‹zœS ›[Ò(Ð(Ð(Ø 5Ñ(Ð(Ñ(r   c                 óh  — t        j                  g «      }t        g «      }t        |j	                  g |«      «      g k(  sJ ‚t        j                  t         j                  «      5  |j	                  t        d«      |«       d d d «       t        j                  dt        d«      ¬«      }|j                  |«       |j                  t        j                  d«      «       t        d«      D ]M  }t        |j	                  t        d«      |«      «      }||gk(  sJ ‚t        t        |j                  |«      «       ŒO t        j                  t        «      5  |j	                  t        d«      |«       d d d «       t        g «      }t        j                  t         j                  «      5  |j	                  t        d«      |«       d d d «       t        j                  d	t        d
«      ¬«      }|j                  |«       t        |j	                  t        d«      |«      «      ||gk(  sJ ‚t        j                  t        «      5 }|j	                  t        d«      |«       d d d «       d}j                   j#                  «       |k(  sJ ‚y # 1 sw Y   �ŒxY w# 1 sw Y   �Œ$xY w# 1 sw Y   ŒÞxY w# 1 sw Y   ŒQxY w)NÚFooú/foo_dir/Foo-1.2.egg)ri   z[bar]
Baz>=2.0r#   zFoo-0.9.eggé   zFoo==0.9zFoo[bar]z/foo_dir/Baz-2.1.egg)ri   r†   zFoo==1.2
Foo!=1.2z-Foo 0.9 is installed but Foo==1.2 is required)r*   rA   r   rB   ÚresolverH   rI   ÚDistributionNotFoundr	   r   Úfrom_filenamer   rC   ÚrangeÚmapr   ÚvalueÚreport)	r   rJ   rM   r†   ÚiÚtargetsÚBazÚvcÚmsgs	            r   ÚtestResolvezTestDistro.testResolve´   s5  € Ü×&Ñ& rÓ*ˆÜ˜‹^ˆä�B—J‘J˜r 2Ó&Ó'¨2Ò-Ð-Ð-ä�]‰]œ=×=Ñ=Ó>ñ 	6Ø�J‰JÔ)¨%Ó0°"Ô5÷	6ô ×(Ñ(Ø"ÜÐ@ÓAô
ˆð 	�‰ˆsŒØ
�‰Œ|×)Ñ)¨-Ó8Ô9ô �q“ò 	'ˆAÜ˜2Ÿ:™:Ô&8¸Ó&?ÀÓDÓEˆGØ˜s˜eÒ#Ð#Ð#Ü”�R—V‘V˜WÓ%Õ&ð	'ô �]‰]œ?Ó+ñ 	;Ø�J‰JÔ)¨*Ó5°rÔ:÷	;ä˜‹^ˆô �]‰]œ=×=Ñ=Ó>ñ 	;Ø�J‰JÔ)¨*Ó5°rÔ:÷	;ä×(Ñ(Ø"¬XÐ6LÓ-Mô
ˆð 	�‰ˆsŒô �B—J‘JÔ1°*Ó=¸rÓBÓCÈÈSÀzÒQÐQÐQä�]‰]œ?Ó+ð 	E¨rØ�J‰JÔ)Ð*>Ó?ÀÔD÷	Eð >ˆØ�x‰x�‰Ó  CÒ'Ð'Ñ'÷E	6ñ 	6ú÷	;ñ 	;ú÷
	;ð 	;ú÷	Eð 	Eús0   Á$JÅJÆ#JÈ<J(ÊJÊJÊJ%Ê(J1c                 óš   — t        j                  g «      }t        g «      }|j                  t	        d«      |«      }t        |«      g k(  sJ ‚y)z5Environment markers are evaluated at resolution time.zFoo;python_version<'2'N)r*   rA   r   r‰   r	   rB   )r   rJ   rM   Úress       r   Ú+test_environment_marker_evaluation_negativez6TestDistro.test_environment_marker_evaluation_negativeÞ   sB   € ä×&Ñ& rÓ*ˆÜ˜‹^ˆØ�j‰jÔ+Ð,DÓEÀrÓJˆÜ�C‹y˜BŠÐ‰r   c                 óè   — t        j                  g «      }t        g «      }t        j                  d«      }|j                  |«       |j                  t        d«      |«      }t        |«      |gk(  sJ ‚y )Nú/foo_dir/Foo-1.2.dist-infozFoo;python_version>='2')	r*   rA   r   r   r‹   rC   r‰   r	   rB   )r   rJ   rM   r†   r—   s        r   Ú+test_environment_marker_evaluation_positivez6TestDistro.test_environment_marker_evaluation_positiveå   sb   € Ü×&Ñ& rÓ*ˆÜ˜‹^ˆÜ×(Ñ(Ð)EÓFˆØ
�‰ˆsŒØ�j‰jÔ+Ð,EÓFÈÓKˆÜ�C‹y˜S˜EÒ!Ð!Ñ!r   c                 ó<  — t        d«      \  }t        d«      \  }t        j                  ||j                  i«      }|j	                  |«      sJ ‚t        d«      \  }t        d«      \  }t        j                  ||j                  i«      }|j	                  |«      sJ ‚y)zy
        If one package foo requires bar without any extras,
        markers should pass for bar without extras.
        Úfoozbar;python_version>='2'zfoo[]N)r	   r*   Ú
_ReqExtrasrn   Úmarkers_pass)r   Ú
parent_reqrP   Ú
req_extrass       r   Ú)test_environment_marker_evaluation_calledz4TestDistro.test_environment_marker_evaluation_calledí   s”   € ô
 +¨5Ó1‰ˆÜ#Ð$=Ó>‰ˆÜ"×-Ñ-¨s°J×4EÑ4EÐ.FÓGˆ
Ø×&Ñ& sÔ+Ð+Ð+ä*¨7Ó3‰ˆÜ#Ð$=Ó>‰ˆÜ"×-Ñ-¨s°J×4EÑ4EÐ.FÓGˆ
Ø×&Ñ& sÔ+Ð+Ñ+r   c                 ó   — t        j                  g «      }t        g «      }t        j                  dt        d«      ¬«      }|j                  |«       t        |j                  t        d«      |«      «      |gk(  sJ ‚t        j                  d«      }|j                  |«       t        |j                  t        d«      |«      «      }|||gk(  sJ ‚y)ú8Extras are also evaluated as markers at resolution time.rš   )ÚMETADATAz5Provides-Extra: baz
Requires-Dist: quux; extra=='baz'r#   r†   ú/foo_dir/quux-1.0.dist-infozFoo[baz]N©
r*   rA   r   r   r‹   r   rC   rB   r‰   r	   ©r   rJ   rM   r†   Úquuxr—   s         r   Ú"test_marker_evaluation_with_extrasz-TestDistro.test_marker_evaluation_with_extrasü   s·   € ä×&Ñ& rÓ*ˆÜ˜‹^ˆÜ×(Ñ(Ø(Üð ó ô
ˆð 	�‰ˆsŒÜ�B—J‘JÔ1°%Ó8¸"Ó=Ó>À3À%ÒGÐGÐGÜ×)Ñ)Ð*GÓHˆØ
�‰ˆtŒÜ�2—:‘:Ô0°Ó<¸bÓAÓBˆØ�s˜D�kÒ!Ð!Ñ!r   c                 ó   — t        j                  g «      }t        g «      }t        j                  dt        d«      ¬«      }|j                  |«       t        |j                  t        d«      |«      «      |gk(  sJ ‚t        j                  d«      }|j                  |«       t        |j                  t        d«      |«      «      }|||gk(  sJ ‚y)r¤   rš   )r¥   zIProvides-Extra: baz-lightyear
Requires-Dist: quux; extra=='baz-lightyear'r#   r†   r¦   zFoo[baz-lightyear]Nr§   r¨   s         r   Ú,test_marker_evaluation_with_extras_normlizedz7TestDistro.test_marker_evaluation_with_extras_normlized  s¸   € ä×&Ñ& rÓ*ˆÜ˜‹^ˆÜ×(Ñ(Ø(Üð ó ô
ˆð 	�‰ˆsŒÜ�B—J‘JÔ1°%Ó8¸"Ó=Ó>À3À%ÒGÐGÐGÜ×)Ñ)Ð*GÓHˆØ
�‰ˆtŒÜ�2—:‘:Ô0Ð1EÓFÈÓKÓLˆØ�s˜D�kÒ!Ð!Ñ!r   c                 ó¬  — t        j                  g «      }t        g «      }t        j                  dt        d«      ¬«      }|j                  |«       t        j                  d«      }|j                  |«       t        j                  d«      }|j                  |«       t        |j                  t        d«      |«      «      }t        |«      |||gk(  sJ ‚y )Nrš   )r¥   zlProvides-Extra: baz
Requires-Dist: quux; extra=='baz'
Provides-Extra: bar
Requires-Dist: fred; extra=='bar'
r#   r¦   z/foo_dir/fred-0.1.dist-infozFoo[baz,bar])r*   rA   r   r   r‹   r   rC   rB   r‰   r	   Úsorted)r   rJ   rM   r†   r©   Úfredr—   s          r   Ú+test_marker_evaluation_with_multiple_extrasz6TestDistro.test_marker_evaluation_with_multiple_extras!  s´   € Ü×&Ñ& rÓ*ˆÜ˜‹^ˆÜ×(Ñ(Ø(Üð ó ô	
ˆð 	�‰ˆsŒÜ×)Ñ)Ð*GÓHˆØ
�‰ˆtŒÜ×)Ñ)Ð*GÓHˆØ
�‰ˆtŒÜ�2—:‘:Ô0°Ó@À"ÓEÓFˆÜ�c‹{˜t T¨3Ð/Ò/Ð/Ñ/r   c                 óÄ  — t        j                  g «      }t        g «      }t        j                  dt        d«      ¬«      }t        j                  dt        d«      ¬«      }t        j                  dt        d«      ¬«      }t        j                  d«      }||||fD ]  }|j                  |«       Œ t        |j                  t        d	«      |«      «      }|||||gk(  sJ ‚y )
Nz/foo_dir/a-0.2.dist-info)r¥   zRequires-Dist: c[a]r#   z/foo_dir/b-0.3.dist-info)r¥   zRequires-Dist: c[b]z/foo_dir/c-1.0.dist-info)r¥   z]Provides-Extra: a
Requires-Dist: b;extra=='a'
Provides-Extra: b
Requires-Dist: foo;extra=='b'z/foo_dir/foo-0.1.dist-infor   r§   )	r   rJ   rM   r   r   Úcr�   rL   r—   s	            r   Ú'test_marker_evaluation_with_extras_loopz2TestDistro.test_marker_evaluation_with_extras_loop6  sÝ   € Ü×&Ñ& rÓ*ˆÜ˜‹^ˆÜ×&Ñ&Ø&ÜÐAÓBô
ˆô ×&Ñ&Ø&ÜÐAÓBô
ˆô ×&Ñ&Ø&Üð ó ô	
ˆô ×(Ñ(Ð)EÓFˆØ˜˜1˜c�Nò 	ˆDØ�F‰F�4�Lð	ä�2—:‘:Ô0°Ó5°rÓ:Ó;ˆØ�q˜!˜Q �nÒ$Ð$Ñ$r   Né   )rˆ   é   Úfinalz/https://github.com/python/cpython/issues/103632c                 óò  — | j                  d«      }| j                  |d«       | j                  |dj                  «       dg«       | j                  |dj                  «       dg«       | j                  |dj                  «       ddg«       | j                  |dj                  «       ddg«       t        j                  t
        j                  «      5  |j                  d	g«       d d d «       y # 1 sw Y   y xY w)
Nz�
            Twisted>=1.5
            [docgen]
            ZConfig>=2.0
            docutils>=0.3
            [fastcgi]
            fcgiapp>=0.1rq   z'Twisted>=1.5 ZConfig>=2.0 docutils>=0.3ÚdocgenzTwisted>=1.5 fcgiapp>=0.1Úfastcgiz4Twisted>=1.5 ZConfig>=2.0 docutils>=0.3 fcgiapp>=0.1z4Twisted>=1.5 fcgiapp>=0.1 ZConfig>=2.0 docutils>=0.3r�   )rk   ro   ÚsplitrH   rI   r*   ÚUnknownExtrarm   rY   s     r   ÚtestDistroDependsOptionsz#TestDistro.testDistroDependsOptionsQ  sï   € ð
 ×Ñðó
ˆð 	×Ñ˜1˜nÔ-Ø×ÑØÐ8×>Ñ>Ó@À8À*ô	
ð 	×Ñ˜1Ð9×?Ñ?ÓAÀIÀ;ÔOØ×ÑØØB×HÑHÓJØ�yÐ!ô	
ð
 	×ÑØØB×HÑHÓJØ˜Ð!ô	
ô
 �]‰]œ=×5Ñ5Ó6ñ 	 Ø�J‰J˜�wÔ÷	 ÷ 	 ñ 	 ús   ÃC-Ã-C6)r2   )!r-   r.   r/   rQ   r[   rc   re   rg   rk   ro   rs   rH   ÚmarkÚskipifÚhasattrÚobjectÚneeds_object_dirry   r�   r„   r•   r˜   r›   r¢   rª   r¬   r°   r³   Úxfailr_   r`   Úreleaselevelr¼   r2   r   r   r4   r4   3   s  „ ò17òf:ò"òòòMóLò8ð —{‘{×)Ñ)Ù�F˜IÓ&Ð&ØIð *ó Ðò
ð ñ$ó ð$ð ñ)ó ð)ò((òTò"ò,ò"ò$"ò&0ò*%ð6 ‡[�[×ÑØ×Ñ˜˜!Ð Ñ'ÒT¨C×,<Ñ,<×,IÑ,IÈWÑ,TØ@ð ó ñ ó	ñ r   r4   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestWorkingSetc                 óN  — t        g «      }t        j                  d«      }|j                  |«       t	        t        d«      «      }t        j                  t        «      5 }|j                  |«       d d d «       d}j                  j                  «       |k(  sJ ‚y # 1 sw Y   Œ+xY w)Nr‡   zFoo<1.2z,Foo 1.2 is installed but Foo<1.2 is required)r   r   r‹   rC   r   r	   rH   rI   r   ÚfindrŽ   r�   )r   rM   r†   rP   r“   r”   s         r   Útest_find_conflictingz$TestWorkingSet.test_find_conflictings  s‡   € Ü˜‹^ˆÜ×(Ñ(Ð)?Ó@ˆØ
�‰ˆsŒô Ô% iÓ0Ó1ˆä�]‰]œ?Ó+ð 	¨rØ�G‰G�CŒL÷	ð =ˆØ�x‰x�‰Ó  CÒ'Ð'Ñ'÷		ð 	ús   ÁBÂB$c                 ó€  — t        g «      }t        d«      }t        j                  d|¬«      }|j	                  |«       t        d«      }t        j                  d|¬«      }|j	                  |«       t        j                  d«      }|j	                  |«       t        j                  d«      }|j	                  |«       t        j                  t        «      5 }|j                  t        d«      «       d	d	d	«       d
}|t        t        dg«      «      z  }j                  j                  «       |k(  sJ ‚y	# 1 sw Y   ŒCxY w)z•
        A ContextualVersionConflict should be raised when a requirement
        conflicts with a prior requirement for a different package.
        )ri   zBaz==1.0z/foo_dir/Foo-1.0.eggr#   )ri   zBaz==2.0z/foo_dir/Bar-1.0.eggz/foo_dir/Baz-1.0.eggz/foo_dir/Baz-2.0.eggzFoo
Bar
Nz1Baz 1.0 is installed but Baz==2.0 is required by ÚBar)r   r   r   r‹   rC   rH   rI   r   r‰   r	   ÚreprÚsetrŽ   r�   )r   rM   Úmdr†   rÊ   r’   r“   r”   s           r   Ú!test_resolve_conflicts_with_priorz0TestWorkingSet.test_resolve_conflicts_with_prior�  s  € ô ˜‹^ˆÜÐ1Ó2ˆÜ×(Ñ(Ð)?È"ÔMˆØ
�‰ˆsŒÜÐ1Ó2ˆÜ×(Ñ(Ð)?È"ÔMˆØ
�‰ˆsŒÜ×(Ñ(Ð)?Ó@ˆØ
�‰ˆsŒÜ×(Ñ(Ð)?Ó@ˆØ
�‰ˆsŒä�]‰]œ?Ó+ð 	9¨rØ�J‰JÔ)¨,Ó7Ô8÷	9ð BˆØŒt”C˜˜“LÓ!Ñ!ˆØ�x‰x�‰Ó  CÒ'Ð'Ñ'÷	9ð 	9ús   ÃD4Ä4D=N)r-   r.   r/   rÈ   rÎ   r2   r   r   rÅ   rÅ   r  s   „ ò(ó(r   rÅ   c            
       óâ   — e Zd Zd„ Zd„ Zd„ Zd„ ZdZej                  j                  de«      d„ «       Zd„ Zd	„ Z e ed
ddg«       edddgddg«       edddg¬«      ¬«      ZdZd„ Zd„ Zd„ Zy)ÚTestEntryPointsc                 óà   — |j                   dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j	                  «       t
        u sJ ‚d}t        |«      |k(  sJ ‚y )Nr�   ú"pkg_resources.tests.test_resources)rÐ   )Úxú<foo = pkg_resources.tests.test_resources:TestEntryPoints [x])r%   Úmodule_nameÚattrsrn   ÚloadrÐ   Ústr)r   ÚepÚexpects      r   ÚassertfieldszTestEntryPoints.assertfields�  sw   € Ø�w‰w˜%ÒÐÐØ�~‰~Ð!EÒEÐEÐEØ�x‰xÐ/Ò/Ð/Ð/Ø�y‰y˜FÒ"Ð"Ð"Ø�w‰w‹yœOÑ+Ð+Ð+ØOˆÜ�2‹w˜&Ò Ð Ñ r   c                 óN   — t        j                  dt        d«      ¬«      | _        y )Nr:   )zrequires.txtz[x]r#   )r   r‹   r   rL   )r   Úmethods     r   Úsetup_methodzTestEntryPoints.setup_method¦  s   € Ü ×.Ñ.Ø"¬XÐ6MÓ-Nô
ˆ�	r   c                 ó\   — t        dddgdg| j                  «      }| j                  |«       y )Nr�   rÒ   rÐ   rÓ   )r   rL   rÛ   ©r   rÙ   s     r   Ú
testBasicszTestEntryPoints.testBasics«  s4   € ÜØØ0ØÐØˆEØ�I‰Ió
ˆð 	×Ñ˜"Õr   c                 ó  — d}t        j                  || j                  «      }| j                  |«       t        j                  d«      }|j                  dk(  sJ ‚|j
                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        j                  d«      }|j                  dk(  sJ ‚|j
                  d	k(  sJ ‚|j                  d
k(  sJ ‚|j                  dk(  sJ ‚d}t        j                  |«      }|j                  dk(  sJ ‚y )NrÔ   zbar baz=  spammity[PING]zbar bazÚspammityr2   )Úpingz fizzly =  wocka:fooÚfizzlyÚwocka)r�   z0html+mako = mako.ext.pygmentplugin:MakoHtmlLexerz	html+mako)r   ÚparserL   rÛ   r%   rÕ   rÖ   rn   )r   ÚsrÙ   Úspecs       r   Ú	testParsezTestEntryPoints.testParseµ  s  € ØJˆÜ×Ñ˜a §¡Ó+ˆØ×Ñ˜"Ôä×ÑÐ8Ó9ˆØ�w‰w˜)Ò#Ð#Ð#Ø�~‰~ Ò+Ð+Ð+Ø�x‰x˜2Š~Ðˆ~Ø�y‰y˜IÒ%Ð%Ð%ä×ÑÐ4Ó5ˆØ�w‰w˜(Ò"Ð"Ð"Ø�~‰~ Ò(Ð(Ð(Ø�x‰x˜8Ò#Ð#Ð#Ø�y‰y˜BŠÐˆð BˆÜ×Ñ˜dÓ#ˆØ�w‰w˜+Ò%Ð%Ñ%r   )r�   zx=a:b:czq=x/nazfez=pish:tush-zzx=f[a]>2Úreject_specc                 óŠ   — t        j                  t        «      5  t        j                  |«       d d d «       y # 1 sw Y   y xY wr   )rH   rI   Ú
ValueErrorr   rç   )r   rë   s     r   Útest_reject_specz TestEntryPoints.test_reject_specÍ  s1   € ä�]‰]œ:Ó&ñ 	*Ü×Ñ˜[Ô)÷	*÷ 	*ñ 	*ús	   š9¹Ac                 óÀ   — t         j                  j                  «       } dj                  di t	        «       ¤Ž}t        j                  |«      }|j                  |k(  sJ ‚y)z<
        Allow any printable character in the name.
        z{name} = module:attrNr2   )ÚstringÚ	printableÚstripÚformatÚlocalsr   rç   r%   )r   r%   ré   rÙ   s       r   Útest_printable_namez#TestEntryPoints.test_printable_nameÒ  sP   € ô
 ×Ñ×%Ñ%Ó'ˆØ,Ð%×,Ñ,Ñ8¬v«xÑ8ˆÜ×Ñ˜dÓ#ˆØ�w‰w˜$ŠÐ‰r   c                 ó&  — t        |«      t        | j                  «      k(  sJ ‚| j                  j                  «       D ]Ñ  \  }}|j                  |«      j                  |j                  k(  sJ ‚|j                  |«      j
                  |j
                  k(  sJ ‚t        |j                  |«      j                  «      t        |j                  «      k(  sJ ‚t        |j                  |«      j                  «      t        |j                  «      k(  rŒÑJ ‚ y r   )	r}   Úsubmap_expectÚitemsÚgetr%   rÕ   r®   rÖ   rn   )r   ÚmrV   rÙ   s       r   ÚcheckSubMapzTestEntryPoints.checkSubMapÜ  sÕ   € Ü�1‹vœ˜T×/Ñ/Ó0Ò0Ð0Ð0Ø×)Ñ)×/Ñ/Ó1ò 	B‰GˆC�Ø—5‘5˜“:—?‘? b§g¡gÒ-Ð-Ð-Ø—5‘5˜“:×)Ñ)¨R¯^©^Ò;Ð;Ð;Ü˜!Ÿ%™% ›*×*Ñ*Ó+¬v°b·h±hÓ/?Ò?Ð?Ð?Ü˜!Ÿ%™% ›*×+Ñ+Ó,´°r·y±yÓ0AÓAÐAÐAñ		Br   Úfeature1Ú
somemoduleÚsomefunctionÚfeature2zanother.moduleÚ	SomeClassÚextra1Úextra2Úfeature3zthis.moduleÚ	something)rn   )rü   rÿ   r  zÏ
            # define features for blah blah
            feature1 = somemodule:somefunction
            feature2 = another.module:SomeClass [extra1,extra2]
            feature3 = this.module [something]
    c                 óv  — | j                  t        j                  d| j                  «      «       t	        j
                  t        «      5  t        j                  dd«       d d d «       t	        j
                  t        «      5  t        j                  dddg«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)NÚxyzzx azfoo=barrÓ   zfoo=baz)rû   r   Úparse_groupÚ
submap_strrH   rI   rí   ©r   s    r   ÚtestParseListzTestEntryPoints.testParseListò  s’   € Ø×Ñœ×/Ñ/°°t·±ÓGÔHÜ�]‰]œ:Ó&ñ 	5Ü×"Ñ" 5¨)Ô4÷	5ä�]‰]œ:Ó&ñ 	@Ü×"Ñ" 3¨°IÐ(>Ô?÷	@ð 	@÷	5ð 	5ú÷	@ð 	@ús   Á	B#ÂB/Â#B,Â/B8c                 óz  — t        j                  d| j                  i«      }| j                  |d   «       t	        |j                  «       «      dgk(  sJ ‚t        j                  d| j                  z   «      }| j                  |d   «       t	        |j                  «       «      dgk(  sJ ‚t        j                  t        «      5  t        j                  ddg«       d d d «       t        j                  t        «      5  t        j                  | j                  «       d d d «       y # 1 sw Y   ŒKxY w# 1 sw Y   y xY w)Nr  z[xyz]
z[xyz])	r   Ú	parse_mapr  rû   rB   ÚkeysrH   rI   rí   )r   rú   s     r   ÚtestParseMapzTestEntryPoints.testParseMapù  sø   € Ü× Ñ  %¨¯©Ð!9Ó:ˆØ×Ñ˜˜5™Ô"Ü�A—F‘F“H‹~ % Ò(Ð(Ð(Ü× Ñ  ¨T¯_©_Ñ!<Ó=ˆØ×Ñ˜˜5™Ô"Ü�A—F‘F“H‹~ % Ò(Ð(Ð(Ü�]‰]œ:Ó&ñ 	5Ü× Ñ  '¨7Ð!3Ô4÷	5ä�]‰]œ:Ó&ñ 	2Ü× Ñ  §¡Ô1÷	2ð 	2÷	5ð 	5ú÷	2ð 	2ús   ÃD%Ã< D1Ä%D.Ä1D:c                 ó¸   — t        dddgdg«      }t        j                  t        j                  «      5  |j                  d¬«       d d d «       y # 1 sw Y   y xY w)Nr�   rÒ   rÐ   rÓ   F)Úrequire)r   rH   Úwarnsr*   ÚPkgResourcesDeprecationWarningr×   rà   s     r   ÚtestDeprecationWarningsz'TestEntryPoints.testDeprecationWarnings  sS   € ÜØÐ7Ð:KÐ9LÈsÈeó
ˆô �\‰\œ-×FÑFÓGñ 	#Ø�G‰G˜EˆGÔ"÷	#÷ 	#ñ 	#ús   ´AÁAN)r-   r.   r/   rÛ   rÞ   rá   rê   Úreject_specsrH   r½   Úparametrizerî   rõ   rû   r   r   r÷   r  r
  r  r  r2   r   r   rÐ   rÐ   œ  s§   „ ò!ò
ò
ò&ð, M€Là‡[�[×Ñ˜]¨LÓ9ñ*ó :ð*òòBñ Ù˜J¨°~Ð6FÓGÙØÐ(¨;¨-¸(ÀHÐ9Mó
ñ ˜J¨¸{¸mÔLô€Mð€Jò@ò
2ó#r   rÐ   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestRequirementsc                 ó.  — t        j                  d«      }t        |«      dk(  sJ ‚t        |«      dk(  sJ ‚|t        d«      k(  sJ ‚|t        d«      k(  sJ ‚|t        d«      k7  sJ ‚|t        d«      k7  sJ ‚|t        d«      k7  sJ ‚|t        d«      k7  sJ ‚y )NúTwisted>=1.2z!Requirement.parse('Twisted>=1.2')ztwisTed>=1.2zTwisted>=2.0z	Zope>=1.2z	Zope>=3.0zTwisted[extras]>=1.2)r   rç   rØ   rË   )r   Úrs     r   rá   zTestRequirements.testBasics  sª   € Ü×Ñ˜nÓ-ˆÜ�1‹v˜Ò'Ð'Ð'Ü�A‹wÐ=Ò=Ð=Ð=Ø”K Ó/Ò/Ð/Ð/Ø”K Ó/Ò/Ð/Ð/Ø”K Ó/Ò/Ð/Ð/Ø”K Ó,Ò,Ð,Ð,Ø”K Ó,Ò,Ð,Ð,Ø”KÐ 6Ó7Ò7Ð7Ñ7r   c                 óÂ   — t        d«      }t        d«      }||k(  sJ ‚t        |«      t        |«      k(  sJ ‚t        |«      dk(  sJ ‚t        d«      t        d«      k7  sJ ‚y )NzTwisted==1.2c1,>=1.2zTwisted>=1.2,==1.2c1ÚTwistedú'Twisted @ https://localhost/twisted.zip)r   rØ   ©r   Úr1Úr2s      r   ÚtestOrderingzTestRequirements.testOrdering  sm   € ÜÐ/Ó0ˆÜÐ/Ó0ˆØ�RŠxˆˆxÜ�2‹wœ#˜b›'Ò!Ð!Ð!Ü�2‹wÐ0Ò0Ð0Ð0Ü˜9Ó%¬Ø5ó*
ò 
ð 	
ñ 
r   c                 ó  — t        d«      }t        j                  d«      }t        j                  d«      }t        j                  d«      }t        d«      |v sJ ‚t        d«      |vsJ ‚d|v sJ ‚d|vsJ ‚||vsJ ‚||vsJ ‚||v sJ ‚y )Nr  r9   zTwisted-1.1.eggzTwisted-1.2.eggr>   ú1.1)r   r   r‹   r
   )r   r  Úfoo_distÚtwist11Útwist12s        r   ÚtestBasicContainsz"TestRequirements.testBasicContains#  s¥   € Ü˜Ó'ˆÜ×-Ñ-Ð.@ÓAˆÜ×,Ñ,Ð->Ó?ˆÜ×,Ñ,Ð->Ó?ˆÜ˜UÓ# qÑ(Ð(Ð(Ü˜UÓ#¨1Ñ,Ð,Ð,Ø˜‰zÐˆzØ˜A‰~Ðˆ~Ø˜qÑ Ð Ð Ø˜aÑÐÐØ˜!‰|Ð‰|r   c           
      ó
  — t        j                  d«      }t        j                  d«      }||k(  sJ ‚t        |j                  «      t        d«      k(  sJ ‚t        |j                  «      t        d«      k(  sJ ‚t	        |«      t	        |«      k(  sJ ‚t	        |«      t	        dd t        d«      t        ddg«      d f«      k(  sJ ‚t	        t        j                  d«      «      t	        dd	t        «       t        «       d f«      k(  sJ ‚y )
NzTwisted[foo,bar]>=1.2zTwisted[bar,FOO]>=1.2)r�   ÚbarÚtwistedz>=1.2r�   r)  r  zhttps://localhost/twisted.zip)r   rç   rÌ   rn   Úhashr   Ú	frozensetr  s      r   ÚtestOptionsAndHashingz&TestRequirements.testOptionsAndHashing0  s  € Ü×ÑÐ6Ó7ˆÜ×ÑÐ6Ó7ˆØ�RŠxˆˆxÜ�2—9‘9‹~¤ ^Ó!4Ò4Ð4Ð4Ü�2—9‘9‹~¤ ^Ó!4Ò4Ð4Ð4Ü�B‹xœ4 ›8Ò#Ð#Ð#Ü�B‹xœ4ØØÜ˜Ó!Ü�u˜e�nÓ%Øð!
ó ò ð 	ð ô Ü×ÑÐGÓHó
äØØ+Ü‹NÜ‹KØð
ó òð 	ñ r   c                 ó   — t        j                  d«      }t        j                  d«      }t        j                  } |d«      |vsJ ‚ |d«      |vsJ ‚ |d«      |vsJ ‚ |d«      |v sJ ‚ |d«      |v sJ ‚ |d«      |v sJ ‚ |d«      |v sJ ‚y )Nz
foo==0.3a2z
foo!=0.3a4zfoo-0.3a4.eggzfoo-0.3a1.eggzfoo-0.3a2.eggzfoo-0.3a3.eggzfoo-0.3a5.egg)r   rç   r   r‹   )r   r  r   rZ   s       r   ÚtestVersionEqualityz$TestRequirements.testVersionEqualityH  s²   € Ü×Ñ˜|Ó,ˆÜ×Ñ˜|Ó,ˆÜ×&Ñ&ˆá�Ó!¨Ñ+Ð+Ð+Ù�Ó!¨Ñ+Ð+Ð+Ù�Ó!¨Ñ+Ð+Ð+á�Ó! RÑ'Ð'Ð'Ù�Ó! RÑ'Ð'Ð'Ù�Ó! RÑ'Ð'Ð'Ù�Ó! RÑ'Ð'Ñ'r   c                 ó$  — t        j                  d«      j                  dk(  sJ ‚t        j                  d«      j                  dk(  sJ ‚t        j                  d«      j                  dk(  sJ ‚t        j                  d«      j                  dk(  sJ ‚y)zQ
        The setuptools project should implement the setuptools package.
        Ú
setuptoolszsetuptools == 0.7zsetuptools == 0.7a1zsetuptools >= 0.7N)r   rç   rU   r	  s    r   ÚtestSetuptoolsProjectNamez*TestRequirements.testSetuptoolsProjectNameV  sƒ   € ô
 × Ñ  Ó.×;Ñ;¸|ÒKÐKÐKä× Ñ Ð!4Ó5×BÑBÀlÒRÐRÐRÜ× Ñ Ð!6Ó7×DÑDÈÒTÐTÐTÜ× Ñ Ð!4Ó5×BÑBÀlÒRÐRÑRr   N)	r-   r.   r/   rá   r!  r'  r-  r/  r2  r2   r   r   r  r    s!   „ ò	8ò
òòò0(ó	Sr   r  c                   ó"  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                  j                  d
g d¢«      d„ «       ZdZej                  j                  d
g d¢ e e eej)                  «       «      «      «      z   «      d„ «       Zd„ Zy)ÚTestParsingc                 ó6   — t        t        d«      «      g k(  sJ ‚y )NÚ )rB   r	   r	  s    r   ÚtestEmptyParsezTestParsing.testEmptyParsec  s   € ÜÔ& rÓ*Ó+¨rÒ1Ð1Ñ1r   c                 óŒ   — g g fddgfg gg fdddgfddgddgffD ](  \  }}t        t        j                  |«      «      |k(  rŒ(J ‚ y )NrÓ   z x
 yÚyzx

)rB   r*   r+   )r   ÚinpÚouts      r   ÚtestYieldingzTestParsing.testYieldingf  sl   € à�ˆHØ�3�%ˆLØˆT�2ˆJØ˜˜S�zÐ"Ø�sˆ^˜c 3˜ZÐ(ð
ò 	?‰HˆC�ô œ×1Ñ1°#Ó6Ó7¸3Ó>Ð>Ð>ñ	?r   c                 ó  — d}t        t        j                  |«      «      d dgfdddgfddgfdg fd	d
gfgk(  sJ ‚t        j                  t
        «      5  t        t        j                  d«      «       d d d «       y # 1 sw Y   y xY w)Na   
                    x
                    [Y]
                    z

                    a
                    [b ]
                    # foo
                    c
                    [ d]
                    [q]
                    v
                    rÓ   ÚYÚzr   r   r²   rZ   Úqrr   z[foo)rB   r*   Úsplit_sectionsrH   rI   rí   )r   Úsamples     r   ÚtestSplittingzTestParsing.testSplittingp  s–   € ðˆô ”M×0Ñ0°Ó8Ó9Ø�C�5ˆMØ�3˜�*ÐØ�3�%ˆLØ�"ˆIØ�3�%ˆLð>
ò 
ð 	
ð 
ô �]‰]œ:Ó&ñ 	7Ü”×-Ñ-¨fÓ5Ô6÷	7÷ 	7ñ 	7ús   ÁA;Á;Bc                 ó¤   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk7  sJ ‚y )	Nzadns-pythonz
WSGI Utilsz
WSGI-UtilszWSGI  UtilsúMoney$$$MakerúMoney-Makerúpeak.webzpeak-web)r   r	  s    r   ÚtestSafeNamezTestParsing.testSafeNameˆ  sa   € Ü˜Ó'¨=Ò8Ð8Ð8Ü˜Ó&¨,Ò6Ð6Ð6Ü˜Ó'¨<Ò7Ð7Ð7Ü˜Ó)¨]Ò:Ð:Ð:Ü˜Ó$¨
Ò2Ð2Ñ2r   c                 ó¤   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚t        d	«      d	k(  sJ ‚y )
Nz1.2-1z	1.2.post1z	1.2 alphaz	1.2.alphaz2.3.4 20050521z2.3.4.20050521rE  rF  rG  )r   r	  s    r   ÚtestSafeVersionzTestParsing.testSafeVersion�  sc   € Ü˜GÓ$¨Ò3Ð3Ð3Ü˜KÓ(¨KÒ7Ð7Ð7ÜÐ,Ó-Ð1AÒAÐAÐAÜ˜OÓ,°Ò=Ð=Ð=Ü˜JÓ'¨:Ò5Ð5Ñ5r   c                 ót  — t        t        d«      «      t        d«      gk(  sJ ‚t        t        d«      «      t        d«      gk(  sJ ‚t        j                  d«      t        d«      k(  sJ ‚t	        j
                  t        «      5  t        j                  d«       d d d «       t	        j
                  t        «      5  t        j                  d«       d d d «       t	        j
                  t        «      5  t        j                  d«       d d d «       t	        j
                  t        «      5  t        j                  d«       d d d «       t	        j
                  t        «      5  t        j                  d	«       d d d «       y # 1 sw Y   ŒæxY w# 1 sw Y   Œ»xY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒexY w# 1 sw Y   y xY w)
NzTwis-Ted>=1.2-1zTwisted >=1.2, \ # more
<2.0zTwisted>=1.2,<2.0zFooBar==1.99a3z>=2.3zx\zx==2 qz	X==1
Y==2ú#)rB   r	   r   rç   rH   rI   rí   r	  s    r   ÚtestSimpleRequirementsz"TestParsing.testSimpleRequirements–  so  € ÜÔ&Ð'8Ó9Ó:ÜÐ)Ó*ð?
ò 
ð 	
ð 
ô Ô&Ð'GÓHÓIÜÐ+Ó,ðN
ò 
ð 	
ð 
ô × Ñ Ð!1Ó2´kÐBRÓ6SÒSÐSÐSÜ�]‰]œ:Ó&ñ 	'Ü×Ñ˜gÔ&÷	'ä�]‰]œ:Ó&ñ 	%Ü×Ñ˜eÔ$÷	%ä�]‰]œ:Ó&ñ 	(Ü×Ñ˜hÔ'÷	(ä�]‰]œ:Ó&ñ 	,Ü×Ñ˜lÔ+÷	,ä�]‰]œ:Ó&ñ 	#Ü×Ñ˜cÔ"÷	#ð 	#÷	'ð 	'ú÷	%ð 	%ú÷	(ð 	(ú÷	,ð 	,ú÷	#ð 	#ús<   ÂE>Â:F
Ã1FÄ(F"ÅF.Å>FÆ
FÆFÆ"F+Æ.F7c                 ól  — t        j                  d«      t        j                  d«      k(  sJ ‚t        j                  d«      t        j                  d«      k7  sJ ‚t        j                  d«      t        j                  d«      k7  sJ ‚t        j                  d«      t        j                  d«      k7  sJ ‚y )Nzfoobar;os_name=='a'zname==1.1;python_version=='2.7'zname==1.1;python_version=='3.6'zname==1.0;python_version=='2.7'zname==1.2;python_version=='2.7'z$name[foo]==1.0;python_version=='3.6'z(name[foo,bar]==1.0;python_version=='3.6')r   rç   r	  s    r   Útest_requirements_with_markersz*TestParsing.test_requirements_with_markers©  sÌ   € Ü× Ñ Ð!6Ó7¼;×;LÑ;LØ!ó<
ò 
ð 	
ð 
ô × Ñ Ø-ó
ä×ÑÐ@ÓAòBð 	Bð Bô × Ñ Ø-ó
ä×ÑÐ@ÓAòBð 	Bð Bô × Ñ Ø2ó
ä×ÑÐIÓJòKð 	Kñ Kr   c                 ó   — t        d«       y )Nzfoo==1.0+org1©r	   r	  s    r   Útest_local_versionzTestParsing.test_local_version·  s
   € Ü˜?Õ+r   c                 ó0   — t        d«       t        d«       y )Nzfoo>=1.0, <3zfoo >= 1.0, < 3rQ  r	  s    r   Ú%test_spaces_between_multiple_versionsz1TestParsing.test_spaces_between_multiple_versionsº  s   € Ü˜>Ô*ÜÐ,Õ-r   )ÚlowerÚupper)
)z1.2-rc1z1.2rc1)ú0.4ú0.4.0)z0.4.0.0rX  )z0.4.0-0z0.4-0)Ú0post1z0.0post1)Ú0pre1ú0.0c1)z0.0.0preview1Ú0c1)r[  z0-rc1)z1.2a1z1.2.a.1)z1.2.az1.2ac                 ó6   — t        |«      t        |«      k(  sJ ‚y r   ©r
   ©r   rU  rV  s      r   r/  zTestParsing.testVersionEquality¾  s   € ô  ˜UÓ#¤}°UÓ';Ò;Ð;Ñ;r   zœ
        0.80.1-3 0.80.1-2 0.80.1-1 0.79.9999+0.80.0pre4-1
        0.79.9999+0.80.0pre2-3 0.79.9999+0.80.0pre2-2
        0.77.2-1 0.77.1-1 0.77.0-1
        ))ú2.1ú2.1.1)Ú2a1Ú2b0)rb  r`  )z2.3a1z2.3)ú2.1-1z2.1-2)rd  ra  )r`  z2.1post4)z2.1a0-20040501r`  )r#  z02.1)z3.2z	3.2.post0)z3.2post1z3.2post2)rW  z4.0)z0.0.4rX  )rY  z0.4post1)z	2.1.0-rc1z2.1.0)z2.1devz2.1a0c                 ó6   — t        |«      t        |«      k  sJ ‚y r   r^  r_  s      r   ÚtestVersionOrderingzTestParsing.testVersionOrderingÖ  s   € ô. ˜UÓ#¤m°EÓ&:Ò:Ð:Ñ:r   c                 óZ   — t        t        d«      «      t        t        d«      «      k(  sJ ‚y)z„
        Ensure that our versions stay hashable even though we've subclassed
        them and added some shim code to them.
        z1.0N)r+  r
   r	  s    r   ÚtestVersionHashablezTestParsing.testVersionHashableï  s&   € ô
 ”M %Ó(Ó)¬T´-ÀÓ2FÓ-GÒGÐGÑGr   N)r-   r.   r/   r7  r<  rC  rH  rJ  rM  rO  rR  rT  rH   r½   r  r/  ÚtorturerB   r   Úreversedrº   rf  rh  r2   r   r   r4  r4  b  s²   „ ò2ò?ò7ò03ò6ò#ò&Kò,ò.ð ‡[�[×ÑØò	
óñ<óð<ð€Gð ‡[�[×ÑØò	
ñ$ ‰x™ §¡£Ó1Ó2Ó
3ñ%	4óñ,;ó-ð,;óHr   r4  c                   óä   — e Zd ZdZej
                  d„ «       Z ej
                  d¬«      d„ «       Zej                  j                   e
j                  «       dk(  d¬«      Zed	„ «       Zed
„ «       Zy)ÚTestNamespacesz8__import__('pkg_resources').declare_namespace(__name__)
c              #   ó(  K  — t        t        d«      st        |«      –— yt        |«      dz   }t        j                  t        |«      |«       	  t	        |«      |«      –— t        j
                  |«       y# t        j
                  |«       w xY w­w)z•
        Where available, return the tempdir as a symlink,
        which as revealed in #231 is more fragile than
        a natural tempdir.
        ÚsymlinkNz-linked)r¿   ÚosrØ   rn  ÚtypeÚunlink)r   ÚtmpdirÚ	link_names      r   Úsymlinked_tmpdirzTestNamespaces.symlinked_tmpdirú  sm   è ø€ ô ”r˜9Ô%Ü�f“+ÒØä˜“K )Ñ+ˆ	Ü
�
‰
”3�v“; 	Ô*ð	!Ø”$�v“,˜yÓ)Ò)ä�I‰I�iÕ øŒB�I‰I�iÕ üs   ‚ABÁA8 Á"BÁ8BÂBT)Úautousec              #   óL  K  — t         j                  j                  «       }t        j                  dd }|j                  d«      }t        j                  j                  t        |«      «       	 d–— |t         _        |t        _        y# |t         _        |t        _        w xY w­w)z”
        Patch sys.path to include the 'site-pkgs' dir. Also
        restore pkg_resources._namespace_packages to its
        former state.
        Nú	site-pkgs)r*   Ú_namespace_packagesÚcopyr_   ÚpathÚmkdirÚappendrØ   )r   rr  Úsaved_ns_pkgsÚsaved_sys_pathÚ	site_pkgss        r   Úpatched_pathzTestNamespaces.patched_path  st   è ø€ ô &×9Ñ9×>Ñ>Ó@ˆÜŸ™¡!˜ˆØ—L‘L Ó-ˆ	Ü�‰�‰œ˜I›Ô'ð	&Ûà0=ŒMÔ-Ø%ŒC�Høð 1>ŒMÔ-Ø%ŒC�Hüs   ‚A+B$Á.B	 Á2B$Â	B!Â!B$ÚWindowsz#591ru   c                 ó,  — |j                  «       }|}t        j                  j                  t	        |dz  «      «       |dz  |dz  f}|D ]\  }|dz  }|dz  }|j                  «        |dz  j                  | j                  d¬«       |dz  j                  | j                  d¬«       Œ^ t        j                  t        d¬	«      5  d
dl}ddd«       dt        j                  v sJ ‚t        j                  t        d¬	«      5  d
dl}ddd«       dt        j                  v sJ ‚t        j                  d   dgk(  sJ ‚t	        |dz  dz  dz  «      t	        |dz  dz  dz  «      g}j                  j                   |k(  sJ ‚y# 1 sw Y   Œ¶xY w# 1 sw Y   Œ†xY w)a  
        Test nested namespace packages
        Create namespace packages in the following tree :
            site-packages-1/pkg1/pkg2
            site-packages-2/pkg1/pkg2
        Check both are in the _namespace_packages dict and that their __path__
        is correct
        ú
site-pkgs2rw  Úpkg1Úpkg2ú__init__.pyúutf-8©Úencodingúpkg_resources.declare_namespace©Úmatchr   Nz	pkg1.pkg2)Úrealpathr_   rz  r|  rØ   Ú
ensure_dirÚ
write_textÚns_strrH   r  ÚDeprecationWarningr„  r*   rx  Ú	pkg1.pkg2r…  Ú__path__)	r   rt  Úreal_tmpdirrr  Ú	site_dirsÚsiter„  r…  rK   s	            r   Útest_two_levels_deepz#TestNamespaces.test_two_levels_deep  s’  € ð '×/Ñ/Ó1ˆØ!ˆÜ�‰�‰œ˜F \Ñ1Ó2Ô3Ø˜[Ñ(¨&°<Ñ*?Ð?ˆ	Øò 	MˆDØ˜&‘=ˆDØ˜&‘=ˆDØ�O‰OÔØ�MÑ!×-Ñ-¨d¯k©kÀGÐ-ÔLØ�MÑ!×-Ñ-¨d¯k©kÀGÐ-ÕLð	Mô �\‰\Ô,Ð4UÔVñ 	Û÷	àœ×:Ñ:Ñ:Ð:Ð:ä�\‰\Ô,Ð4UÔVñ 	Û÷	ð œm×?Ñ?Ñ?Ð?Ð?Ü×0Ñ0°Ñ8¸[¸MÒIÐIÐIô �˜kÑ)¨FÑ2°VÑ;Ó<Ü�˜lÑ*¨VÑ3°fÑ<Ó=ð
ˆð �y‰y×!Ñ! XÒ-Ð-Ñ-÷	ð 	ú÷	ð 	ús   ÃE>Ä F
Å>FÆ
Fc                 ót  — |}|dz  |dz  |dz  f}d}t        |d«      D ]…  \  }}|dkD  r(t        j                  j                  t	        |«      «       |dz  }|dz  }|j                  «        |dz  j                  | j                  d	¬
«       |dz  j                  ||z  d	¬
«       Œ‡ t        j                  t        d¬«      5  ddl}ddl}ddd«       |D �cg c]  }t	        |j                  «       dz  «      ‘Œ  }	}j                  |	k(  sJ ‚|j                  j                   dk(  sJ ‚y# 1 sw Y   Œ_xY wc c}w )aV  
        Test that if multiple versions of the same namespace package subpackage
        are on different sys.path entries, that only the one earliest on
        sys.path is imported, and that the namespace package's __path__ is in
        the correct order.

        Regression test for https://github.com/pypa/setuptools/issues/207
        rw  rƒ  z
site-pkgs3z__version__ = %rr?   ÚnspkgÚsubpkgr†  r‡  rˆ  rŠ  r‹  r   N)Ú	enumerater_   rz  r|  rØ   rŽ  r�  r�  rH   r  r‘  r™  Únspkg.subpkgr�  r“  rš  Ú__version__)
r   rt  rr  r•  Úvers_strÚnumberr–  r™  rš  rK   s
             r   Útest_path_orderzTestNamespaces.test_path_orderC  sA  € ð "ˆà�[Ñ Ø�\Ñ!Ø�\Ñ!ð
ˆ	ð &ˆä% i°Ó3ò 	U‰LˆF�DØ˜ŠzÜ—‘—‘¤ D£	Ô*Ø˜7‘NˆEØ˜XÑ%ˆFØ×ÑÔØ�]Ñ"×.Ñ.¨t¯{©{ÀWÐ.ÔMØ�mÑ#×/Ñ/°¸6Ñ0AÈGÐ/ÕTð	Uô �\‰\Ô,Ð4UÔVñ 	 ÛÛ÷	 ð @IÖI°t”C˜Ÿ™›¨'Ñ1Õ2ÐIˆÐIØ�~‰~ Ò)Ð)Ð)Ø�|‰|×'Ñ'¨1Ò,Ð,Ñ,÷	 ð 	 üò Js   Ã	D)Ã#D5Ä)D2N)r-   r.   r/   r�  rH   Úfixturert  r€  r½   rÂ   r6   ÚsystemÚissue591r—  r   r2   r   r   rl  rl  ÷  sŒ   „ ØH€Fà‡^�^ñ!ó ð!ð" €V‡^�^˜DÔ!ñ&ó "ð&ð  �{‰{× Ñ   §¡Ó!2°iÑ!?ÈÐ ÓO€Hàñ!.ó ð!.ðF ñ!-ó ñ!-r   rl  )r   ro  r6   rð   r_   rH   Úpackaging.specifiersr   r*   r   r   r   r   r   r	   r
   r   r   r   ÚEmptyProviderr   r‹   rD   r4   rÅ   rÐ   r  r4  rl  r2   r   r   ú<module>r¦     s§   ðÛ Û 	Û Û Û 
ã Ý -ã ÷
÷ 
õ 
òôBˆ}×*Ñ*ô Bð  ×)Ñ)×7Ñ7€÷| ñ | ÷~	'(ñ '(÷Tn#ñ n#÷bRSñ RS÷jRHñ RH÷jn-ò n-r   