+
    êh  ã                   óÞ   € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
t
^ RIHt ]
P                  P                  R4       ! R R4      4       t ! R R4      tR	 tR
 tR tR tR# )z&Support code for distutils test cases.N)ÚDistribution)Úalways_iterableÚdistutils_managed_tempdirc                   ó>   a € ] tR t^t o RtR tRR ltRR ltRtV t	R# )	ÚTempdirManagerzA
Mix-in class that handles temporary directories for test cases.
c                óf   € \         P                  ! 4       pV P                  P                  V4       V# )zZCreate a temporary directory that will be cleaned up.

Returns the path of the directory.
)ÚtempfileÚmkdtempÚtempdirsÚappend)ÚselfÚds   & ÚE/usr/lib/python3/dist-packages/setuptools/_distutils/tests/support.pyr	   ÚTempdirManager.mkdtemp   s)   € ô
 ×ÒÓˆØ�‰×Ñ˜QÔØˆó    c                ób   € \         P                  ! \        V4      !  P                  VRR7       R# )zFWrites a file in the given path.

path can be a string or a sequence.
zutf-8)ÚencodingN)ÚpathlibÚPathr   Ú
write_text)r   ÚpathÚcontents   &&&r   Ú
write_fileÚTempdirManager.write_file   s%   € ô
 	�Š”o dÓ+Ñ,×7Ñ7¸È'Ð7ÖRr   c                óª   € V P                  4       p\        P                  P                  W14      p\        P                  ! V4       \        VR7      pWE3# )z×Will generate a test environment.

This function creates:
 - a Distribution instance using keywords
 - a temporary directory with a package structure

It returns the package directory and the distribution
instance.
)Úattrs)r	   Úosr   ÚjoinÚmkdirr   )r   Úpkg_nameÚkwÚtmp_dirÚpkg_dirÚdists   &&,   r   Úcreate_distÚTempdirManager.create_dist&   s?   € ð —,‘,“.ˆÜ—'‘'—,‘,˜wÓ1ˆÜ
�Š�ÔÜ "Ô%ˆàˆ}Ðr   © N)Úxxx)Úfoo)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r	   r   r$   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s   ø‡ € ñòôS÷ò r   r   c                   ó0   a € ] tR t^8t o RtR tR tRtV tR# )ÚDummyCommandzAClass to store options for retrieval via set_undefined_options().c                ó:   € \        V 4      P                  V4       R # ©N)ÚvarsÚupdate)r   Úkwargss   &,r   Ú__init__ÚDummyCommand.__init__;   s   € ÜˆT‹
×Ñ˜&Ö!r   c                ó   € R # r5   r&   )r   s   &r   Úensure_finalizedÚDummyCommand.ensure_finalized>   s   € Ùr   r&   N)	r)   r*   r+   r,   r-   r9   r<   r.   r/   r0   s   @r   r3   r3   8   s   ø‡ € ÙKò"÷ð r   r3   c                ó€   € \         P                  ! \        4       \        P                  P                  V R4      4       R# )aO  Helper for tests that need the xxmodule.c source file.

Example use:

    def test_compile(self):
        copy_xxmodule_c(self.tmpdir)
        self.assertIn('xxmodule.c', os.listdir(self.tmpdir))

If the source file can be found, it will be copied to *directory*.  If not,
the test will be skipped.  Errors during copy are not caught.
ú
xxmodule.cN)ÚshutilÚcopyÚ_get_xxmodule_pathr   r   r   )Ú	directorys   &r   Úcopy_xxmodule_crD   B   s%   € ô ‡K‚KÔ"Ó$¤b§g¡g§l¡l°9¸lÓ&KÖLr   c                  ó¶   € \         P                  R8”  d   RMRp \        P                  P	                  \        P                  P                  \        4      V 4      # )é   r?   zxxmodule-3.8.c)rF   é	   )ÚsysÚversion_infor   r   r   ÚdirnameÚ__file__)Úsource_names    r   rB   rB   Q   s9   € Ü"%×"2Ñ"2°VÔ";‘,ÐAQ€KÜ�7‰7�<‰<œŸ™Ÿ™¬Ó1°;Ó?Ð?r   c                óè  € \         P                  R8X  d'   \        P                  P	                  R4      V n        R# \        P                  ! R4      '       d–   \        P                  ! R4      pVf   R.V n        R# \        P                  R8X  d
   . V n        R# VP                  R4      w  r#pVP                  \         P                  4       Uu. uF  qU'       g   K  VNK  	  upV n        R# R# u upi )	a�  Function needed to make build_ext tests pass.

When Python was built with --enable-shared on Unix, -L. is not enough to
find libpython<blah>.so, because regrtest runs in a tempdir, not in the
source directory where the .so lives.

When Python was built with in debug mode on Windows, build_ext commands
need their debug attribute set, and it is not done automatically for
some reason.

This function handles both of these things.  Example use:

    cmd = build_ext(dist)
    support.fixup_build_ext(cmd)
    cmd.ensure_finalized()

Unlike most other Unix platforms, Mac OS X embeds absolute paths
to shared libraries into executables, so the fixup is not needed there.
Úntz_d.exeÚPy_ENABLE_SHAREDÚ	RUNSHAREDNÚ.ÚdarwinÚ=)r   ÚnamerH   Ú
executableÚendswithÚdebugÚ	sysconfigÚget_config_varÚlibrary_dirsÚplatformÚ	partitionÚsplitÚpathsep)ÚcmdÚ	runsharedrT   ÚequalsÚvaluer   s   &     r   Úfixup_build_extrc   V   s·   € ô( 
‡w�w�$„Ü—N‘N×+Ñ+¨HÓ5ˆŽ	Ü	×	!Ò	!Ð"4×	5Ò	5ô ×,Ò,¨[Ó9ˆ	ØÒØ #˜uˆCÖä�|‰|˜xÔ'Ø#%�Ö à&/×&9Ñ&9¸#Ó&>Ñ#�˜eØ/4¯{©{¼2¿:¹:Ô/FÓ#LÑ/F¨!Ë!§A AÑ/FÑ#L�Ö ñ 
6ùò $Ms   Ã	C/ÃC/c           	     ó¬   € \         P                  ! V .V P                  4       UUu. uF  p\        VR. 4       F  pVNK  	  K  	  uppV n        V # u uppi )zž
pytest will honor markers as found on the class, but when
markers are on multiple subclasses, only one appears. Use
this decorator to combine those markers.
Ú
pytestmark)Ú	itertoolsÚchainÚ	__bases__Úgetattrre   )ÚclsÚbaseÚmarks   &  r   Úcombine_markersrm   {   sV   € ô —O’O S E¨3¯=©=Ô9ôá9ˆDÜ˜D ,°Ö3ˆDó 	á3ñ 	Ù9ò€C„Nð
 €Jùós   ¦A)r-   rf   r   r   r@   rH   rX   r   Údistutils.corer   ÚpytestÚmore_itertoolsr   rl   Úusefixturesr   r3   rD   rB   rc   rm   r&   r   r   Ú<module>rr      sr   ðÙ ,ã Û 	Û Û Û 
Û Û Ý 'ã Ý *ð ‡�×ÑÐ4Ó5÷$ð $ó 6ð$÷Nñ òMò@ò
"MôJr   