+
    SBiiI                        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	H
t
 ^ RIt^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIt^ RItR]P0                  R8H  ,          R,           t ! R	 R
]4      t ! R R]4      t]P8                  R 4       t]P<                  ]P>                  PA                  R4      ]P>                  PA                  R4       ! R R]PB                  4      4       4       4       t"]P>                  PA                  R4      ]P>                  PA                  R4       ! R R]PB                  4      4       4       t#R# )zTests for distutils.dist.N)Command)Distributionfix_help_options)support)ClassVar.posixzpydistutils.cfgc                   <   a  ] tR t^t o RtR.tR tV 3R ltRtV t	R# )	test_distz#Sample distutils extension command.c                    R V n         R # Nsample_optionselfs   &J/usr/lib/python3.14/site-packages/setuptools/_distutils/tests/test_dist.pyinitialize_optionstest_dist.initialize_options   s
    !    c                `   < V ^8  d   Qh/ S[ S[S[S[S[S[3,          ,          ,          ;R&   # )   user_options)r   listtuplestr)format__classdict__s   "r   __annotate__test_dist.__annotate__   s)      4c3m 456  r   r   N)zsample-option=Sz	help text)
__name__
__module____qualname____firstlineno____doc__r   r   __annotate_func____static_attributes____classdictcell__r   s   @r   r
   r
      s      - 	-:L"  r   r
   c                   *   a  ] tR t^#t o RtR tRtV tR# )TestDistributionzDistribution subclasses that avoids the default search for
configuration files.

The ._config_files attribute must be set before
.parse_config_files() is called.
c                    V P                   # r   )_config_filesr   s   &r   find_config_files"TestDistribution.find_config_files+   s    !!!r    N)r    r!   r"   r#   r$   r-   r&   r'   r(   s   @r   r*   r*   #   s     " "r   r*   c                  (    \         P                  R  R# )   NNN)sysargvr/   r   r   
clear_argvr5   /   s    r   save_env	save_argvc                     a  ] tR t^4t o RR ltR tR t]P                  P                  R]
P                  P                  9  RR7      R 4       tR tR	 tR
 tR tR tR tR t]P                  P                  RRR7      R 4       tRtV tR# )TestDistributionBehaviorc                f    \        4       pWn        VP                  4        VP                  4        V# r   )r*   r,   parse_config_filesparse_command_line)r   configfilesds   && r   create_distribution,TestDistributionBehavior.create_distribution8   s,    %		r   c                    \         P                  P                  R 4       V P                  4       pVP	                  4       R.8X  g   Q hR# )builddistutils.commandN)r3   r4   appendr?   get_command_packages)r   r5   r>   s   && r   !test_command_packages_unspecified:TestDistributionBehavior.test_command_packages_unspecified?   s;     $$&%%',?+@@@@r   c                   ^ RI Hp \        P                  P	                  . RO4       V P                  4       pVP                  4       . RO8X  g   Q hVP                  R4      p\        WB4      '       g   Q hVP                  R8X  g   Q hR# )    )r
   r
   sometextN)--command-packageszfoo.bar,distutils.testsr
   z
-Ssometext)rC   foo.barzdistutils.tests)
distutils.tests.test_distr
   r3   r4   extendr?   rE   get_command_obj
isinstancer   )r   r5   r
   r>   cmds   &&   r   test_command_packages_cmdline6TestDistributionBehavior.test_command_packages_cmdlineD   s    7 
 	 $$&%%' ,
 
 	
 

 ,#))))  J...r   	distutilsz;Cannot test when virtualenv has monkey-patched Distribution)reasonc                B   \         P                  P                  R 4       \        VR,          4      pRp\        P
                  P                  VRV RV RV RV RV RV R	V R
V RV RV RV RV RV R2/4       \        P                  P                  \         RRR7      ;_uu_ 4        V P                  V.4      pRRR4       W43pRVRVRVRVRVRVRVRVRVRVRVRVR V/p\        XP                  P                  R 4      P                  4       4      \        VP                  4       4      8X  g   Q hVP                  P                  R 4      P                  4        F  w  rWV,          8X  d   K  Q h	  \        P                  P                  \         RR!R7      ;_uu_ 4        V P                  V.4      pRRR4       VP                  4        F%  pWP                  P                  R / 4      9  d   K%  Q h	  R#   + '       g   i     ELE; i  + '       g   i     L_; i)"installfilez/somedirzB
                    [install]
                    install-base = z(
                    install-platbase = z#
                    install-lib = z'
                    install-platlib = z'
                    install-purelib = z'
                    install-headers = z'
                    install-scripts = z$
                    install-data = z
                    prefix = z#
                    exec-prefix = z
                    home = z
                    user = z
                    root = z
                    z/a)prefixbase_prefixNinstall_baseinstall_platbaseinstall_libinstall_platlibinstall_purelibinstall_headersinstall_scriptsinstall_datarY   exec_prefixhomeuserrootz/b)r3   r4   rD   r   jaracopathrB   mockpatchmultipler?   sortedcommand_optionsgetkeysitems)
r   tmp_pathr5   rX   fakepathr>   option_tupleresult_dictkeyvalues
   &&&       r   test_venv_install_options2TestDistributionBehavior.test_venv_install_optionsX   s[   
 		"8f$% $$,: .((0z 2##+* -''/j 1''/j 1''/j 1''/j 1$$,: .&Z (##+* -$: &$: &$: &
 	( ZZ  Tt DD(($0A E ' L<||||Ll<LLL
  a''++I6;;=>&C
 
 	
 
 ++//	:@@BJC,,,, C ZZ  Tt DD(($0A E ##%C//33IrBBBB &A EDD: EDs   +G:$H:H	H	c                   \         P                  P                  R 4       \        VR,          4      p\        P
                  P                  VR/4       V P                  V.4      pVP                  4       . RO8X  g   Q h. RO\         P                  R&   V P                  V.4      pVP                  4       RR.8X  g   Q h. R	O\         P                  R&   V P                  V.4      pVP                  4       R.8X  g   Q hR# )
rB   rX   zh
                    [global]
                    command_packages = foo.bar, splat
                    rC   sporkr1   N)rC   rL   splat)rK   rz   rB   )rK    rB   )	r3   r4   rD   r   rg   rh   rB   r?   rE   )r   rq   r5   rX   r>   s   &&&  r    test_command_packages_configfile9TestDistributionBehavior.test_command_packages_configfile   s     8f$% 
 	 $$dV,%%'+TTTT @$$dV,%%',?+IIII ;$$dV,%%',?+@@@@r   c                  a . oV3R  lpVP                  \        P                  ! \        \        R\        P
                  4      4       V\        n        \        RRRRRRRRR/ /R	7      p\        S4      ^ 8X  g   Q hR\        V4      9  g   Q hR
# )c                 *   < SP                  V 4       R # r   )rD   )msgwarnss   &r   _warn:TestDistributionBehavior.test_empty_options.<locals>._warn   s    LLr   warnauthorxxxnameversionurlxxxxoptionsattrsN)	addfinalizer	functoolspartialsetattrwarningsr   r   lendir)r   requestr   distr   s   &&  @r   test_empty_options+TestDistributionBehavior.test_empty_options   s    
 	 	gxG	
 %5v2
 5zQD	)))r   c                   R RRR/p\        VR7      pVP                  4        VP                  P                  RR.8X  g   Q hVP                  P                  RR.8X  g   Q hR RRR/p\        VR7      pVP                  4        VP                  P                  R.8X  g   Q hVP                  P                  R.8X  g   Q hR# )keywordsone,two	platformsr   onetwozfoo barN)r   finalize_optionsmetadatar   r   r   r   r   s   &  r   test_finalize_options.TestDistributionBehavior.test_finalize_options   s    YY?%( }}&&5%.888}}%%%777YY?%(}}&&9+555}}%%)444r   c                    \        4       pVP                  e   Q hVP                  4       pVR.8X  g   Q hVP                  R.8X  g   Q hRVn        VP                  4       pV. RO8X  g   Q hR # )NrC   r   )rC   r   r   )r   command_packagesrE   )r   r   cmdss   &  r   test_get_command_packages2TestDistributionBehavior.test_get_command_packages   sx    ~$$,,,((*+,,,,$$)<(==== )((*::::r   c                    \        4       p\        P                  ! \        4      ;_uu_ 4        VP	                  R RR7       RRR4       R#   + '       g   i     R# ; i)okok2)levelN)r   pytestraises	TypeErrorannounce)r   r   s   & r   test_announce&TestDistributionBehavior.test_announce   s7    ~]]9%%MM$eM, &%%%s   AA	c                   \         P                  P                  \        R /V4       \	        4       pVP                  4       p\	        RR./R7      pVP                  4       p\        V4      ^,
          \        V4      8X  g   Q hR# )z[distutils]
script_args--no-user-cfgr   N)rg   rh   rB   pydistutils_cfgr   r-   r   )r   	temp_homer>   	all_filesfiless   &&   r   test_find_config_files_disable7TestDistributionBehavior.test_find_config_files_disable   sm    ?O<iHN'')	/@AB##% 9~!SZ///r   c                L    \        R R/R7      pVP                  RR.8X  g   Q hR# )r   rB   r   r   N)rB   r   )r   r   )r   r>   s   & r   test_script_args_list_coercion7TestDistributionBehavior.test_script_args_list_coercion   s+    /IJK }}/ ::::r   zplatform.system() == "Windows"z Windows does not honor chmod 000c                    VP                  \        4      P                  RRR7       VP                  ^ 4       \	        4       P                  4        R# )zF
Finding config files should not fail when directory is inaccessible.
r|   zutf-8)encodingN)joinpathr   
write_textchmodr   r-   )r   	fake_homes   &&r   'test_find_config_files_permission_error@TestDistributionBehavior.test_find_config_files_permission_error   s<     	?+66rG6L((*r   r/   N)r/   )r    r!   r"   r#   r?   rF   rR   r   markskipifr   r;   rw   r}   r   r   r   r   r   r   r   r&   r'   r(   s   @r   r9   r9   4   s     A
/( [[<::EEEL  ;C	;CzA0*65 	;-0; [[(1  +	+r   r9   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestMetadatai  c                    \         P                  ! 4       pVP                  P                  V4       VP	                  4       # r   )ioStringIOr   write_pkg_filegetvalue)r   r   sios   && r   format_metadataTestMetadata.format_metadata  s+    kkm$$S)||~r   c                    R RRR/p\        V4      pV P                  V4      pRV9   g   Q hRVP                  4       9  g   Q hRVP                  4       9  g   Q hRVP                  4       9  g   Q hR# )	r   packager   1.0zMetadata-Version: 1.0	provides:	requires:
obsoletes:N)r   r   lowerr   r   r   metas   &   r   test_simple_metadata!TestMetadata.test_simple_metadata  st    Iu5E"##D)&$...$**,...$**,...4::<///r   c                8   R RRRRRR./p\        V4      pVP                  P                  4       RR.8X  g   Q hVP                  4       RR.8X  g   Q hV P                  V4      pRV9   g   Q hRVP	                  4       9  g   Q hRVP	                  4       9  g   Q hR	# )
r   r   r   r   provideszpackage.subMetadata-Version: 1.1r   r   N)r   r   get_providesr   r   r   s   &   r   test_providesTestMetadata.test_provides  s    IuM2

 E"}}))+	=/IIII  "y-&@@@@##D)&$...$**,...4::<///r   c           
         \         P                  ! \        4      ;_uu_ 4        \        R RRRRR./4       RRR4       R#   + '       g   i     R# ; i)r   r   r   r   r   my.pkg (splat)Nr   r   
ValueErrorr   r   s   &r   test_provides_illegal"TestMetadata.test_provides_illegal,  <    ]]:&&IujCSBTU '&&&   A  A	c                \   R RRRRRR./p\        V4      pVP                  P                  4       RR.8X  g   Q hVP                  4       RR.8X  g   Q hV P                  V4      pRV9   g   Q hRVP	                  4       9  g   Q hR	V9   g   Q hR
V9   g   Q hRVP	                  4       9  g   Q hR# )r   r   r   r   requiresotherzanother (==1.0)r   r   zRequires: otherzRequires: another (==1.0)r   N)r   r   get_requiresr   r   r   s   &   r   test_requiresTestMetadata.test_requires2  s    Iu"34

 E"}}))+9J/KKKK  "w0A&BBBB##D)&$...$**,... D(((*d2224::<///r   c           
         \         P                  ! \        4      ;_uu_ 4        \        R RRRRR./4       RRR4       R#   + '       g   i     R# ; i)r   r   r   r   r   r   Nr   r   s   &r   test_requires_illegal"TestMetadata.test_requires_illegalB  r   r   c                    R RR\        R.4      /p\        V4      p\        VP                  P                  \
        4      '       g   Q hR# )r   r   r   r   N)iterr   rP   r   r   r   r   s   &  r   test_requires_to_list"TestMetadata.test_requires_to_listH  s=    JgY@E"$--00$7777r   c                \   R RRRRRR./p\        V4      pVP                  P                  4       RR.8X  g   Q hVP                  4       RR.8X  g   Q hV P                  V4      pRV9   g   Q hRVP	                  4       9  g   Q hR	VP	                  4       9  g   Q hR
V9   g   Q hRV9   g   Q hR# )r   r   r   r   	obsoletesr   zanother (<1.0)r   r   r   zObsoletes: otherzObsoletes: another (<1.0)N)r   r   get_obsoletesr   r   r   s   &   r   test_obsoletesTestMetadata.test_obsoletesM  s    Iu'#34

 E"}}**,:J0KKKK!!#1A'BBBB##D)&$...$**,...$**,...!T)))*d222r   c           
         \         P                  ! \        4      ;_uu_ 4        \        R RRRRR./4       RRR4       R#   + '       g   i     R# ; i)r   r   r   r   r   r   Nr   r   s   &r   test_obsoletes_illegal#TestMetadata.test_obsoletes_illegal]  s<    ]]:&&IukDTCUV '&&&r   c                    R RR\        R.4      /p\        V4      p\        VP                  P                  \
        4      '       g   Q hR# )r   r   r   r   N)r   r   rP   r   r   r   r   s   &  r   test_obsoletes_to_list#TestMetadata.test_obsoletes_to_listc  s=    KwiAE"$--1148888r   c                    R RRRRR./p\        V4      pVP                  4       R.8X  g   Q hV P                  V4      pRV9   g   Q hR# )r   Boar   3.0classifiers#Programming Language :: Python :: 3r   N)r   get_classifiersr   r   s   &   r   test_classifierTestMetadata.test_classifierh  sa    EuAB

 E"##%*O)PPPP##D)&$...r   c                   R RRRRR/p\        V4      pRVP                  ^ ,          9   g   Q h\        VP                  P                  \
        4      '       g   Q hVP                  P                  \        VR,          4      8X  g   Q hR# )r   r  r   r  r  should be a listN)r	  )r   messagesrP   r   r  r   r   caplogr   r>   s   &&  r   test_classifier_invalid_type)TestMetadata.test_classifier_invalid_types  s{    EuC

 !V__Q%7777!**00$7777zz%%eM.B)CCCCr   c                b    R RRRR. RO/p\        V4      pVP                  4       . RO8X  g   Q hR# )r   Montyr   r   r   Nspameggszlife of brian)r   get_keywordsr   s   &  r   test_keywordsTestMetadata.test_keywords  s=    Gu9

 E"  "&GGGGr   c                   R RRRRR/p\        V4      pRVP                  ^ ,          9   g   Q h\        VP                  P                  \
        4      '       g   Q hVP                  P                  \        VR,          4      8X  g   Q hR# )r   r  r   r   r   r  Nr  )r   r  rP   r   r   r   r  s   &&  r   test_keywords_invalid_type'TestMetadata.test_keywords_invalid_type  s{    Gu9

 !V__Q%7777!**--t4444zz""d5+<&====r   c                b    R RRRRRR./p\        V4      pVP                  4       RR.8X  g   Q hR# )r   r  r   r   r   	GNU/LinuxSome Evil PlatformN)r   get_platformsr   s   &  r   test_platformsTestMetadata.test_platforms  sG    Gu+';<

 E"!!#5I'JJJJr   c                   R RRRRR/p\        V4      pRVP                  ^ ,          9   g   Q h\        VP                  P                  \
        4      '       g   Q hVP                  P                  \        VR,          4      8X  g   Q hR# )r   r  r   r   r   r  N)r   r!  )r   r  rP   r   r   r   r  s   &&  r   test_platforms_invalid_types)TestMetadata.test_platforms_invalid_types  s{    Gu<

 !V__Q%7777!**..5555zz##tE+,>'????r   c                `    R RRRRR/p\        V4      pV P                  V4      pRV9   g   Q hR# )r   r  r   r  download_urlzhttp://example.org/boar   N)r   r   r   s   &   r   test_download_urlTestMetadata.test_download_url  sC    Eu4

 E"##D)&$...r   c                    \         P                  ! R 4      pRRRRRV/p\        V4      pV P                  V4      pVP	                  RR4      pW9   g   Q hR# )	zc        example::
              We start here
            and continue here
          and end here.r   r   r   r   long_description
Nz	
        )textwrapdedentr   r   replace)r   	long_descr   r   r   s   &    r   test_long_description"TestMetadata.test_long_description  s`    OO
	 Iu6H)TE"##D)||ND1   r   c                    \         P                  P                  \        R/V4       V\        ,          p\	        V4      \        4       P                  4       9   g   Q hR# )z
pydistutils.cfg is found
r|   N)rg   rh   rB   r   r   r   r-   )r   r   config_paths   && r   test_custom_pydistutils$TestMetadata.test_custom_pydistutils  sE     	?B/;/1;<>#C#C#EEEEr   c                    \         P                  P                  R R/V4       VR ,          pVP                  R\	        V4      4       \	        V4      \        4       P                  4       9   g   Q hR# )zoverrides.cfgr|   DIST_EXTRA_CONFIGN)rg   rh   rB   setenvr   r   r-   )r   monkeypatchrq   filenames   &&& r   test_extra_pydistutils#TestMetadata.test_extra_pydistutils  sW    ?B/:o-.H>8} @ @ BBBBr   c                d    RR.p\        V4      pV^ ,          R8X  g   Q hV^,          R8X  g   Q hR# )aN)rA  bcr>   )r2   r         )rA  rB  rC  )r2   r   rD  )r   )r   help_tuplesfancy_optionss   &  r   test_fix_help_options"TestMetadata.test_fix_help_options  s<    +\:(5Q?222Q9,,,r   c                &   \        4       p. \        n        R Vn        RVn        VP                  4        VP                  4       P                  P                  R4       Uu. uF  qDP                  4       R8w  g   K  VNK  	  ppV'       g   Q hR# u upi )Tzsetup.pyr.  r|   N)
r   r3   r4   helpscript_namer<   
readouterroutsplitstrip)r   r   capsysr   lineoutputs   &&&   r   test_show_helpTestMetadata.test_show_help  s    ~	%! $..044::4@
@TJJLTVDVDD@ 	 
 v
s   B:Bc                   R RRRRRRRRR	R
RR.RR./p\        V4      pVP                  p\        P                  ! 4       pVP	                  V4       VP                  ^ 4       VP                  V4       VP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R8X  g   Q hVP                  R	8X  g   Q hVP                  RR.8X  g   Q hVP                  e   Q hVP                  e   Q hVP                  R.8X  g   Q hR# )r   r   r   r   r-  descdescriptionr   r)  zhttp://example.comr   r   r   r   fooN)r   r   r   r   r   seekread_pkg_filer   r   rX  r)  r   r   r   r   )r   r   r   r   PKG_INFOs   &    r   test_read_metadataTestMetadata.test_read_metadata  s   Iu50
 E"== ;;=)ax(}}	)))5(((##u,,,$$(<<<<  UEN222!!)))!!)))  UG+++r   c                   RRRRRR/p\        V4      pVP                  p\        P                  ! 4       ;_uu_ 4       pVP	                  V4       VP                  4       pRRR4       \        P                  ! X4      p\        P                  P                  RR	^ R
7      p\        P                  ! 4       ;_uu_ 4       p\        P                  P                  WGR7      P                  V4       VP                  ^ 4       \        P                  ! V4      pRRR4       \        VR,          P!                  4       4      p	\        XR,          P!                  4       4      p
W8X  g   Q hR#   + '       g   i     EL; i  + '       g   i     Ln; i)z
In pypa/setuptools#4033, it was shown that once PKG-INFO is
re-generated using ``email.generator.Generator``, some control
characters might cause problems.
r   r   r   r   r-  zhello
world
NTF)utf8mangle_from_max_line_length)policyDescription)r   r   r   r   r   r   emailmessage_from_stringrc  EmailPolicy	generator	GeneratorflattenrZ  message_from_fileset
splitlines)r   r   r   r   bufferr   origrc  regen	orig_desc
regen_descs   &          r   'test_round_trip_through_email_generator4TestMetadata.test_round_trip_through_email_generator  s/    Iu 4

 E"==[[]]f##F+//#C 
 ((-)) * 

 [[]]fOO%%f%<DDTJKKN++F3E	  ]+6689	}-88:;
&&&+ ]] ]s   "E%<AE9%E6	9F		r/   N)r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r#  r&  r*  r3  r7  r>  rH  rT  r]  rs  r&   r'   r(   s   @r   r   r     s     
000 8
3 9
	/DH>K@/!FC-,:$' $'r   r   )$r$   re  email.generatoremail.policyr   r   osr3   r/  unittest.mockri   r   distutils.cmdr   distutils.distr   r   distutils.testsr   typingr   jaraco.pathrg   r   r   r   r
   r*   fixturer5   combine_markersr   usefixturesTempdirManagerr9   r   r/   r   r   <module>r     s$        	 	 
    ! 9 #   G+,/@@" "	"| 	"   	$%S+w55 S+ & % S+l $%Y'7)) Y' & %Y'r   