
    vKg(              	         S r SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSK	J
r
  SSKJrJrJr  \R                  R!                  \R                  R#                  \R                  R%                  \R                  R%                  \5      5      SS5      =r\R                  ;  \/-  5        \R*                  R-                  S	S5        SSKrS
SKJrJr  S
SKJr  S
SKJrJ r   S
SK!J"r"  S
SK#J$r$  S
SK%J&r&  S
SK'J(r(  SSK)r*SSK+J,r,  / SQr-\" SSS9r.Sr/\R`                  r1\ R`                  r2S r3S!S jr4S r5\*Rl                  Rj                  R                   \5l         \(       a  SSK)J7r8  O&\Rr                  " \*Rl                  Rn                  5      r8 " S S\85      r7S r:\Rv                  4S jr< " S S \=5      r>\R~                  " 5         g)"z@Extensions to the 'distutils' for large or complex distributions    )annotationsN)abstractmethod)Mapping)TYPE_CHECKINGTypeVaroverload
setuptools_vendor	backports   )loggingmonkey)Require)PackageFinderPEP420PackageFinder)Distribution)	Extension)__version__)SetuptoolsDeprecationWarning)DistutilsOptionError)setupr   Commandr   r   r   find_packagesfind_namespace_packages	_CommandT_Command)boundc                     " S S[         R                  R                  5      nU" U 5      nUR                  SS9  UR                  (       a  [        U5        g g )Nc                  F   ^  \ rS rSrSrSU 4S jjrSU 4S jjrS rSrU =r	$ )	4_install_setup_requires.<locals>.MinimalDistribution9   zT
A minimal version of a distribution for supporting the
fetch_build_eggs interface.
c                   > Sn[        U5      [        U5      -   Vs0 sH  o3X   _M	     nn[        TU ]	  U5        U R                  R	                  5         g s  snf )N)dependency_linkssetup_requires)setsuper__init__set_defaults_disable)selfattrs_inclkfiltered	__class__s        S/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/setuptools/__init__.pyr'   =_install_setup_requires.<locals>.MinimalDistribution.__init__?   sT    8E-0Z#e*-DE-D58-DHEGX&&&( Fs   Ac                X   >  [         TU ]  U5      u  p#US4$ ! [         a    US4s $ f = f)zAIgnore ``pyproject.toml``, they are not related to setup_requires )r&    _split_standard_project_metadata	Exception)r*   	filenamescfg_tomlr/   s       r0   _get_project_config_filesN_install_setup_requires.<locals>.MinimalDistribution._get_project_config_filesF   s?    %"WEiP
 7N  % "}$%s    ))c                    g)zH
Disable finalize_options to avoid building the working set.
Ref #2158.
Nr3   r*   s    r0   finalize_optionsE_install_setup_requires.<locals>.MinimalDistribution.finalize_optionsN   s        r3   )r+   zMapping[str, object]returnNoneN)
__name__
__module____qualname____firstlineno____doc__r'   r9   r=   __static_attributes____classcell__r/   s   @r0   MinimalDistributionr    9   s    	
	)		 	r?   rK   T)ignore_option_errors)	distutilscorer   parse_config_filesr$   _fetch_build_eggs)r+   rK   dists      r0   _install_setup_requiresrR   6   sM    inn99 6 u%D 	6$ r?   c                
    U R                  U R                  5        g ! [         aZ  nSnSUR                  R                  ;   a8  [        US5      (       a  UR                  U5        e U R                  SU S35        e S nAff = f)Na  
        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.
        InvalidVersionadd_note
)fetch_build_eggsr$   r5   r/   rC   hasattrrU   announce)rQ   exmsgs      r0   rP   rP   \   s}    d112  r||444r:&&C  	 3%rl+s    
BAA==Bc                     [         R                  " 5         [        U 5        [        R                  R
                  " S0 U D6$ )Nr3   )r   	configurerR   rM   rN   r   )r+   s    r0   r   r   q   s.    E">>(%((r?   )r   c                     ^  \ rS rSr% SrSrS\S'   SU 4S jjrSS jrSS jr	\
 S     SS	 jj5       r\
 S     SS
 jj5       r S     SS jjr\SS j5       r\SS j5       r\SS j5       rSrU =r$ )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   distributionc                X   > [         TU ]  U5        [        U 5      R                  U5        g)zR
Construct the command for dist, updating
vars(self) with any keyword parameters.
N)r&   r'   varsupdate)r*   rQ   kwr/   s      r0   r'   Command.__init__   s$    
 	T
"r?   c           	         [        X5      nUc  [        XU5        U$ [        U[        5      (       d  [	        SU< SU< SU< S35      eU$ )N'z' must be a z (got `z`))getattrsetattr
isinstancestrr   )r*   optionwhatdefaultvals        r0   _ensure_stringlikeCommand._ensure_stringlike   sK    d#;D'*NC%%&28$D  
r?   c                   [        X5      nUc  g[        U[        5      (       a"  [        X[        R
                  " SU5      5        g[        U[        5      (       a  [        S U 5       5      nOSnU(       d  [        SU< SU< S35      eg)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  @   #    U H  n[        U[        5      v   M     g 7frB   )rj   rk   ).0vs     r0   	<genexpr>-Command.ensure_string_list.<locals>.<genexpr>   s     9SAs++Ss   Frg   z!' must be a list of strings (got ))	rh   rj   rk   ri   resplitlistallr   )r*   rl   ro   oks       r0   ensure_string_listCommand.ensure_string_list   sw     d#;S!!D"((;"<=#t$$9S99*AGM  r?   c                    g rB   r3   r*   commandreinit_subcommandsrd   s       r0   reinitialize_commandCommand.reinitialize_command   s     r?   c                    g rB   r3   r   s       r0   r   r      s     r?   c                h    [         R                  " XU5      n[        U5      R                  U5        U$ rB   )r   r   rb   rc   )r*   r   r   rd   cmds        r0   r   r      s.     ++D;MNS	
r?   c                    [         e)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.
NotImplementedErrorr<   s    r0   initialize_optionsCommand.initialize_options   
     "!r?   c                    [         e)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<   s    r0   r=   Command.finalize_options   r   r?   c                    [         e)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<   s    r0   runCommand.run   r   r?   r3   )rQ   r   r@   rA   rB   )rl   rk   r@   rA   )F)r   rk   r   boolr@   r   )r   r   r   r   r@   r   )r   zstr | _Commandr   r   r@   r   )r@   rA   )rC   rD   rE   rF   rG   command_consumes_arguments__annotations__r'   rp   r~   r   r   r   r   r=   r   rH   rI   rJ   s   @r0   r   r      s    #J "'	6 7<04	  =B 6:	  CH%;?	 " " " " " "r?   r   c                    S [         R                  " U SS9 5       n[        [         R                  R                  U5      $ )z
Find all files under 'path'
c              3  v   #    U H0  u  pnU H$  n[         R                  R                  X5      v   M&     M2     g 7frB   )ospathjoin)rt   basedirsfilesfiles        r0   rv   #_find_all_simple.<locals>.<genexpr>  s9      !@DD 	T   	!!@s   79T)followlinks)r   walkfilterr   isfile)r   resultss     r0   _find_all_simpler     s3    !#4!@G
 "''..'**r?   c                    [        U 5      nU [        R                  :X  a8  [        R                  " [        R
                  R                  U S9n[        X!5      n[        U5      $ )z
Find all files under 'dir' and return the list of full filenames.
Unless dir is '.', return full filenames with dir prepended.
)start)	r   r   curdir	functoolspartialr   relpathmapr{   )dirr   make_rels      r0   findallr     sH    
 S!E
bii$$RWW__C@H$;r?   c                      \ rS rSrSrSrg)sici  z;Treat this string as-is (https://en.wikipedia.org/wiki/Sic)r3   N)rC   rD   rE   rF   rG   rH   r3   r?   r0   r   r     s    Er?   r   )rQ   r   )@rG   
__future__r   r   r   ry   sysabcr   collections.abcr   typingr   r   r   r   extendr   dirname__file__vendor_pathmodulespop_distutils_hack.override_distutils_hack r   r   dependsr   	discoveryr   r   rQ   r   	extensionr   versionr   warningsr   distutils.corerM   distutils.errorsr   __all__r   bootstrap_install_fromfindr   r   rR   rP   r   rN   r   r   get_unpatchedr   r   r   rk   r   	patch_allr3   r?   r0   <module>r      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 "D	+ 		 	F# F
    r?   