+
    SBih                        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t^ RI	t	^ RI
Ht ^ RIHt ^ RIHt ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIH t  ^RI!H"t" ^ RI#t#^ RI$H%t% RRRRRR.RRR./RR]PL                  PO                  RR4      .3./t(R](: R2t)]! R]PL                  PO                  RR4      .]PL                  PO                  RR4      .R7      t*]*PV                  ]*PX                  ,           t-]P\                  R 4       t/R  t0R! t1R" t2R# t3]Ph                  Pk                  ]3! 4       R$R%7      t6]Ph                  Po                  R&R'R%7      t8]Ph                  Po                  ]#Pr                  Pu                  R(4      '       * R)R%7      t;R* t<R+ t= ! R, R-4      t>R. t? ! R/ R04      t@R1 tAR2 tBR# )3zsdist testsNcleandoc)Path)mock)CommandSetuptoolsDeprecationWarning)metadata)manifest_maker)sdist)Distribution)	Extension)fail_on_ascii)	Filenames)	run_setupname
sdist_testversionz0.0packagespackage_dataz*.txt
data_filesdatade.datz&from setuptools import setup

setup(**z)
sdist_test.fzf.cf.hr   sourcesdependsc               #   2  "   \         P                  \         P                  r\        P                  ! 4       \        P                  ! 4       u\         n        \         n         R x  Wu\         n        \         n        R #   Yu\         n        \         n        i ; i5iN)sysstdoutstderrioStringIO)
old_stdout
old_stderrs     @/usr/lib/python3.14/site-packages/setuptools/tests/test_sdist.pyquietr(   6   sT      ZZ
[[]BKKMCJ
8!+
CJ
CJs   AB A< $B<BBc                     \        V \        4      '       g0   V P                  \        P                  P                  R 4      R4      # V P                  \        P                  R4      # )ascii   //)
isinstancestrreplaceossepencodepaths   &r'   posixr5   A   sB    dC  ||BFFMM'2D99||BFFC((    c                     \        V \        4      '       d   \        P                  ! R V 4      #  V P	                  R4      p \        P                  ! R V 4      p V P                  R4      p V #   \         d     T # i ; i)NFDutf-8)r-   r.   unicodedata	normalizedecoder2   UnicodeErrorr3   s   &r'   	decomposer>   I   su    $$$UD11{{7#$$UD1{{7# K  Ks   9A* *A98A9c                     \        V R 4      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)rbN)openread)filenamefps   & r'   read_all_bytesrE   U   s)    	h		wwy 
			s	   0A	c                       \         P                  ! \        P                  R 7      w  r\        P
                  ! V 4       \        P                  ! V4       R#   \         d     R# i ; i))suffixTN)tempfilemkstempr   latin_1r0   closeremove	Exception)descrC   s     r'   latin1_failrO   Z   sH    !))1B1BC

		( 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                 :    \        V R 4      P                  4        V # )wb)rA   rK   r3   s   &r'   touchrT   s   s    tKr6   c                      \         P                  ! W4       V#   \        \        3 d    \        P
                  ! R 4        R# i ; i)zsymlink not supported in OSN)r0   symlinkOSErrorNotImplementedErrorpytestskip)srcdsts   &&r'   symlink_or_skip_testr]   x   sA    


3 J () 12s    'AAc                     a  ] tR t^t o ]P
                  ! RR7      R 4       tR tR tR t	R t
R tR	 tR
 tRR RR RR RR /t]]P                   P#                  R]P%                  4       4      R 4       4       tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       t] R 4       t!]] R  4       4       t"]#R! 4       t$] ]R" 4       4       t%R#R$R%R&R'R(R)R*/t&]P                   P#                  R+]&P%                  4       4      ]P                   PO                  R,4      R- 4       4       t(R. t)R/ t*R0 t+]P                   PY                  R14      R2 4       t-R3t.V t/R4# )5TestSdistTestT)autousec              #    "   VR ,          pVP                  4        VR,          P                  \        RR7       VR,          pVP                  4        VR,          pVP                  4        R F  p\        W$,          4       K  	  \        VR,          4       \         F  p\        W,          4       K  	  VP                  4       ;_uu_ 4        Vx  RRR4       R#   + '       g   i     R# ; i5i)	project_rootsetup.pyr9   encodingr   r   r   N)z__init__.pya.txtb.txtc.rst)mkdir
write_textSETUP_PYrT   EXTENSION_SOURCESas_cwd)selftmpdirtest_pkgdata_folderfnames   &&   r'   
source_dirTestSdistTest.source_dir   s     .(	*	((G(D L(sl @E("# @kG#$ 'E&.! ' ]]__L ___s   CC1C
C1C.	(	C1c                j   VP                   P                  p\        P                  P	                  R R4      V9   g   Q h\        P                  P	                  R R4      V9   g   Q h\        P                  P	                  R R4      V9  g   Q h\        P                  P	                  RR4      V9   g   Q hR# )r   rf   rg   rh   r   r   N)filelistfilesr0   r4   join)rn   cmdmanifests   && r'   assert_package_data_in_manifest-TestSdistTest.assert_package_data_in_manifest   s    <<%%ww||L'2h>>>ww||L'2h>>>ww||L'2(BBBww||C)X555r6   c                    / \         CR \        ./Cp\        V4      pRVn        \	        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       V#   + '       g   i     T# ; i)ext_modulesrc   N)SETUP_ATTRS	EXTENSIONr   script_namer
   ensure_finalizedr(   runrn   setup_attrsdistry   s   &   r'   setup_with_extension"TestSdistTest.setup_with_extension   sg    AAmi[AK(%DkWWGGI  
 W 
s   A,,A=	c                   \        \        4      pRVn        \        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       V P                  V4       R#   + '       g   i     L#; i)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.
rc   N)r   r   r   r
   r   r(   r   r{   )rn   r   ry   s   &  r'   test_package_data_in_sdist(TestSdistTest.test_package_data_in_sdist   sX     K(%DkWWGGI  	,,S1 Ws   A00B 	c                8   / \         CRR/CpVR,          '       g   Q h\        V4      pRVn        \        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       V P                  V4       R#   + '       g   i     L#; i)z=
Ensure package_data and include_package_data work
together.
include_package_dataTr   rc   N)r   r   r   r
   r   r(   r   r{   r   s   &   r'   3test_package_data_and_include_package_data_in_sdistATestSdistTest.test_package_data_and_include_package_data_in_sdist   s|    
 DC&<dC>****K(%DkWWGGI  	,,S1 Ws   B		B	c                    V P                  4       pV P                  V4       VP                  P                  p\         F  pW29   d   K  Q h	  R# )zu
Ensure that the files listed in Extension.sources and Extension.depends
are automatically included in the manifest.
N)r   r{   rv   rw   rl   )rn   ry   rz   r4   s   &   r'   test_extension_sources_in_sdist-TestSdistTest.test_extension_sources_in_sdist   sE    
 ''),,S1<<%%%D### &r6   c                    \          F  p\        P                  ! V4       K  	  V P                  4       pV P	                  V4       VP
                  P                  p\          F  pW9  d   K  Q h	  R# )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)rl   r0   rL   r   r{   rv   rw   )rn   r4   ry   rz   s   &   r'   test_missing_extension_sources,TestSdistTest.test_missing_extension_sources   s\    
 &DIIdO & ''),,S1<<%%%D''' &r6   c                   . p\          F  p\        P                  P                  V4      w  r4VR,           V,           p\        P                  ! W%4       \        \        P                  P                  V4      V4       VP                  V4       K  	  V P                  4       pV P                  V4       VP                  P                  p\          F  pW'9   d   K  Q h	  V F  pW'9  d   K  Q h	  R# )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)rl   r0   r4   splitextrenamer]   basenameappendr   r{   rv   rw   )rn   	symlinkedr4   baseexttargetry   rz   s   &       r'    test_symlinked_extension_sources.TestSdistTest.test_symlinked_extension_sources   s     	%D((.IDJ&,FIId# !1!1&!94@V$ & ''),,S1<<%%%D### &D''' r6   zmust be relativec                 |    \         P                  P                  \         P                  P                  R R4      4      # )r   r   )r0   r4   abspathrx    r6   r'   <lambda>TestSdistTest.<lambda>  s!    GGOOBGGLLu=>r6   zcan't have `..` segmentsc                 F    \         P                  P                  R RR R4      # )r   ..r   r0   r4   rx   r   r6   r'   r   r     s    GGLLt\5Ar6   zdoesn't existc                 B    \         P                  P                  R R4      # )r   zthis_file_does_not_exist.hr   r   r6   r'   r   r     s    GGLL'CDr6   zmust be inside the project rootc                 h    \        \        \        P                  P	                  R R4      4      R4      # )r   zoutside_of_project_root.hz	symlink.h)r]   rT   r0   r4   rx   r   r6   r'   r   r     s%     bggll4)DEFr6   rP   c           	        V P                   V,          ! 4       p\        R. V.R7      p/ \        CRV./Cp\        V4      pRVn        \        V4      pVP                  4        \        4       ;_uu_ 4        VP                  \        P                  4      ;_uu_ 4        VP                  4        RRR4       RRR4       V P                  V4       VP                  P                  pW89  g   Q hVP                   U	U
Uu. uF0  w  rpV	R8X  g   K  V
\        P                  8X  g   K&  W;9   g   K.  VNK2  	  pp
p	p\!        V4      ^8X  g   Q hVw  pW9   g   Q hR#   + '       g   i     L; i  + '       g   i     L; iu upp
p	i )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~   rc   Nroot)_INVALID_PATHSr   r   r   r   r
   r   r(   at_levelloggingINFOr   r{   rv   rw   record_tupleslen)rn   rP   caploginvalid_path	extensionr   r   ry   rz   loggerlevelmessageexpected_messages   &&&          r'   test_invalid_extension_depends,TestSdistTest.test_invalid_extension_depends  sQ    **624!N
	
 BAmi[AK(%DkWWfoogll33GGI 4W 	,,S1<<%%+++ -3,@,@
,@(&   W\\)	 
 !+ G,@ 	 
 #$))).	)))% 43WW
s<   4(E)E	-E)<E<E<$E<,E<E&!E))E9	c           	       a ^ RI Hp \        P                  ! 4       o ! V3R lRV4      p/ \        CRR/CpVR,          '       g   Q h\        V4      pRVn        \        V4      pVP                  4        RV/Vn	        RV/VP                  n	        VP                  P                  R4      V8X  g   Q hR	p\        4       ;_uu_ 4        \        P                  ! \        VR
7      ;_uu_ 4        VP!                  4        RRR4       RRR4       SP#                  4        V P%                  V4       R#   + '       g   i     L;; i  + '       g   i     LF; i)zY
Ensure projects defining custom build_py don't break
when creating sdists (issue #2849)
)build_pyc                   :   <a a ] tR tRt oRtV V3R ltRtVtV ;t# )9TestSdistTest.test_custom_build_py.<locals>.CustomBuildPyiI  z@
Some projects have custom commands inheriting from `distutils`
c                .   < S! 4        \         SV `  4       # r   )superget_data_files)rn   	__class__using_custom_command_guards   &r'   r   HTestSdistTest.test_custom_build_py.<locals>.CustomBuildPy.get_data_filesN  s    *,w-//r6   r   )	__name__
__module____qualname____firstlineno____doc__r   __static_attributes____classdictcell____classcell__)r   __classdict__r   s   @@r'   CustomBuildPyr   I  s     0 0r6   r   r   Tr   rc   r   zsetuptools instead of distutils)matchN)distutils.command.build_pyr   r   Mockr   r   r   r
   r   cmdclassdistributionget_command_classr(   rY   warnsr   r   assert_calledr{   )rn   OrigBuildPyr   r   r   ry   msgr   s   &      @r'   test_custom_build_py"TestSdistTest.test_custom_build_py@  s   
 	G%)YY["	0K 	0 DC&<dC>****K(%Dk #M2%/$?!11*=NNN/WWfll#?sKKGGI LW 	#002,,S1	 LKWWs$   %E,D0	=E0E ;EE	c                "   \        \        4      pR Vn        \        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pRV9   g   Q hR#   + '       g   i     L1; i)foo.pyNrc   )	r   r   r   r
   r   r(   r   rv   rw   rn   r   ry   rz   s   &   r'   test_setup_py_exists"TestSdistTest.test_setup_py_existsf  se    K(#DkWWGGI  <<%%X%%%	 Ws   A>>B	c                   \        \        4      pR Vn        \        V4      pVP	                  4        \
        P                  P                  R4      '       d   \
        P                  ! R4       \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pRV9  g   Q hR#   + '       g   i     L1; i)r   rc   N)r   r   r   r
   r   r0   r4   existsrL   r(   r   rv   rw   r   s   &   r'   test_setup_py_missing#TestSdistTest.test_setup_py_missingr  s    K(#Dk77>>*%%IIj!WWGGI  <<%%)))	 Ws   ?B99C		c                   \        R RRR7      ;_uu_ 4       pVP                  R4       RRR4       \        \        4      pRVn        \        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pRV9  g   Q hR#   + '       g   i     L; i  + '       g   i     LD; i)MANIFEST.inwr9   rd   zexclude setup.pyNr   rc   )rA   writer   r   r   r
   r   r(   r   rv   rw   )rn   manifest_filer   ry   rz   s   &    r'   test_setup_py_excluded$TestSdistTest.test_setup_py_excluded  s    -w77= 23 8 K(#DkWWGGI  <<%%))) 87 Ws   B.4C.B>	C	c                   \        VR,          4       \        VR,          4       \        \        4      pRVn        \	        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       \        R VP                  P                  4      pRV9  g   Q V4       hRV9  g   Q V4       hRV9  g   Q V4       hR#   + '       g   i     L]; i)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                 "    V P                  4       # r   )lower)xs   &r'   r   >TestSdistTest.test_defaults_case_sensitivity.<locals>.<lambda>  s
    r6   rc   z	setup.cfg)rT   r   r   r   r
   r   r(   r   maprv   rw   rn   rs   r   ry   rz   s   &&   r'   test_defaults_case_sensitivity,TestSdistTest.test_defaults_case_sensitivity  s     	j<'(j;&'K( &DkWWGGI  *CLL,>,>?8+5X5+)383)(*4H4* Ws   (CC	c                   R RRRRRRRRRRRRR/pR	RR
RRR/p/ VCVCP                  4        FG  w  rE\        W4      P                  P                  RRR7       \        W4      P	                  VRR7       KI  	  V P                  4       pV P                  V4       VP                  P                   Uu0 uF"  qwP                  \        P                  R4      kK$  	  ppV F8  p	\        P                  P                  V	4      '       g   Q hW9  d   K2  Q W34       h	  V F8  p	\        P                  P                  V	4      '       g   Q hW9   d   K2  Q W34       h	  R# u upi )r   zJglobal-include LICEN[CS]E* COPYING* NOTICE* AUTHORS*
global-include *.txt
zBtest/.venv/lib/python3.9/site-packages/bar-2.dist-info/AUTHORS.rst zDsrc/.nox/py/lib/python3.12/site-packages/bar-2.dist-info/COPYING.txtzEdoc/.tox/default/lib/python3.11/site-packages/foo-4.dist-info/LICENSEz.venv-requirements.txtz.tox-coveragerc.txtz.noxy/coveragerc.txtzA.tox/release/lib/python3.11/site-packages/foo-4.dist-info/LICENSEz@.nox/py/lib/python3.12/site-packages/bar-2.dist-info/COPYING.txtz=.venv/lib/python3.9/site-packages/bar-2.dist-info/AUTHORS.rstT)parentsexist_okr9   rd   r,   N)itemsr   parentri   rj   r   r{   rv   rw   r/   r0   r1   r4   r   )
rn   rs   includedexcludedfilecontentry   frz   r4   s
   &&        r'   #test_exclude_dev_only_cache_folders1TestSdistTest.test_exclude_dev_only_cache_folders  sj    )
 QRTRTVSUW$b!2"B
( PQSNPRKR
 65H5;;=MD"))//t/L"--g-H > ''),,S147LL4F4FG4FqIIbffc*4FGD77>>$'''''9$)99'  D77>>$''''#5d%55# 	 Hs   1(Ec                V   \        \        4      pR Vn        \        V4      p\        P
                  P                  RR4      Vn        \        P                  ! R4       \        P
                  P                  RR4      p\        V4       \        4       ;_uu_ 4        VP                  4        VP                  P                  V4       VP                  4        RRR4       \        VP                  4      pVP!                  R4      p\#        V4      V9   g   Q hR#   + '       g   i     LJ; i)rc   sdist_test.egg-infoSOURCES.txtr   u   smörbröd.pyNUTF-8)r   r   r   r	   r0   r4   rx   rz   ri   rT   r(   r   rv   r   write_manifestrE   r<   r5   )rn   r   mmrC   contents
u_contentss   &     r'   +test_manifest_is_written_with_utf8_encoding9TestSdistTest.test_manifest_is_written_with_utf8_encoding  s     K(%D!ggll#8-H
&' 77<<o> 	h WWFFHKKx( 
 ""++. __W-
 X*,,, Ws   <DD(	c                   \        \        4      pR Vn        \        V4      p\        P
                  P                  RR4      Vn        \        P                  ! R4       \        P
                  P                  R\        P                  4      p\        V4       \        4       ;_uu_ 4        VP                  4        VP                  R4      pVP                  P                   P#                  V4       VP%                  4        RRR4       \'        VP                  4      pVP                  R4       \)        V4      V9   g   Q hXVP                  P                   9   g   Q hR#   + '       g   i     Lg; i)rc   r  r  
   sdist_testr9   Nr  )r   r   r   r	   r0   r4   rx   rz   ri   r   utf_8rT   r(   r   r<   rv   rw   r   r  rE   r5   rn   r   r  rC   
u_filenamer  s   &     r'   )test_write_manifest_allows_utf8_filenames7TestSdistTest.test_write_manifest_allows_utf8_filenames  s    K(%D!ggll#8-H
&'77<<y? 	h WWFFH!1JKK$$Z0  ""++. 	  X(*** R[[.....! Ws   (AEE.	c                   \        \        4      pRVn        \        V4      p\        P
                  P                  RR4      Vn        \        P                  ! R4       \        P
                  P                  R\        P                  4      p\        4       ;_uu_ 4        VP                  4        VP                  RR4      pVP                  P                  V4       VP!                  4        RRR4       \#        VP                  4      pVP                  R4       \%        V4      V9  g   Q hXVP                  P&                  9  g   Q hR#   + '       g   i     Lg; i)	z
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.
rc   r  r  r  r9   surrogateescapeNr  )r   r   r   r	   r0   r4   rx   rz   ri   r   rJ   r(   r   r<   rv   r   r  rE   r5   rw   r  s   &     r'   ,test_write_manifest_skips_non_utf8_filenames:TestSdistTest.test_write_manifest_skips_non_utf8_filenames  s     K(%D!ggll#8-H
&' 77<<y/@/@A WWFFH!2CDJKKz*  ""++. 	  Xh... !2!2222! Ws   AE

E	c                   \        \        4      pR Vn        \        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       \        P                  P                  R\        P                  4      p\        P                  P                  RR4      Vn        \        VP                  R4      pVP                  RV,           4       VP                  4        \!        V4       . VP"                  n        \        4       ;_uu_ 4        VP'                  4        RRR4       VP)                  R4      pW2P"                  P$                  9   g   Q hR#   + '       g   i     EL; i  + '       g   i     LS; i)rc   Nr  r  r  ab   
r9   )r   r   r   r
   r   r(   r   r0   r4   rx   r   r  rz   rA   r   rK   rT   rv   rw   read_manifestr<   rn   r   ry   rC   rz   s   &    r'   (test_manifest_is_read_with_utf8_encoding6TestSdistTest.test_manifest_is_read_with_utf8_encoding5  s    K(%Dk WWGGI  77<<y?ww||$9=Id+ux'( 	h  WW  ??7+<<-----) WW W   E$E8$E5	8F	c                   \        \        4      pR Vn        \        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       \        P                  P                  R\        P                  4      p\        P                  P                  RR4      Vn        \        VP                  R4      pVP                  RV,           4       VP                  4        \!        V4       . VP"                  n        \        4       ;_uu_ 4        VP'                  4        RRR4       VP)                  R4      pW2P"                  P$                  9  g   Q hR#   + '       g   i     EL; i  + '       g   i     LS; i)rc   Nr  r  r  r  r  latin-1)r   r   r   r
   r   r(   r   r0   r4   rx   r   rJ   rz   rA   r   rK   rT   rv   rw   r  r<   r  s   &    r'   +test_read_manifest_skips_non_utf8_filenames9TestSdistTest.test_read_manifest_skips_non_utf8_filenamesT  s    K(%Dk WWGGI  77<<y/@/@Aww||$9=Id+ux'( 	h  WW  ??9-||11111) WW Wr  c                ,   \        V P                  \        4      4      pR Vn        \	        V4      pVP                  4        \        P                  P                  R\        P                  4      p\        V4       \        4       ;_uu_ 4        VP                  4        RRR4       \        P                  R8X  d   \!        V4      p\        P"                  ! 4       p\        P                  R8X  df   VR8X  d0   VP%                  R4      pW2P&                  P(                  9   g   Q hR# VP%                  R4      pW2P&                  P(                  9   g   Q hR# VP%                  R4      pW2P&                  P(                  9   g   Q hR#   + '       g   i     L; i)rc   r  Ndarwinwin32cp1252mbcsr9   )r   make_stringsr   r   r
   r   r0   r4   rx   r   r  rT   r(   r   r    platformr>   getfilesystemencodingr<   rv   rw   rn   r   ry   rC   fs_encs   &    r'   %test_sdist_with_utf8_encoded_filename3TestSdistTest.test_sdist_with_utf8_encoded_filenames  s    D--k:;%Dk77<<y?hWWGGI  <<8# *H**,<<7"!#??84<<#5#5555#??62<<#5#5555w/H||11111% Ws   FF	c                    \        V\        4      '       d4   VP                  4        UUu/ uF  w  r#W P                  V4      bK  	  upp# \        V\        4      '       d    \	        \        V P                  V4      4      # \        V4      # u uppi r   )r-   dictr   r(  listr   r.   )clsitemkeyvalues   &&  r'   r(  TestSdistTest.make_strings  so    dD!!CG::<P<ZSC))%00<PPdD!!C,,d3444y Qs   B
c                   \        V P                  \        4      4      pR Vn        \	        V4      pVP                  4        \        P                  P                  R\        P                  4      p\        V4       \        P                  P                  V4      '       g   Q h\        4       ;_uu_ 4        VP                  4        RRR4       \        P                   R8X  dN   \        P"                  ! 4       pVR8w  d   RpVP%                  V4      pW2P&                  P(                  9   g   Q hR# VP%                  R4      pW2P&                  P(                  9  g   Q hR#   + '       g   i     L; i)rc   r  Nr%  r'  r   )r   r(  r   r   r
   r   r0   r4   rx   r   rJ   rT   isfiler(   r   r    r)  r*  r<   rv   rw   r+  s   &    r'   'test_sdist_with_latin1_encoded_filename5TestSdistTest.test_sdist_with_latin1_encoded_filename  s    D--k:;%Dk 77<<y/@/@Ahww~~h''''WWGGI  <<7" ..0F"v.H||11111  y1H<<#5#5555! Ws   3EE-	z(setup.cfg - long_description and versionz
            [metadata]
            name = testing
            version = file: src/VERSION.txt
            license_files = DOWHATYOUWANT
            long_description = file: README.rst, USAGE.rst
            z@pyproject.toml - static readme/license files and dynamic versiona
  
            [project]
            name = "testing"
            readme = "USAGE.rst"
            license-files = ["DOWHATYOUWANT"]
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {file = ["src/VERSION.txt"]}
            z3pyproject.toml - directive with str instead of lista  
            [project]
            name = "testing"
            readme = "USAGE.rst"
            license-files = ["DOWHATYOUWANT"]
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {file = "src/VERSION.txt"}
            z9pyproject.toml - deprecated license table with file entrya	  
            [project]
            name = "testing"
            readme = "USAGE.rst"
            license = {file = "DOWHATYOUWANT"}
            dynamic = ["version"]
            [tool.setuptools.dynamic]
            version = {file = "src/VERSION.txt"}
            configz6ignore:.project.license. as a TOML table is deprecatedc                   VP                  R 4      w  p pV P                  V,          pVR,          P                  4        VR,          P                  RRR7       VR,          P                  RRR7       VR,          P                  RRR7       VR	,          P                  RRR7       W,          P                  VRR7       \	        R
. /4      pRVn        VP                  4        \        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       RVP                  P                  9   g   RVP                  P                  9   g   Q hRVP                  P                  9   g   Q hR	VP                  P                  9   g   Q hRVP                  P                  9  g   Q hRVP                  P                  9  g   Q hR#   + '       g   i     L; i)z - r[   zsrc/VERSION.txtz0.42r9   rd   z
README.rstzhello world!z	USAGE.rstDOWHATYOUWANTr   rc   Nzsrc\VERSION.txtr,   \)	partition_EXAMPLE_DIRECTIVESri   rj   r   r   parse_config_filesr
   r   r(   r   rv   rw   )rn   rs   r;  config_file_config_textr   ry   s   &&&     r'   .test_add_files_referenced_by_config_directives<TestSdistTest.test_add_files_referenced_by_config_directives  s   
 #,,U3Q..v6	e	""$	'	'33FW3M	l	"..~.P	k	!--nw-O	o	%11.71S		!--kG-LZ,-%!DkWWGGI  !3!33!S\\%7%77	
8 cll00000#,,"4"4444#,,,,,,,3<<----- Ws   GG)	c                F   \        VR,          4       \        \        4      pRVn        \	        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pRV9   g   Q hR#   + '       g   i     L1; i)zG
Check if pyproject.toml is included in source distribution if present
pyproject.tomlrc   N)
rT   r   r   r   r
   r   r(   r   rv   rw   r   s   &&   r'   test_pyproject_toml_in_sdist*TestSdistTest.test_pyproject_toml_in_sdist   ss     	j++,K(%DkWWGGI <<%%8+++ Ws   BB 	c                   \        VR,          4       \        RRRR7      ;_uu_ 4       p\        RVR7       RRR4       \        \        4      pR	Vn        \        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pRV9  g   Q hR#   + '       g   i     L; i  + '       g   i     LD; i)
z8
Check that pyproject.toml can excluded even if present
rH  r   r   r9   rd   zexclude pyproject.toml)r   Nrc   )rT   rA   printr   r   r   r
   r   r(   r   rv   rw   )rn   rs   mtsr   ry   rz   s   &&    r'   test_pyproject_toml_excluded*TestSdistTest.test_pyproject_toml_excluded  s     	j++,-w773*5 8K(%DkWWGGI <<%%x/// 87 Ws   B<C<C	C	c                   \        VR ,          4       \        / \        CRR/C4      p\        V4      pVP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pR V9  g   Q h\        / \        CRR/C4      pVP                  R4      p. VP                  OR	NVn
         ! R R\        4      pVP                  P                  VR7       \        V4      pRVn        VP	                  4        \        4       ;_uu_ 4        VP                  4        RRR4       VP                  P                  pR V9   g   Q hR#   + '       g   i     EL; i  + '       g   i     LE; i)
.myfile~r   rc   Nbuildbuild_customc                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )FTestSdistTest.test_build_subcommand_source_files.<locals>.build_customi/  c                    R # r   r   rn   s   &r'   initialize_optionsYTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.initialize_options0  s    #r6   c                    R # r   r   rW  s   &r'   finalize_optionsWTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.finalize_options2  s    r6   c                    R # r   r   rW  s   &r'   r   JTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.run4  s    3r6   c                    R .# )rQ  r   rW  s   &r'   get_source_filesWTestSdistTest.test_build_subcommand_source_files.<locals>.build_custom.get_source_files6  s
    "|#r6   r   N)
r   r   r   r   rX  r[  r   r`  r   r   r   s   @r'   rS  rU  /  s     -+$ $r6   )rS  T)rS  N)rT   r   r   r
   r   r(   r   rv   rw   get_command_objsub_commandsr   r   updateuse_defaults)rn   rs   r   ry   rz   rR  rS  s   &&     r'   "test_build_subcommand_source_files0TestSdistTest.test_build_subcommand_source_files  s5   j:%& F{FM:FGDkWWGGI <<%%))) F{FM:FG$$W-Ju11J3IJ	$7 	$ 	,7DkWWGGI <<%%X%%%9 WW2 Ws   E!'E5!E2	5F	z6os.environ.get('SETUPTOOLS_USE_DISTUTILS') == 'stdlib'c                   \        / \        CRRRRR\        P                  ! R4      ///C4      p\	        V4      pVP                  4        \        4       ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)zC
Ensure if build_base is a pathlib.Path, the build still succeeds.
r   rc   optionsrR  
build_baseN)r   r   pathlibr   r
   r   r(   r   )rn   rs   r   ry   s   &&  r'   test_build_base_pathlib%TestSdistTest.test_build_base_pathlibC  sp    
  

:,W0E!FG
 
 DkWWGGI WWWs   A88B		r   N)0r   r   r   r   rY   fixturers   r{   r   r   r   r   r   r   r   skip_under_stdlib_distutilsmarkparametrizekeysr   r   r   r   r   r   r   r   r
  r  skip_under_xdistr  r   fail_on_latin1_encoded_filenamesr!  r-  classmethodr(  r9  r@  filterwarningsrE  rI  rN  rg  skipifrm  r   r   rb  s   @r'   r_   r_      s0    ^^D! "062 2$	$((0 	 
 	# %
 	 
 	* ,
N$ ![[X~':':'<=)* > !)*V$2L
&**58&6P - -8 / /@ !3 !3F . .< &2 &2< %2 & 2<   &6  &6> 	3 5 	K M 	> @ 	D F5#J [[X':'?'?'AB[[@. C.8,0 #&J [[PQ Rr6   r_   c                     \         P                  P                  R4      w  p V P                  4       p\	        VR4      '       g   Q hR# )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_revctrlr  S  sA       ++	ER '')C3
####r6   c                      a  ] tR tRt o Rt]R 4       t]P                  P                  RR
4      R 4       t
]R 4       t]P                  P                  RR4      R 4       tRtV tR	# )TestRegressionsih  zd
Can be removed/changed if the project decides to change how it handles symlinks
or external files.
c           	     >    R RRR//RR\        RV: R24      RRR	R
//# )externaldirfile.hr   projectrc   [  
                    from setuptools import Extension, setup
                    setup(
                        name="myproj",
                        version="42",
                        ext_modules=[
                            Extension(
                                "hello", sources=["hello.pyx"],
                                depends=[e]
                            )
                        ],
                    )
                    	hello.pyxr   global-include *.hr   )tmp_pathdep_paths   &&r'   &files_for_symlink_in_extension_depends6TestRegressions.files_for_symlink_in_extension_dependsn  sV     "~ H* +3 6 R3#	
 	
r6   r  c                    V P                  W#4      p\        P                  P                  V\	        V4      R 7       \        VR,          VR,          4       \        WR,          4      pR F  pWe9   d   K  Q h	  R# )prefixr  zproject/myheadersr  N)zmyproj-42/hello.pyxzmyproj-42/myheaders/dir/file.h)r  jaracor4   rR  r.   r]   	run_sdist)rn   monkeypatchr  r  rw   membersexpecteds   &&&&   r'   !test_symlink_in_extension_depends1TestRegressions.test_symlink_in_extension_depends  so    
 ;;HO%H6X
2H?R4RS KI)=>
H &&&	
r6   c           
         VP                  R 4      w  r#pV'       d	   W,          MTpRRRR//RR\        R\        V4      : R24      R	RR
R//# )z$tmp_path$/r  r  r  r   r  rc   r  r  r  r   r  )r?  r   r.   )r  r  headrC  tails   &&   r'   ,files_for_external_path_in_extension_depends<TestRegressions.files_for_external_path_in_extension_depends  sz     **=9&*8? "~ H* +.h-): ; R3#	
 	
r6   c                    V P                  W#4      p\        P                  P                  V\	        V4      R 7       \        WR,          4      pV F  pRV9  d   K  Q h	  R# )r  r  r  N)r  r  r4   rR  r.   r  )rn   r  r  r  rw   r  r   s   &&&&   r'   'test_external_path_in_extension_depends7TestRegressions.test_external_path_in_extension_depends  sV    
 AA(U%H6KI)=>D4''' r6   r   N)zmyheaders/dir/file.hzmyheaders/dir/../dir/file.h)z$tmp_path$/external/dir/file.hz../external/dir/file.h)r   r   r   r   r   staticmethodr  rY   rq  rr  r  r  r  r   r   rb  s   @r'   r  r  h  s     
 
 
4 [[K'' 
 
: [[P((r6   r  c                   V P                  V4       \        4       ;_uu_ 4        \        RR.4       RRR4       \        VR,          P	                  R4      4      p\
        P                  ! \        V4      4      ;_uu_ 4       p\        VP                  4       4      uuRRR4       #   + '       g   i     L|; i  + '       g   i     R# ; i)z@Given a project directory, run the sdist and return its contentsrc   r
   Nr   z*.tar.gz)
chdirr(   r   nextglobtarfilerA   r.   setgetnames)r  r  archivetars   &&  r'   r  r    s    g	*wi( 
 Gf$**:67G	c'l	#	#s3<<>" 
$	#	 
 
$	#	#s   B&B9&B6	9C
	c                    \         P                  ! V 4      ;_uu_ 4       pVP                  4       pR R R 4       X Uu. uF  pRV9   g   K  VNK  	  pp\        V4      ^ 8X  g   Q RV 24       hR #   + '       g   i     LF; iu upi )Nz.toxz
not empty )r  rA   r  r   )setuptools_sdistr  rw   r   	tox_filess   &    r'   &test_sanity_check_setuptools_own_sdistr    sm    	&	'	'3 
( #(:%$6T>%I:y>Q8*YK 88 
(	' ;s   A.	B
B.A>	)Cr   
contextlibr#   r   r0   rl  r    r  rH   r:   inspectr   r   unittestr   jaraco.pathr  rY   rQ   r   r   setuptools._importlibr   setuptools.command.egg_infor	   setuptools.command.sdistr
   setuptools.distr   setuptools.extensionr   setuptools.testsr   textr   	distutilsdistutils.corer   r4   rx   r   rk   r   r   r   rl   contextmanagerr(   r5   r>   rE   rO   rq  xfailru  rx  rt  __package__
startswithrp  rT   r]   r_   r  r  r  r  r   r6   r'   <module>r     s     	  	  
         < * 6 * ( * *   $ Lu\G9-FRWW\\#w789:	 
  	WW\\,./WW\\,./	
 %%	(9(99  8 8)	
 $*;;#4#4M6 $5 $   ;;%%+( &   %kk00((66< 1  
O Od$*\( \(~#9r6   