
    YHh,#              	      n   d Z ddlm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mZmZ ej                  j                  ej                  j!                  ej                  j#                  ej                  j#                  e            dd      xZej                  vegz         ej(                  j+                  d	d       ddlZd
dlmZmZ d
dlmZ d
dlmZmZ d
dl m!Z! d
dl"m#Z# d
dl$m%Z% d
dl&m'Z' ddl(Z)g dZ* edd      Z+dZ,ejZ                  Z.ejZ                  Z/d Z0d dZ1d Z2e)jf                  jd                  j                   e2_         erddl(m4Z5 n& ejl                  e)jf                  jh                        Z5 G d de5      Z4d Z7ejp                  fdZ9 G d de:      Z; ejx                          y)!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)setupr   Commandr   r   r   find_packagesfind_namespace_packages	_CommandT_Command)boundc                     G d dt         j                  j                        } ||       }|j                  d       |j                  rt        |       y y )Nc                  6     e Zd ZdZd 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}t        |      t        |      z  D ci c]  }|||   
 }}t        | 	  |       | j                  j	                          y c c}w )N)dependency_linkssetup_requires)setsuper__init__set_defaults_disable)selfattrs_inclkfiltered	__class__s        L/var/www/html/planif/env/lib/python3.12/site-packages/setuptools/__init__.pyr%   z=_install_setup_requires.<locals>.MinimalDistribution.__init__=   sU    8E-0Z#e*-DE58EHEGX&&&( Fs   Ac                X    	 t         |   |      \  }}|dfS # t        $ r |dfcY S w xY w)zAIgnore ``pyproject.toml``, they are not related to setup_requires )r$    _split_standard_project_metadata	Exception)r(   	filenamescfg_tomlr-   s       r.   _get_project_config_fileszN_install_setup_requires.<locals>.MinimalDistribution._get_project_config_filesD   sA    %"WEiP
U 7N  % "}$%s    ))c                     y)zl
            Disable finalize_options to avoid building the working set.
            Ref #2158.
            Nr0   r(   s    r.   finalize_optionszE_install_setup_requires.<locals>.MinimalDistribution.finalize_optionsL   s        )r)   zMapping[str, object]returnNoneN)__name__
__module____qualname____doc__r%   r6   r9   __classcell__r-   s   @r.   MinimalDistributionr   7   s    	
	)		r:   rD   T)ignore_option_errors)	distutilscorer   parse_config_filesr"   _fetch_build_eggs)r)   rD   dists      r.   _install_setup_requiresrK   4   sM    inn99 6 u%D 	6$ r:   c                    	 | j                  | j                         y # t        $ rS}d}d|j                  j                  v r3t        |d      r|j                  |        | j                  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"   r2   r-   r>   hasattrrN   announce)rJ   exmsgs      r.   rI   rI   Z   sz    d112  r||444r:&C  	 3%rl+s    	A:AA55A:c                 ~    t        j                          t        |        t        j                  j
                  di | S )Nr0   )r   	configurerK   rF   rG   r   )r)   s    r.   r   r   o   s.    E">>(%((r:   )r   c                       e Zd ZU dZdZded<   d fdZe	 d	 	 	 	 	 dd       Ze	 d	 	 	 	 	 dd       Z	 d	 	 	 	 	 ddZe	dd	       Z
e	dd
       Ze	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:
    :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         |   |       t        |       j                  |       y)zj
        Construct the command for dist, updating
        vars(self) with any keyword parameters.
        N)r$   r%   varsupdate)r(   rJ   kwr-   s      r.   r%   zCommand.__init__   s$    
 	T
"r:   c                     y r=   r0   r(   commandreinit_subcommandsr\   s       r.   reinitialize_commandzCommand.reinitialize_command   s     r:   c                     y r=   r0   r^   s       r.   ra   zCommand.reinitialize_command   s     r:   c                h    t        j                  | ||      }t        |      j                  |       |S r=   )r   ra   rZ   r[   )r(   r_   r`   r\   cmds        r.   ra   zCommand.reinitialize_command   s0     ++D';MNS	
r:   c                    t         )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.
        NotImplementedErrorr8   s    r.   initialize_optionszCommand.initialize_options   
     "!r:   c                    t         )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``).
        rf   r8   s    r.   r9   zCommand.finalize_options   ri   r:   c                    t         )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).
        rf   r8   s    r.   runzCommand.run   ri   r:   )rJ   r   r;   r<   )F)r_   strr`   boolr;   r   )r_   r   r`   rn   r;   r   )r_   zstr | _Commandr`   rn   r;   r   )r;   r<   )r>   r?   r@   rA   command_consumes_arguments__annotations__r%   r   ra   r   rh   r9   rl   rB   rC   s   @r.   r   r      s    #J "' 7<04	  =B 6:	  CH%;?	 " " " " " "r:   r   c                    d t        j                  | d      D        }t        t         j                  j                  |      S )z%
    Find all files under 'path'
    c              3  r   K   | ]/  \  }}}|D ]$  }t         j                  j                  ||       & 1 y wr=   )ospathjoin).0basedirsfilesfiles        r.   	<genexpr>z#_find_all_simple.<locals>.<genexpr>   sB      D$  	T4  s   57T)followlinks)rs   walkfilterrt   isfile)rt   resultss     r.   _find_all_simpler      s3    !#4!@G
 "''..'**r:   c                    t        |       }| t        j                  k(  r;t        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   rs   curdir	functoolspartialrt   relpathmaplist)dirry   make_rels      r.   findallr      sJ    
 S!E
bii$$RWW__C@He$;r:   c                      e Zd ZdZy)sicz;Treat this string as-is (https://en.wikipedia.org/wiki/Sic)N)r>   r?   r@   rA   r0   r:   r.   r   r      s    Er:   r   )rJ   r   )=rA   
__future__r   r   rs   sysabcr   collections.abcr   typingr   r   r   rt   extendru   dirname__file__vendor_pathmodulespop_distutils_hack.override_distutils_hack r   r   dependsr   	discoveryr   r   rJ   r   	extensionr   versionr   warningsr   distutils.corerF   __all__r   bootstrap_install_fromfindr   r   rK   rI   r   rG   r   r   get_unpatchedr   r   r   rm   r   	patch_allr0   r:   r.   <module>r      s|   F #  	 
  # 3 3 bggoobggooh>W.XZfhq!rr+{~  |D  |D  D  IT  HU  U  V T "    9    / 2 	 Kz2	 ""-22 # L*) $$,,2#v##INN$:$:;HY"h Y"x	+ 		 	F# F
    r:   