§
    Á³gÒ#  ã                   ó  — d Z ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ ddlmZ ddlZddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZ g d¢Zej        j         Z dZ!ej"        Z#ej"        Z$d„ Z%d„ Z&d„ Z'ej(        j'        j         e'_          ej)        ej(        j*        ¦  «        Z+ G d„ de+¦  «        Z*d„ Z,ej-        fd„Z. ej/        e¦  «        d„ ¦   «         Z G d„ de0¦  «        Z1 ej2        ¦   «          dS )z@Extensions to the 'distutils' for large or complex distributionsé    N)ÚDistutilsOptionError)Úconvert_pathé   )ÚSetuptoolsDeprecationWarning)Ú	Extension)ÚDistribution)ÚRequire)ÚPackageFinderÚPEP420PackageFinder)Úmonkey)Úlogging)Úsetupr   ÚCommandr   r	   r   Úfind_packagesÚfind_namespace_packagesc                 ó²   —  G d„ dt           j        j        ¦  «        } || ¦  «        }|                     d¬¦  «         |j        rt          |¦  «         d S d S )Nc                   ó4   ‡ — e Zd ZdZˆ fd„Zdˆ fd„	Zd„ Zˆ xZS )ú4_install_setup_requires.<locals>.MinimalDistributionzl
        A minimal version of a distribution for supporting the
        fetch_build_eggs interface.
        c                 óØ   •‡— d}ˆfd„t          |¦  «        t          ‰¦  «        z  D ¦   «         }t          ¦   «                              |¦  «         | j                             ¦   «          d S )N)Údependency_linksÚsetup_requiresc                 ó"   •— i | ]}|‰|         “ŒS © r   )Ú.0ÚkÚattrss     €úQ/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/setuptools/__init__.pyú
<dictcomp>zQ_install_setup_requires.<locals>.MinimalDistribution.__init__.<locals>.<dictcomp>8   s   ø€ ÐEÐEÐE¨˜˜5 œ8ÐEÐEÐEó    )ÚsetÚsuperÚ__init__Úset_defaultsÚ_disable)Úselfr   Ú_inclÚfilteredÚ	__class__s    `  €r   r"   z=_install_setup_requires.<locals>.MinimalDistribution.__init__6   sf   øø€ Ø8ˆEØEÐEÐEÐE­S°©Z¬Z½#¸e¹*¼*Ñ-DÐEÑEÔEˆHÝ‰GŒG×Ò˜XÑ&Ô&Ð&àÔ×&Ò&Ñ(Ô(Ð(Ð(Ð(r   Nc                 ó~   •— 	 t          ¦   «                              |¦  «        \  }}|dfS # t          $ r |dfcY S w xY w)zAIgnore ``pyproject.toml``, they are not related to setup_requiresr   )r!   Ú _split_standard_project_metadataÚ	Exception)r%   Ú	filenamesÚcfgÚtomlr(   s       €r   Ú_get_project_config_fileszN_install_setup_requires.<locals>.MinimalDistribution._get_project_config_files=   sW   ø€ ð%Ý!™GœG×DÒDÀYÑOÔO‘	��TØ˜B�w�øÝð %ð %ð %Ø  "�}Ð$Ð$Ð$ð%øøøs   ƒ'+ «<»<c                 ó   — dS )zl
            Disable finalize_options to avoid building the working set.
            Ref #2158.
            Nr   )r%   s    r   Úfinalize_optionszE_install_setup_requires.<locals>.MinimalDistribution.finalize_optionsE   s   € € € r   ©N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r/   r1   Ú__classcell__©r(   s   @r   ÚMinimalDistributionr   0   so   ø€ € € € € ð	ð 	ð
	)ð 	)ð 	)ð 	)ð 	)ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð	ð 	ð 	ð 	ð 	ð 	ð 	r   r9   T)Úignore_option_errors)Ú	distutilsÚcorer   Úparse_config_filesr   Ú_fetch_build_eggs)r   r9   Údists      r   Ú_install_setup_requiresr@   -   s…   € ðð ð ð ð �iœnÔ9ñ ô ð ð6 Ð˜uÑ%Ô%€Dð 	×Ò°ÐÑ6Ô6Ð6ØÔð  Ý˜$ÑÔÐÐÐð ð  r   c                 ó   — 	 |                       | j        ¦  «         d S # t          $ rU}d}d|j        j        v r?t          |d¦  «        r|                     |¦  «         n|                      d|› d�¦  «         ‚ d }~ww xY w)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   r+   r(   r3   ÚhasattrrC   Úannounce)r?   ÚexÚmsgs      r   r>   r>   S   s    € ðØ×Ò˜dÔ1Ñ2Ô2Ð2Ð2Ð2øÝð ð ð ðˆð ˜rœ|Ô4Ð4Ð4Ý�r˜:Ñ&Ô&ð ,Ø—’˜CÑ Ô Ð Ð à—’˜l 3˜l˜l˜lÑ+Ô+Ð+Øøøøøðøøøs   ‚ ž
A=¨AA8Á8A=c                  ór   — t          j        ¦   «          t          | ¦  «         t          j        j        di | ¤ŽS )Nr   )r   Ú	configurer@   r;   r<   r   )r   s    r   r   r   h   s8   € åÔÑÔÐÝ˜EÑ"Ô"Ð"ÝŒ>ÔÐ(Ð( %Ð(Ð(Ð(r   c                   ó<   ‡ — e Zd ZdZdZˆ fd„Zd	d„Zd„ Zd
d„Zˆ xZ	S )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:

    .. method:: initialize_options(self)

        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.

    .. method:: finalize_options(self)

        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``).

    .. method:: run(self)

        Execute the actions intended by the command.
        (Side effects **SHOULD** only take place when ``run`` is executed,
        for example, creating new files or writing to the terminal output).

    A useful analogy for command classes is to think of them as subroutines with local
    variables called "options".  The options are "declared" in ``initialize_options()``
    and "defined" (given their final values, aka "finalized") in ``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 ``run()`` method.
    Between ``initialize_options()`` and ``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
    ``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 ``initialize_options()`` and
    ``finalize_options()``. For example, all derived attributes (or attributes that
    depend on the value of other attributes) **SHOULD** be recomputed in
    ``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.
    Fc                 óŽ   •— t          ¦   «                              |¦  «         t          | ¦  «                             |¦  «         dS )zj
        Construct the command for dist, updating
        vars(self) with any keyword parameters.
        N)r!   r"   ÚvarsÚupdate)r%   r?   Úkwr(   s      €r   r"   zCommand.__init__®   s=   ø€ õ
 	‰Œ×Ò˜ÑÔÐÝˆT‰
Œ
×Ò˜"ÑÔÐÐÐr   Nc           	      ó¬   — t          | |¦  «        }|€t          | ||¦  «         |S t          |t          ¦  «        st	          d|›d|›d|›d�¦  «        ‚|S )Nú'z' must be a z (got `z`))ÚgetattrÚsetattrÚ
isinstanceÚstrr   )r%   ÚoptionÚwhatÚdefaultÚvals        r   Ú_ensure_stringlikezCommand._ensure_stringlike¶   sq   € Ý�d˜FÑ#Ô#ˆØˆ;Ý�D˜& 'Ñ*Ô*Ð*ØˆNÝ˜C¥Ñ%Ô%ð 	Ý&Ð&Ø28°&°&¸$¸$¸$ÀÀÀÐDñô ð ð ˆ
r   c                 ó6  — t          | |¦  «        }|€dS t          |t          ¦  «        r&t          | |t	          j        d|¦  «        ¦  «         dS t          |t          ¦  «        rt          d„ |D ¦   «         ¦  «        }nd}|st          d|›d|›d�¦  «        ‚dS )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   ó@   K  — | ]}t          |t          ¦  «        V — Œd S r2   )rU   rV   )r   Úvs     r   ú	<genexpr>z-Command.ensure_string_list.<locals>.<genexpr>Ô   s,   è è € Ð9Ð9°� A¥sÑ+Ô+Ð9Ð9Ð9Ð9Ð9Ð9r   FrR   z!' must be a list of strings (got ú))	rS   rU   rV   rT   ÚreÚsplitÚlistÚallr   )r%   rW   rZ   Úoks       r   Úensure_string_listzCommand.ensure_string_listÁ   s¿   € õ �d˜FÑ#Ô#ˆØˆ;ØˆFÝ˜�SÑ!Ô!ð 
	Ý�D˜&¥"¤(¨;¸Ñ"<Ô"<Ñ=Ô=Ð=Ð=Ð=å˜#�tÑ$Ô$ð ÝÐ9Ð9°SÐ9Ñ9Ô9Ñ9Ô9��à�Øð Ý*Ð*ØAGÀÀÈÈÈÐMñô ð ðð r   r   c                 ó‚   — t                                | ||¦  «        }t          |¦  «                             |¦  «         |S r2   )Ú_CommandÚreinitialize_commandrN   rO   )r%   ÚcommandÚreinit_subcommandsrP   Úcmds        r   ri   zCommand.reinitialize_commandÜ   s9   € Ý×+Ò+¨D°'Ð;MÑNÔNˆÝˆS‰	Œ	×Ò˜ÑÔÐØˆ
r   r2   )r   )
r3   r4   r5   r6   Úcommand_consumes_argumentsr"   r[   rf   ri   r7   r8   s   @r   r   r   u   s‚   ø€ € € € € ð4ð 4ðl "'Ððð ð ð ð ð	ð 	ð 	ð 	ðð ð ð6ð ð ð ð ð ð ð r   r   c                 ó€   — d„ t          j        | d¬¦  «        D ¦   «         }t          t           j        j        |¦  «        S )z%
    Find all files under 'path'
    c              3   óh   K  — | ]-\  }}}|D ]$}t           j                             ||¦  «        V — Œ%Œ.d S r2   )ÚosÚpathÚjoin)r   ÚbaseÚdirsÚfilesÚfiles        r   r_   z#_find_all_simple.<locals>.<genexpr>æ   sc   è è € ð ð áˆD�$˜Øðð ð õ 	Œ�Š�T˜4Ñ Ô ðð ð ð ð ð ð r   T)Úfollowlinks)rp   ÚwalkÚfilterrq   Úisfile)rq   Úresultss     r   Ú_find_all_simpler|   â   sE   € ðð å!#¤¨¸4Ð!@Ñ!@Ô!@ðñ ô €Gõ
 •"”'”. 'Ñ*Ô*Ð*r   c                 óÈ   — t          | ¦  «        }| t          j        k    r5t          j        t          j        j        | ¬¦  «        }t          ||¦  «        }t          |¦  «        S )zŒ
    Find all files under 'dir' and return the list of full filenames.
    Unless dir is '.', return full filenames with dir prepended.
    )Ústart)	r|   rp   ÚcurdirÚ	functoolsÚpartialrq   ÚrelpathÚmaprc   )Údirru   Úmake_rels      r   Úfindallr†   î   sR   € õ
 ˜SÑ!Ô!€EØ
�bŒiÒÐÝÔ$¥R¤W¤_¸CÐ@Ñ@Ô@ˆÝ�H˜eÑ$Ô$ˆÝ�‰;Œ;Ðr   c                 óv   — ddl m} d}t          j         ||¦  «        t          ¦  «         t          | ¦  «        S )Nr   )ÚcleandoczÓ
    The function `convert_path` is considered internal and not part of the public API.
    Its direct usage by 3rd-party packages is considered deprecated and the function
    may be removed in the future.
    )Úinspectrˆ   ÚwarningsÚwarnr   Ú_convert_path)Úpathnamerˆ   rI   s      r   r   r   ú   sF   € à Ð Ð Ð Ð Ð ð€Cõ
 „M�(�(˜3‘-”-Õ!=Ñ>Ô>Ð>Ý˜Ñ"Ô"Ð"r   c                   ó   — e Zd ZdZdS )Úsicz;Treat this string as-is (https://en.wikipedia.org/wiki/Sic)N)r3   r4   r5   r6   r   r   r   r�   r�     s   € € € € € ØEÐEÐEÐEr   r�   )3r6   r€   rp   ra   rŠ   Ú_distutils_hack.overrideÚ_distutils_hackÚdistutils.corer;   Údistutils.errorsr   Údistutils.utilr   rŒ   Ú_deprecation_warningr   Úsetuptools.versionÚ
setuptoolsÚsetuptools.extensionr   Úsetuptools.distr   Úsetuptools.dependsr	   Úsetuptools.discoveryr
   r   Ú r   r   Ú__all__ÚversionÚ__version__Úbootstrap_install_fromÚfindr   r   r@   r>   r   r<   Úget_unpatchedr   rh   r|   r   r†   ÚwrapsrV   r�   Ú	patch_allr   r   r   ú<module>r¥      s]  ðØ FÐ Fà Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø €€€à Ð Ð Ð à Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8à >Ð >Ð >Ð >Ð >Ð >à Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð	ð 	ð 	€ð Ô Ô,€àÐ ð Ô"€Ø-Ô2Ð ð# ð # ð # ðLð ð ð*)ð )ð )ð ”Ô$Ô,€„ð  ˆ6Ô 	¤Ô 6Ñ7Ô7€ðjð jð jð jð jˆhñ jô jð jðZ	+ð 	+ð 	+ð ”	ð 	ð 	ð 	ð 	ð €„�ÑÔð	#ð 	#ñ  Ôð	#ðFð Fð Fð Fð Fˆ#ñ Fô Fð Fð
 €Ô Ñ Ô Ð Ð Ð r   