
    7fs              	       ^   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
mZ ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ 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"Z#dddgddgidej$        %                    dd          gfgdZ&de&z  Z' edej$        %                    dd          gej$        %                    dd          g          Z(e(j)        e(j*        z   Z+ej,        d             Z-d Z.d Z/d Z0d  Z1ej2        3                     e1            d!"          Z4ej2        5                    d#d$"          Z6ej2        5                    e	j7        8                    d%           d&"          Z9d' Z:d( Z; G d) d*          Z<d+ Z= G d, d-          Z>d. Z?dS )/zsdist tests    Ncleandoc)mock)	run_setup)Command)metadata)SetuptoolsDeprecationWarning)sdist)manifest_maker)Distribution)	Extension)fail_on_ascii   )	Filenames
sdist_testz0.0z*.txtdatade.dat)nameversionpackagespackage_data
data_filesz*from setuptools import setup

setup(**%r)
sdist_test.fzf.cf.hr   sourcesdependsc               #   (  K   t           j        t           j        }} t          j                    t          j                    ct           _        t           _        	 d V  | |ct           _        t           _        d S # | |ct           _        t           _        w xY wN)sysstdoutstderrioStringIO)
old_stdout
old_stderrs     Y/home/feoh/.local/pipx/shared/lib/python3.11/site-packages/setuptools/tests/test_sdist.pyquietr)   8   sm       Z
J[]]BKMMCJ
8!+Z
CJJJZ
CJ7777s   A6 6Bc                     t          | t                    s3|                     t          j                            d          d          S |                     t          j        d          S )Nascii   //)
isinstancestrreplaceossepencodepaths    r(   posixr6   C   sL    dC   )||BFMM'22D999||BFC(((    c                     t          | t                    rt          j        d|           S 	 |                     d          } t          j        d|           } |                     d          } n# t          $ r Y nw xY w| S )NNFDutf-8)r.   r/   unicodedata	normalizedecoder3   UnicodeErrorr4   s    r(   	decomposer?   K   s    $ 2$UD111{{7##$UD11{{7##   Ks   ?A, ,
A98A9c                 ~    t          | d          5 }|                                cd d d            S # 1 swxY w Y   d S )Nrb)openread)filenamefps     r(   read_all_bytesrF   W   s~    	h		 wwyy                 s   266c                      	 t          j        t          j                  \  } }t	          j        |            t	          j        |           d S # t          $ r Y dS w xY w)N)suffixT)tempfilemkstempr   latin_1r1   closeremove	Exception)descrD   s     r(   latin1_failrP   \   sf    !)1BCCCh

	(   tts   A
A 
AAz)System does not support latin-1 filenames)reasonz%os.environ.get('PYTEST_XDIST_WORKER')zpytest-dev/pytest-xdist#843
setuptoolsz/the test is not supported with stdlib distutilsc                 J    t          | d                                           | S )Nwb)rB   rL   r4   s    r(   touchrU   u   s#    tKr7   c                     	 t          j        | |           n,# t          t          f$ r t	          j        d           Y d S w xY w|S )Nzsymlink not supported in OS)r1   symlinkOSErrorNotImplementedErrorpytestskip)srcdsts     r(   symlink_or_skip_testr^   z   s\    

3()   1222tt Js    %A Ac                   v   e Zd Z ej        d          d             Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd d d d dZeej                            de                                          d                         Zd Zd Zd Zd Zd Zed             Zed             Zed             Zed             Zed             Zeed                         Z e!d             Z"eed                         Z#dd d!d"Z$ej                            d#e$                                          d$             Z%d% Z&d& Z'd' Z(d(S ))TestSdistTestT)autousec              #     K   |dz  }|                                  |dz                      t          d           |dz  }|                                  |dz  }|                                  dD ]}t          ||z             t          |dz             t          D ]}t          ||z             |                                5  |V  d d d            d S # 1 swxY w Y   d S )	Nproject_rootsetup.pyr:   encodingr   r   )z__init__.pya.txtb.txtc.rstr   )mkdir
write_textSETUP_PYrU   EXTENSION_SOURCESas_cwd)selftmpdirtest_pkgdata_folderfnames        r(   
source_dirzTestSdistTest.source_dir   sN     .(	*	((G(DDD L(sl @ 	$ 	$E(U"####kG#$$$ ' 	" 	"E&5.!!!!]]__ 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   CCCc                 >   |j         j        }t          j                            dd          |v sJ t          j                            dd          |v sJ t          j                            dd          |vsJ t          j                            dd          |v sJ d S )Nr   rg   rh   ri   r   r   )filelistfilesr1   r5   join)ro   cmdmanifests      r(   assert_package_data_in_manifestz-TestSdistTest.assert_package_data_in_manifest   s    <%w||L'22h>>>>w||L'22h>>>>w||L'22(BBBBw||C))X555555r7   c                    i t           dt          gi}t          |          }d|_        t	          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   |S )Next_modulesrd   )SETUP_ATTRS	EXTENSIONr   script_namer
   ensure_finalizedr)   runro   setup_attrsdistry   s       r(   setup_with_extensionz"TestSdistTest.setup_with_extension   s    AAmi[AAK((%DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
s   A<<B B c                     t          t                    }d|_        t          |          }|                                 t                      5  |                                 ddd           n# 1 swxY w Y   |                     |           dS )zRegression test for pull request #4: ensures that files listed in
        package_data are included in the manifest even if they're not added to
        version control.
        rd   N)r   r~   r   r
   r   r)   r   r{   )ro   r   ry   s      r(   test_package_data_in_sdistz(TestSdistTest.test_package_data_in_sdist   s     K((%DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,,S11111   A..A25A2c                 D   i t           ddi}|d         sJ t          |          }d|_        t          |          }|                                 t                      5  |                                 ddd           n# 1 swxY w Y   |                     |           dS )zU
        Ensure package_data and include_package_data work
        together.
        include_package_dataTr   rd   N)r~   r   r   r
   r   r)   r   r{   r   s       r(   3test_package_data_and_include_package_data_in_sdistzATestSdistTest.test_package_data_and_include_package_data_in_sdist   s    
 DC&<dCC>****K((%DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,,S11111   B  BBc                     |                                  }|                     |           |j        j        }t          D ]}||v sJ 	dS )z
        Ensure that the files listed in Extension.sources and Extension.depends
        are automatically included in the manifest.
        N)r   r{   rv   rw   rm   )ro   ry   rz   r5   s       r(   test_extension_sources_in_sdistz-TestSdistTest.test_extension_sources_in_sdist   s`    
 '')),,S111<%% 	$ 	$D8#####	$ 	$r7   c                     t           D ]}t          j        |           |                                 }|                     |           |j        j        }t           D ]}||vsJ 	dS )z
        Similar to test_extension_sources_in_sdist but the referenced files don't exist.
        Missing files should not be included in distribution (with no error raised).
        N)rm   r1   rM   r   r{   rv   rw   )ro   r5   ry   rz   s       r(   test_missing_extension_sourcesz,TestSdistTest.test_missing_extension_sources   s~    
 & 	 	DIdOOOO'')),,S111<%% 	( 	(Dx'''''	( 	(r7   c                    g }t           D ]}t          j                            |          \  }}|dz   |z   }t          j        ||           t          t          j                            |          |           |                    |           |                                 }| 	                    |           |j
        j        }t           D ]}||v sJ 	|D ]}||vsJ 	dS )z
        Similar to test_extension_sources_in_sdist but the referenced files are
        instead symbolic links to project-local files. Referenced file paths
        should be included. Symlink targets themselves should NOT be included.
        z_target.N)rm   r1   r5   splitextrenamer^   basenameappendr   r{   rv   rw   )ro   	symlinkedr5   baseexttargetry   rz   s           r(    test_symlinked_extension_sourcesz.TestSdistTest.test_symlinked_extension_sources   s    	% 	% 	%D((..ID#J&,FIdF### !1!1&!9!94@@@V$$$$'')),,S111<%% 	$ 	$D8##### 	( 	(Dx'''''	( 	(r7   c                  |    t           j                            t           j                            dd                    S )Nr   r   )r1   r5   abspathrx    r7   r(   <lambda>zTestSdistTest.<lambda>  s(    GOOBGLLu==>> r7   c                  F    t           j                            dddd          S )Nr   ..r   r1   r5   rx   r   r7   r(   r   zTestSdistTest.<lambda>  s    GLLt\5AA r7   c                  B    t           j                            dd          S )Nr   zthis_file_does_not_exist.hr   r   r7   r(   r   zTestSdistTest.<lambda>
  s    GLL'CDD r7   c                  x    t          t          t          j                            dd                    d          S )Nr   zoutside_of_project_root.hz	symlink.h)r^   rU   r1   r5   rx   r   r7   r(   r   zTestSdistTest.<lambda>  s3     bgll4)DEEFF  r7   )zmust be relativezcan't have `..` segmentszdoesn't existzmust be inside the project rootrQ   c                 z  	  | j         |                     	t          dg 	g          }i t          d|gi}t          |          }d|_        t          |          }|                                 t                      5  |                    t          j
                  5  |                                 ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                     |           |j        j        }	|vsJ 	fd|j        D             }t!          |          dk    sJ |\  }||v sJ dS )a  
        Due to backwards compatibility reasons, `Extension.depends` should accept
        invalid/weird paths, but then ignore them when building a sdist.

        This test verifies that the source distribution is still built
        successfully with such paths, but that instead of adding these paths to
        the manifest, we emit an informational message, notifying the user that
        the invalid path won't be automatically included.
        r   r   r}   rd   Nc                 P    g | ]"\  }}}|d k    r|t           j        k    r|v  |#S )root)loggingINFO).0loggerlevelmessageinvalid_paths       r(   
<listcomp>z@TestSdistTest.test_invalid_extension_depends.<locals>.<listcomp>5  sN     
 
 
(&  W\)) G++ 
 ,++r7   r   )_INVALID_PATHSr   r~   r   r   r
   r   r)   at_levelr   r   r   r{   rv   rw   record_tupleslen)
ro   rQ   caplog	extensionr   r   ry   rz   expected_messager   s
            @r(   test_invalid_extension_dependsz,TestSdistTest.test_invalid_extension_depends  s    3t*6244!N
 
 
	
 BAmi[AAK((%DkkWW 	 	foogl33 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	,,S111<%8++++
 
 
 
,2,@
 
 
 #$$)))).	)))))))s6   ? CC 4C C	CC	CCCc                    ddl m} t          j                     G fdd|          }i t          ddi}|d         sJ t          |          }d|_        t          |          }|                                 d	|i|_	        d	|i|j
        _	        |j
                            d	          |k    sJ d
}t                      5  t          j        t          |          5  |                                 ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y                                    |                     |           dS )zq
        Ensure projects defining custom build_py don't break
        when creating sdists (issue #2849)
        r   )build_pyc                   &     e Zd ZdZ fdZ xZS )9TestSdistTest.test_custom_build_py.<locals>.CustomBuildPyzX
            Some projects have custom commands inheriting from `distutils`
            c                 X                  t                                                      S r    )superget_data_files)ro   	__class__using_custom_command_guards    r(   r   zHTestSdistTest.test_custom_build_py.<locals>.CustomBuildPy.get_data_filesP  s(    **,,,ww--///r7   )__name__
__module____qualname____doc__r   __classcell__)r   r   s   @r(   CustomBuildPyr   K  sH         0 0 0 0 0 0 0 0 0 0r7   r   r   Tr   rd   r   zsetuptools instead of distutils)matchN)distutils.command.build_pyr   r   Mockr~   r   r   r
   r   cmdclassdistributionget_command_classr)   rZ   warnsr	   r   assert_calledr{   )ro   OrigBuildPyr   r   r   ry   msgr   s          @r(   test_custom_build_pyz"TestSdistTest.test_custom_build_pyB  s   
 	GFFFFF%)Y[["	0 	0 	0 	0 	0 	0 	0K 	0 	0 	0 DC&<dCC>****K((%Dkk #M2%/$?!11*==NNNN/WW 	 	fl#?sKKK 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#00222,,S11111s6   DC?3D?D	DD	DDDc                    t          t                    }d|_        t          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   |j        j        }d|v sJ d S Nfoo.pyrd   )	r   r~   r   r
   r   r)   r   rv   rw   ro   r   ry   rz   s       r(   test_setup_py_existsz"TestSdistTest.test_setup_py_existsh  s    K((#DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <%X%%%%%%r   c                    t          t                    }d|_        t          |          }|                                 t
          j                            d          rt          j        d           t                      5  |
                                 d d d            n# 1 swxY w Y   |j        j        }d|vsJ d S r   )r   r~   r   r
   r   r1   r5   existsrM   r)   r   rv   rw   r   s       r(   test_setup_py_missingz#TestSdistTest.test_setup_py_missingt  s    K((#Dkk7>>*%% 	"Ij!!!WW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <%))))))s    B!!B%(B%c                    t          ddd          5 }|                    d           d d d            n# 1 swxY w Y   t          t                    }d|_        t          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   |j	        j
        }d|vsJ d S )NMANIFEST.inwr:   re   zexclude setup.pyr   rd   )rB   writer   r~   r   r
   r   r)   r   rv   rw   )ro   manifest_filer   ry   rz   s        r(   test_setup_py_excludedz$TestSdistTest.test_setup_py_excluded  sA   -w777 	4= 2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 K((#DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <%))))))s   599B--B14B1c                    t          |dz             t          |dz             t          t                    }d|_        t	          |          }|                                 t                      5  |                                 ddd           n# 1 swxY w Y   t          d |j	        j
                  }d|vs
J |            d|vs
J |            d|vs
J |            dS )z
        Make sure default files (README.*, etc.) are added in a case-sensitive
        way to avoid problems with packages built on Windows.
        z
readme.rstz	SETUP.cfgzsetup.PYNc                 *    |                                  S r    )lower)xs    r(   r   z>TestSdistTest.test_defaults_case_sensitivity.<locals>.<lambda>  s     r7   rd   z	setup.cfg)rU   r   r~   r   r
   r   r)   r   maprv   rw   ro   rt   r   ry   rz   s        r(   test_defaults_case_sensitivityz,TestSdistTest.test_defaults_case_sensitivity  s5    	j<'(((j;&'''K(( &DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 **CL,>??8+++X+++)))8)))(***H*****s   1BBBc                 r   t          t                    }d|_        t          |          }t          j                            dd          |_        t	          j        d           t          j                            dd          }t          |           t                      5  |                                 |j                            |           |                                 d d d            n# 1 swxY w Y   t          |j                  }|                    d          }t#          |          |v sJ d S )Nrd   sdist_test.egg-infoSOURCES.txtr   u   smörbröd.pyUTF-8)r   r~   r   r   r1   r5   rx   rz   rj   rU   r)   r   rv   r   write_manifestrF   r=   r6   )ro   r   mmrD   contents
u_contentss         r(   +test_manifest_is_written_with_utf8_encodingz9TestSdistTest.test_manifest_is_written_with_utf8_encoding  sL    K((%D!!gll#8-HH
&''' 7<<o>> 	h WW 	  	 FFHHHKx(((	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 
 ""+.. __W--
 X*,,,,,,s   !AC00C47C4c                    t          t                    }d|_        t          |          }t          j                            dd          |_        t	          j        d           t          j                            dt          j
                  }t          |           t                      5  |                                 |                    d          }|j        j                            |           |                                 d d d            n# 1 swxY w Y   t'          |j                  }|                    d           t)          |          |v sJ ||j        j        v sJ d S )Nrd   r   r   
   sdist_testr:   r   )r   r~   r   r   r1   r5   rx   rz   rj   r   utf_8rU   r)   r   r=   rv   rw   r   r   rF   r6   ro   r   r   rD   
u_filenamer   s         r(   )test_write_manifest_allows_utf8_filenamesz7TestSdistTest.test_write_manifest_allows_utf8_filenames  sy    K((%D!!gll#8-HH
&'''7<<y?? 	h WW 	  	 FFHHH!11JK$$Z000	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ""+.. 	    X(**** R[.......s   +ADDDc                    t          t                    }d|_        t          |          }t          j                            dd          |_        t	          j        d           t          j                            dt          j
                  }t                      5  |                                 |                    dd          }|j                            |           |                                 ddd           n# 1 swxY w Y   t#          |j                  }|                    d           t%          |          |vsJ ||j        j        vsJ dS )	a  
        Files that cannot be encoded to UTF-8 (specifically, those that
        weren't originally successfully decoded and have surrogate
        escapes) should be omitted from the manifest.
        See https://bitbucket.org/tarek/distribute/issue/303 for history.
        rd   r   r   r   r:   surrogateescapeNr   )r   r~   r   r   r1   r5   rx   rz   rj   r   rK   r)   r   r=   rv   r   r   rF   r6   rw   r   s         r(   ,test_write_manifest_skips_non_utf8_filenamesz:TestSdistTest.test_write_manifest_skips_non_utf8_filenames  so    K((%D!!gll#8-HH
&''' 7<<y/@AA WW 	  	 FFHHH!2CDDJKz***	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ""+.. 	    Xh.... !2222222s   ADDDc                 
   t          t                    }d|_        t          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   t          j        	                    dt          j                  }t          j        	                    dd          |_        t          |j        d          }|                    d|z              |                                 t!          |           g |j        _        t                      5  |                                 d d d            n# 1 swxY w Y   |                    d          }||j        j        v sJ d S )Nrd   r   r   r   ab   
r:   )r   r~   r   r
   r   r)   r   r1   r5   rx   r   r   rz   rB   r   rL   rU   rv   rw   read_manifestr=   ro   r   ry   rD   rz   s        r(   (test_manifest_is_read_with_utf8_encodingz6TestSdistTest.test_manifest_is_read_with_utf8_encoding  s    K((%Dkk WW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 7<<y??w||$9=IId++ux'((( 	h  WW 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ??7++3<-------$   A..A25A22EEEc                 
   t          t                    }d|_        t          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   t          j        	                    dt          j                  }t          j        	                    dd          |_        t          |j        d          }|                    d|z              |                                 t!          |           g |j        _        t                      5  |                                 d d d            n# 1 swxY w Y   |                    d          }||j        j        vsJ d S )Nrd   r   r   r   r   r   latin-1)r   r~   r   r
   r   r)   r   r1   r5   rx   r   rK   rz   rB   r   rL   rU   rv   rw   r   r=   r   s        r(   +test_read_manifest_skips_non_utf8_filenamesz9TestSdistTest.test_read_manifest_skips_non_utf8_filenames.  s    K((%Dkk WW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 7<<y/@AAw||$9=IId++ux'((( 	h  WW 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ??9--s|1111111r   c                    t          |                     t                              }d|_        t	          |          }|                                 t          j                            dt          j
                  }t          |           t                      5  |                                 d d d            n# 1 swxY w Y   t          j        dk    rt!          |          }t          j                    }t          j        dk    rT|dk    r'|                    d          }||j        j        v sJ d S |                    d          }||j        j        v sJ d S |                    d          }||j        j        v sJ d S )Nrd   r   darwinwin32cp1252mbcsr:   )r   make_stringsr~   r   r
   r   r1   r5   rx   r   r   rU   r)   r   r!   platformr?   getfilesystemencodingr=   rv   rw   ro   r   ry   rD   fs_encs        r(   %test_sdist_with_utf8_encoded_filenamez3TestSdistTest.test_sdist_with_utf8_encoded_filenameM  s    D--k::;;%Dkk7<<y??hWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <8## **H*,,<7""!!#??8443<#5555555#??6223<#5555555w//Hs|1111111s   B::B>B>c                      t          |t                    r  fd|                                D             S t          |t                    r"t          t	           j        |                    S t          |          S )Nc                 B    i | ]\  }}|                     |          S r   )r  )r   keyvalueclss      r(   
<dictcomp>z.TestSdistTest.make_strings.<locals>.<dictcomp>p  s-    PPPZS%C))%00PPPr7   )r.   dictitemslistr   r  r/   )r  items   ` r(   r  zTestSdistTest.make_stringsm  sq    dD!! 	QPPPP4::<<PPPPdD!! 	5C,d334444yyr7   c                    t          |                     t                              }d|_        t	          |          }|                                 t          j                            dt          j
                  }t          |           t          j                            |          sJ t                      5  |                                 d d d            n# 1 swxY w Y   t          j        dk    rBt          j                    }|dk    rd}|                    |          }||j        j        v sJ d S |                    d          }||j        j        vsJ d S )Nrd   r   r  r  r  )r   r  r~   r   r
   r   r1   r5   rx   r   rK   rU   isfiler)   r   r!   r	  r
  r=   rv   rw   r  s        r(   'test_sdist_with_latin1_encoded_filenamez5TestSdistTest.test_sdist_with_latin1_encoded_filenameu  sz    D--k::;;%Dkk 7<<y/@AAhw~~h'''''WW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 <7"" .00F"v..Hs|1111111  y11H3<#5555555s   :CC"Cz
            [metadata]
            name = testing
            version = file: src/VERSION.txt
            license_files = DOWHATYOUWANT
            long_description = file: README.rst, USAGE.rst
            a  
            [project]
            name = "testing"
            readme = "USAGE.rst"
            license = {file = "DOWHATYOUWANT"}
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {file = ["src/VERSION.txt"]}
            a	  
            [project]
            name = "testing"
            readme = "USAGE.rst"
            license = {file = "DOWHATYOUWANT"}
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {file = "src/VERSION.txt"}
            )z(setup.cfg - long_description and versionz@pyproject.toml - static readme/license files and dynamic versionz3pyproject.toml - directive with str instead of listconfigc                 R   |                     d          \  }}}| j        |         }|dz                                   |dz                      dd           |dz                      dd           |d	z                      dd           |d
z                      dd           ||z                      |d           t	          dg i          }d|_        |                                 t          |          }|                                 t                      5  |
                                 d d d            n# 1 swxY w Y   d|j        j        v sd|j        j        v sJ d	|j        j        v sJ d
|j        j        v sJ d|j        j        vsJ d|j        j        vsJ d S )Nz - r\   zsrc/VERSION.txtz0.42r:   re   z
README.rstzhello world!z	USAGE.rstDOWHATYOUWANTr   rd   zsrc\VERSION.txtr-   \)	partition_EXAMPLE_DIRECTIVESrj   rk   r   r   parse_config_filesr
   r   r)   r   rv   rw   )ro   rt   r  config_file_config_textr   ry   s           r(   .test_add_files_referenced_by_config_directivesz<TestSdistTest.test_add_files_referenced_by_config_directives  s   ",,U33Q.v6	e	""$$$	'	'33FW3MMM	l	"..~.PPP	k	!--nw-OOO	o	%11.71SSS	k	!--kG-LLLZ,--%!!!DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !333!S\%77777cl00000#,"44444#,,,,,,3<-------s   D>>EEc                 >   t          |dz             t          t                    }d|_        t	          |          }|                                 t                      5  |                                 ddd           n# 1 swxY w Y   |j        j	        }d|v sJ dS )zW
        Check if pyproject.toml is included in source distribution if present
        pyproject.tomlrd   N)
rU   r   r~   r   r
   r   r)   r   rv   rw   r   s        r(   test_pyproject_toml_in_sdistz*TestSdistTest.test_pyproject_toml_in_sdist  s     	j++,,,K((%DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<%8++++++r   c                    t          |dz             t          ddd          5 }t          d|           ddd           n# 1 swxY w Y   t          t                    }d	|_        t          |          }|                                 t                      5  |	                                 ddd           n# 1 swxY w Y   |j
        j        }d|vsJ dS )
zH
        Check that pyproject.toml can excluded even if present
        r'  r   r   r:   re   zexclude pyproject.toml)fileNrd   )rU   rB   printr   r~   r   r
   r   r)   r   rv   rw   )ro   rt   mtsr   ry   rz   s         r(   test_pyproject_toml_excludedz*TestSdistTest.test_pyproject_toml_excluded  sR    	j++,,,-w777 	63*5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6K((%DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<%x//////s#   AA
AB;;B?B?c                    t          |dz             t          i t          ddi          }t          |          }|                                 t                      5  |                                 d d d            n# 1 swxY w Y   |j        j        }d|vsJ t          i t          ddi          }|	                    d          }g |j
        d|_
         G d dt                    }|j                            |           t          |          }d	|_        |                                 t                      5  |                                 d d d            n# 1 swxY w Y   |j        j        }d|v sJ d S )
N.myfile~r   rd   build)build_customNc                   &    e Zd Zd Zd Zd Zd ZdS )FTestSdistTest.test_build_subcommand_source_files.<locals>.build_customc                     d S r    r   ro   s    r(   initialize_optionszYTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.initialize_options        r7   c                     d S r    r   r5  s    r(   finalize_optionszWTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.finalize_options   r7  r7   c                     d S r    r   r5  s    r(   r   zJTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.run  r7  r7   c                     dgS )Nr/  r   r5  s    r(   get_source_fileszWTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.get_source_files  s
    "|#r7   N)r   r   r   r6  r9  r   r<  r   r7   r(   r1  r3    s>        ---+++$ $ $ $ $r7   r1  )r1  T)rU   r   r~   r
   r   r)   r   rv   rw   get_command_objsub_commandsr   r   updateuse_defaults)ro   rt   r   ry   rz   r0  r1  s          r(   "test_build_subcommand_source_filesz0TestSdistTest.test_build_subcommand_source_files  s   j:%&&& F{FM:FFGGDkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<%)))) F{FM:FFGG$$W--Ju1J3IJ	$ 	$ 	$ 	$ 	$7 	$ 	$ 	$ 	,777DkkWW 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	<%X%%%%%%s$   A??BBE""E&)E&N))r   r   r   rZ   fixturert   r{   r   r   r   r   r   r   r   skip_under_stdlib_distutilsmarkparametrizekeysr   r   r   r   r   r   r   r   r   skip_under_xdistr   r    fail_on_latin1_encoded_filenamesr  r  classmethodr  r  r   r%  r(  r-  rA  r   r7   r(   r`   r`      s       V^D!!!  "!06 6 6  2 2 2 2 2 2$	$ 	$ 	$( ( (( ( (0
 
%
 %

 
,
 ,
 N$ ![X~':':'<'<==)* )* >= ! )*V$2 $2 $2L
& 
& 
&* * ** * *5 5 58 - - ]-8 / / ]/@ !3 !3 !3F . . ].< &2 2 &%2< %2 2 &% ]2<   [ &6 6  &%6>5M@# 8 [X':'?'?'A'ABB. . CB.8, , ,0 0 0 #& #& #& #& #&r7   r`   c                      t           j                            d          \  } |                                 }t	          |d          sJ dS )a  
    When _default_revctrl was removed from the `setuptools.command.sdist`
    module in 10.0, it broke some systems which keep an old install of
    setuptools (Distribute) around. Those old versions require that the
    setuptools package continue to implement that interface, so this
    function provides that interface, stubbed. See #320 for details.

    This interface must be maintained until Ubuntu 12.04 is no longer
    supported (by Setuptools).
    zg
        [setuptools.file_finders]
        svn_cvs = setuptools.command.sdist:_default_revctrl
        __iter__N)r   EntryPoints
_from_textloadhasattr)epress     r(   test_default_revctrlrR    sN      ++	 ER ''))C3
#######r7   c                       e Zd ZdZed             Zej                            dd          d             Z	ed             Z
ej                            dd          d             Zd	S )
TestRegressionszp
    Can be removed/changed if the project decides to change how it handles symlinks
    or external files.
    c                 >    dddiit          d|d          ddddS )	Ndirfile.h [  
                    from setuptools import Extension, setup
                    setup(
                        name="myproj",
                        version="42",
                        ext_modules=[
                            Extension(
                                "hello", sources=["hello.pyx"],
                                depends=[e]
                            )
                        ],
                    )
                    global-include *.hrd   z	hello.pyxr   externalprojectr   )tmp_pathdep_paths     r(   &files_for_symlink_in_extension_dependsz6TestRegressions.files_for_symlink_in_extension_depends-  s[     "~ % +3     3# 	
 
 	
r7   ra  )zmyheaders/dir/file.hzmyheaders/dir/../dir/file.hc                     |                      ||          }t          j                            |t	          |                     t          |dz  |dz             t          ||dz            }dD ]}||v sJ 	d S )Nprefixr^  zproject/myheadersr_  )zmyproj-42/hello.pyxzmyproj-42/myheaders/dir/file.h)rb  jaracor5   r0  r/   r^   	run_sdist)ro   monkeypatchr`  ra  rw   membersexpecteds          r(   !test_symlink_in_extension_dependsz1TestRegressions.test_symlink_in_extension_dependsH  s    
 ;;HhOO%H666X
2H?R4RSSS KI)=>>
 	' 	'H w&&&&&		' 	'r7   c                     |                     d          \  }}}|r| |z  n|}dddiit          dt          |          d          dddd	S )
Nz$tmp_path$/rV  rW  rX  rY  rZ  r[  r\  r]  )r  r   r/   )r`  ra  headr#  tails        r(   ,files_for_external_path_in_extension_dependsz<TestRegressions.files_for_external_path_in_extension_dependsZ  s     **=99a&*48d?? "~ % +.h--     3# 	
 
 	
r7   )z$tmp_path$/external/dir/file.hz../external/dir/file.hc                     |                      ||          }t          j                            |t	          |                     t          ||dz            }|D ]}d|vsJ 	d S )Nrd  r_  rW  )ro  rf  r5   r0  r/   rg  )ro   rh  r`  ra  rw   ri  r   s          r(   'test_external_path_in_extension_dependsz7TestRegressions.test_external_path_in_extension_dependsx  s{    
 AA(HUU%H666KI)=>> 	( 	(D4'''''	( 	(r7   N)r   r   r   r   staticmethodrb  rZ   rD  rE  rk  ro  rq  r   r7   r(   rT  rT  '  s         
 
 
 \
4 [K ' ' ' 
 
 \
: [P ( ( ( ( (r7   rT  c                    |                      |           t                      5  t          ddg           ddd           n# 1 swxY w Y   t          |dz                      d                    }t          j        t          |                    5 }t          |	                                          cddd           S # 1 swxY w Y   dS )z@Given a project directory, run the sdist and return its contentsrd   r
   Nr   z*.tar.gz)
chdirr)   r   nextglobtarfilerB   r/   setgetnames)rh  r_  archivetars       r(   rg  rg    s3   g	 ) )*wi((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) Gf$**:6677G	c'll	#	# #s3<<>>""# # # # # # # # # # # # # # # # # #s#   AA	A!CCC)@r   r1   r!   rI   r;   
contextlibr$   rw  r   	distutilsinspectr   unittestr   rZ   distutils.corer   rR   r   setuptools._importlibr   r	   setuptools.command.sdistr
   setuptools.command.egg_infor   setuptools.distr   setuptools.extensionr   setuptools.testsr   textr   jaraco.pathrf  r5   rx   r~   rl   r   r   r   rm   contextmanagerr)   r6   r?   rF   rP   rD  xfailrH  skipifrG  __package__
startswithrC  rU   r^   r`   rR  rT  rg  r   r7   r(   <module>r     s     				 



          				                    $ $ $ $ $ $       * * * * * * 3 3 3 3 3 3 * * * * * * 6 6 6 6 6 6 ( ( ( ( ( ( * * * * * * * * * * * *           !G9-RW\\#w7789: 
  	 I	W\\,../W\\,../  	
 %	(99  8 8 8) ) )	 	 	  
   $*;#4#4KMM6 $5 $ $   ;%%+( &    %k00((666< 1     
  L
& L
& L
& L
& L
& L
& L
& L
&^$ $ $*\( \( \( \( \( \( \( \(~# # # # #r7   