+
     h(  c            	      s   R t ^ RIH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HtHt ]P                  P!                  ]P                  P#                  ]P                  P%                  ]P                  P%                  ]4      4      RR4      ;t]P                  9  ].,          4       ]P*                  P-                  RR4       ^ RIt^R	IHtHt ^R
IH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)t*^ RI+H,t, . ROt-]! RRR7      t.Rt/]P`                  t1] P`                  t2R t3R R lt4R t5]*Pl                  Pj                  P                   ]5n         ]'       d   ^ RI)H7t8 M&]Pr                  ! ]*Pl                  Pn                  4      t8 ! R R]84      t7R t:]Pv                  3R lt< ! R R]=4      t>]P~                  ! 4        R# ) z@Extensions to the 'distutils' for large or complex distributions)annotationsN)abstractmethod)Mapping)TYPE_CHECKINGTypeVaroverloadZ
setuptoolsZ_vendorZ	backports)loggingmonkey)Require)PackageFinderPEP420PackageFinder)Distribution)	Extension)__version__)SetuptoolsDeprecationWarning)DistutilsOptionErrorCommand	_CommandT_Command)Zboundc                s     ! R  R\         P                  P                  4      pV! V 4      pVP                  RR7       VP                  '       d   \        V4       R# R# )c                  sH   a  ] tR t^9tRtR V 3R lltRV 3R lltR tRtV ;t	# )4_install_setup_requires.<locals>.MinimalDistributionzT
A minimal version of a distribution for supporting the
fetch_build_eggs interface.
c                    V ^8  d   QhRRRR/# )   attrszMapping[str, object]returnNone Zformat   "8/usr/lib/python3.14/site-packages/setuptools/__init__.py__annotate__ZA_install_setup_requires.<locals>.MinimalDistribution.__annotate__?   s     	) 	)"6 	)4 	)    c                	s   < Rp\        V4      \        V4      ,           Uu/ uF  q3W,          bK  	  pp\        SV `	  V4       V P                  P	                  4        R# u upi )dependency_linksN)r   setup_requires)Zsetsuper__init__Zset_defaultsZ_disable)selfr   Z_inclZkZfiltered	__class__s   &&   r   r"   Z=_install_setup_requires.<locals>.MinimalDistribution.__init__?   sT    8E-0Z#e*-DE-D58-DHEGX&&&( Fs   Ac                sZ   <  \         SV `  V4      w  r#VR3#   \         d    TR3u # i ; i)zAIgnore ``pyproject.toml``, they are not related to setup_requiresr   )r!   Z _split_standard_project_metadata	Exception)r#   Z	filenamesZcfgZ_tomlr$   s   &&  r   _get_project_config_filesZN_install_setup_requires.<locals>.MinimalDistribution._get_project_config_filesF   s?    %"WEiP
 7N  % "}$%s    **c                s    R# )zH
Disable finalize_options to avoid building the working set.
Ref #2158.
Nr   r#      &r   finalize_optionsZE_install_setup_requires.<locals>.MinimalDistribution.finalize_optionsN   s    r   r   N)
__name__
__module____qualname____firstlineno____doc__r"   r&   r)   __static_attributes____classcell__r$      @r   MinimalDistributionr   9   s!    	
	) 	)		 	r   r4   T)Zignore_option_errorsN)	distutilscorer   Zparse_config_filesr    _fetch_build_eggs)r   r4   dist   &  r   _install_setup_requiresr:   6   sP    inn99 6 u%D 	6$ r   c                   V ^8  d   QhRR/# )r   r8   r   r   r   r   r   r   r   \   s      L r   c                s    V P                  V P                  4       R#   \         d]   pR pRTP                  P                  9   d:   \        TR4      '       d   TP                  T4       h T P                  RT R24       h Rp?ii ; i)a  
        It is possible a package already installed in your system
        contains an version that is invalid according to PEP 440.
        You can try `pip install --use-pep517` as a workaround for this problem,
        or rely on a new virtual environment.

        If the problem refers to a package that is not installed yet,
        please contact that package's maintainers or distributors.
        ZInvalidVersionadd_noteZ
N)Zfetch_build_eggsr    r%   r$   r+   Zhasattrr<   Zannounce)r8   ZexZmsgr9   r   r7   r7   \   s}    d112  r||444r:&&C  	 3%rl+s    BABBc                 s    \         P                  ! 4        \        V 4       \        P                  P
                  ! R/ V B # )Nr   )r   Z	configurer:   r5   r6   setup)r   s   ,r   r=   r=   q   s.    E">>(%((r   )r   c                  s   a  ] tR t^t$ RtRtR]R&   R V 3R lltRR ltR R	 lt	]
RR
 R ll4       t]
RR R ll4       tRR R llt]R R l4       t]R R l4       t]R R l4       tRtV ;t# )r   a  
Setuptools internal actions are organized using a *command design pattern*.
This means that each action (or group of closely related actions) executed during
the build should be implemented as a ``Command`` subclass.

These commands are abstractions and do not necessarily correspond to a command that
can (or should) be executed via a terminal, in a CLI fashion (although historically
they would).

When creating a new command from scratch, custom defined classes **SHOULD** inherit
from ``setuptools.Command`` and implement a few mandatory methods.
Between these mandatory methods, are listed:
:meth:`initialize_options`, :meth:`finalize_options` and :meth:`run`.

A useful analogy for command classes is to think of them as subroutines with local
variables called "options".  The options are "declared" in :meth:`initialize_options`
and "defined" (given their final values, aka "finalized") in :meth:`finalize_options`,
both of which must be defined by every command class. The "body" of the subroutine,
(where it does all the work) is the :meth:`run` method.
Between :meth:`initialize_options` and :meth:`finalize_options`, ``setuptools`` may set
the values for options/attributes based on user's input (or circumstance),
which means that the implementation should be careful to not overwrite values in
:meth:`finalize_options` unless necessary.

Please note that other commands (or other parts of setuptools) may also overwrite
the values of the command's options/attributes multiple times during the build
process.
Therefore it is important to consistently implement :meth:`initialize_options` and
:meth:`finalize_options`. For example, all derived attributes (or attributes that
depend on the value of other attributes) **SHOULD** be recomputed in
:meth:`finalize_options`.

When overwriting existing commands, custom defined classes **MUST** abide by the
same APIs implemented by the original class. They also **SHOULD** inherit from the
original class.
Fr   Zdistributionc               r   )r   r8   r   r   r   r   r   r   r   r   Command.__annotate__   s      \ D r   c                sZ   < \         SV `  V4       \        V 4      P                  V4       R# )zR
Construct the command for dist, updating
vars(self) with any keyword parameters.
N)r!   r"   varsupdate)r#   r8   kwr$   s   &&,r   r"   ZCommand.__init__   s$    
 	T
"r   c           	     	s    \        W4      pVf   \        WV4       V# \        V\        4      '       g   \	        RV RV RV R24      hV# )N'z' must be a z (got `z`))getattrsetattr
isinstancestrr   )r#   optionZwhatZdefaultvals   &&&& r   _ensure_stringlikeZCommand._ensure_stringlike   sS    d#;D'*NC%%&6(,tfGC5PR'STT
r   c               r   )r   rG   rF   r   r   r   r   r   r   r   r>      s        r   c                sj   \        W4      pVf   R# \        V\        4      '       d$   \        W\        P
                  ! RV4      4       R# \        V\        4      '       d6   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      pMRpV'       g   \        RV RV: R24      hR# )	a|  Ensure that 'option' is a list of strings.  If 'option' is
currently a string, we split it either on /,\s*/ or /\s+/, so
"foo bar baz", "foo,bar,baz", and "foo,   bar baz" all become
["foo", "bar", "baz"].

..
   TODO: This method seems to be similar to the one in ``distutils.cmd``
   Probably it is just here for backward compatibility with old Python versions?

:meta private:
Nz,\s*|\s+c              3  sB   "   T F  p\        V\        4      x  K  	  R # 5ir*   )rE   rF   ).0Zv   & r   	<genexpr>Z-Command.ensure_string_list.<locals>.<genexpr>   s     9SAs++Ss   FTrB   z!' must be a list of strings (got Z))	rC   rE   rF   rD   reZsplitlistZallr   )r#   rG   rH   Zoks   &&  r   ensure_string_listZCommand.ensure_string_list   s     d#;S!!D"((;"<=#t$$S9S9SSS9S99*x@qI  r   c               $    V ^8  d   QhRRRRRR/# )r   commandrF   reinit_subcommandsboolr   r   r   r   r   r   r   r>      s$      04	r   c                	    R # r*   r   r#   rQ   rR   rA      &&&,r   reinitialize_commandCommand.reinitialize_command   s     r   c               s$    V ^8  d   QhRRRRRR/# )r   rQ   r   rR   rS   r   r   r   r   r   r   r>      s$       6:	r   c                	rT   r*   r   rU   rV   r   rW   rX      s     r   c               rP   )r   rQ   zstr | _CommandrR   rS   r   r   r   r   r   r   r   r>      s$      %;?	r   c                	sh    \         P                  ! WV4      p\        V4      P                  V4       V# r*   )r   rW   r?   r@   )r#   rQ   rR   rA   Zcmds   &&&, r   rW   rX      s.     ++D;MNS	
r   c               r;   r   r   r   r   r   r   r   r   r>      s     " "D "r   c                    \         h)z
Set or (reset) all options/attributes/caches used by the command
to their default values. Note that these values may be overwritten during
the build.
ZNotImplementedErrorr'   r(   r   initialize_optionsZCommand.initialize_options   
     "!r   c               r;   rY   r   r   r   r   r   r>      s     " "$ "r   c                rZ   )z
Set final values for all options/attributes used by the command.
Most of the time, each option/attribute/cache should only be set if it does not
have any value yet (e.g. ``if self.attr is None: self.attr = val``).
r[   r'   r(   r   r)   ZCommand.finalize_options   r]   r   c               r;   rY   r   r   r   r   r   r>      s     " "T "r   c                rZ   )z
Execute the actions intended by the command.
(Side effects **SHOULD** only take place when :meth:`run` is executed,
for example, creating new files or writing to the terminal output).
r[   r'   r(   r   runZCommand.run   r]   r   r   r*   )F)r+   r,   r-   r.   r/   Zcommand_consumes_argumentsZ__annotations__r"   rI   rO   r   rW   r   r\   r)   r^   r0   r1   r2   r3   r   r   r      s    #J "' 6     " " " " " "r   c                s    R \         P                  ! V RR7       4       p\        \         P                  P                  V4      # )z
Find all files under 'path'
c              3  sx   "   T F0  w  rpV F$  p\         P                  P                  W4      x  K&  	  K2  	  R # 5ir*   )ospathjoin)rJ   ZbaseZdirsfilesZfiles   &    r   rL   Z#_find_all_simple.<locals>.<genexpr>  s9      !@DD 	T   	!!@s   8:T)Zfollowlinks)r_   ZwalkZfilterr`   Zisfile)r`   ZresultsrK   r   _find_all_simplerc     s3    !#4!@G
 "''..'**r   c                s    \        V 4      pV \        P                  8X  d<   \        P                  ! \        P
                  P                  V R7      p\        W!4      p\        V4      # )z
Find all files under 'dir' and return the list of full filenames.
Unless dir is '.', return full filenames with dir prepended.
)Zstart)	rc   r_   curdir	functoolsZpartialr`   ZrelpathZmaprN   )Zdirrb   Zmake_relr9   r   findallrf     sH    
 S!E
bii$$RWW__C@H$;r   c                  s    ] tR tRtRtRtR# )sici  z;Treat this string as-is (https://en.wikipedia.org/wiki/Sic)r   N)r+   r,   r-   r.   r/   r0   r   r   r   rg   rg     s    Er   rg   )r=   r   r   r   r   r   find_packagesfind_namespace_packages)@r/   Z
__future__r    re   r_   rM   ZsysZabcr   Zcollections.abcr   Ztypingr   r   r   r`   Zextendra   ZdirnameZ__file__Zvendor_pathZmodulesZpopZ_distutils_hack.overrideZ_distutils_hackZ r   r   Zdependsr   Z	discoveryr	   r
   r8   r   Z	extensionr   Zversionr   Zwarningsr   Zdistutils.corer5   Zdistutils.errorsr   Z__all__r   Zbootstrap_install_fromZfindrh   ri   r:   r7   r=   r6   r   r   Zget_unpatchedrc   rd   rf   rF   rg   Z	patch_allr   r   r   <module>rj      s~   F #  	 	 
  # 3 3 bggoobggooh>W.XZfhq!rr+{~  |D  |D  D  IT  HU  U  V T "    9    / 2  1	 Kz2	 ""-22 # L*) $$,,2##INN$:$:;H}"h }"@	+ 		 	F# F
    r   