
    ]f}:                    ^   U d Z ddlmZ ddlZddl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mZmZmZmZmZ d
dlmZ d
dlmZ d
dlmZ erddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$  ei           Z%de&d<   ee'ee'e'f         f         Z(de&d<   edeegdf         Z)de&d<   ee'e)f         Z*de&d<    ej+        e,          Z-ddZ.dd!Z/dd"Z0dd$Z1dd'Z2dd+Z3d,d-d.d/Z4dd2Z5dd4Z6dd5Z7dd9Z8dd:Z9dd;Z:dd=Z;dd>Z<dd?Z=ddAZ>e%fddDZ?ddHZ@ddJZAddNZBddPZCddRZDddSZEdT ZFdU ZGe6e7 ee8dVW           ee8dXW          e9e;e<e:dYZHdZe&d[<   d\d]iZId^d_iZJh d`ZKi dI eFda          db eFdc          dd eFde          df eFdg          dh eGdidj          dk eFdl          dm eGdndo          dp eGdqdr          ds eFdt          du eFdv          dw eFdx          dyeCd]eDdzeEd{ eFd|          d} eFd~          ZLi g g g g i i i i g i dZMde&d<    G d de          ZNdS )ak  Translation layer between pyproject config and setuptools distribution and
metadata objects.

The distribution and metadata objects are modeled after (an old version of)
core metadata, therefore configs in the format specified for ``pyproject.toml``
need to be processed before being applied.

**PRIVATE MODULE**: API reserved for setuptools internal usage only.
    )annotationsN)Address)partialreduce)cleandoc)chain)MappingProxyType)TYPE_CHECKINGAnyCallableDictMappingUnion   )StrPath)RemovedConfigError)SetuptoolsWarning)	TypeAliasmetadataDistribution)_OptionsListr   EMPTYr   _ProjectReadmeValuer   
_CorrespFn_Correspondencedistconfigdictfilenamer   returnc                   |s| S t           j                            |          pd}t          | ||           t	          | ||           t          j                    }t          j        |           	 |                                  |                                  t          j        |           n# t          j        |           w xY w| S )z=Apply configuration dict read with :func:`read_configuration`.)	ospathdirname_apply_project_table_apply_tool_tablegetcwdchdir_finalize_requires_finalize_license_files)r   r   r!   root_dircurrent_directorys        c/var/www/html/software/conda/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr1   *   s      wx((/CHvx000dFH---	HX$!!!$$&&&
"####"####Ks   0(B- -Cr.   c                   |                     di                                           }|sd S t          | |           t          |           |                                D ]]\  }}t          |          }t                               ||          }t          |          r || ||           Lt          | ||           ^d S )Nproject)	getcopy_handle_missing_dynamic_unify_entry_pointsitemsjson_compatible_keyPYPROJECT_CORRESPONDENCEcallable_set_config)r   r   r.   project_tablefieldvaluenorm_keycorresps           r0   r(   r(   @   s    JJy"--2244M D-000&&&%++-- . .u&u--*..xBBG 	.GD%****gu----. .    c                   |                     di                                di           }|sd S |                                D ]\  }}t          |          }|t          v rQt	          t          |                   }d| d}t          d                    t	          |          |g                    t                               ||          }t          | ||           t          || |           d S )Ntool
setuptoolsz,
            The parameter `tool.setuptools.zZ` was long deprecated
            and has been removed from `pyproject.toml`.
            
)
r4   r8   r9   TOOL_TABLE_REMOVALSr   r   joinTOOL_TABLE_RENAMESr<   _copy_command_options)	r   r   r!   
tool_tabler>   r?   r@   
suggestionmsgs	            r0   r)   r)   Q   s    FB''++L"==J "((** + +u&u--***!"5h"?@@J,1  C %TYYz/J%K%KLLL%))(H==D(E****&$11111rB   r=   c                &   t          |                    dg                     }t                                          D ]S\  }}||v sJ||v sF ||           }|r9t                              ||           t                              |          ||<   TdS )zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamicr>   r?   N)setr4   _PREVIOUSLY_DEFINEDr8   _MissingDynamicemit_RESET_PREVIOUSLY_DEFINED)r   r=   rO   r>   getterr?   s         r0   r6   r6   g   s    -##Ir2233G,2244 L Lv&&%7*:*:F4LLE L$$5$>>>'@'D'DU'K'Ke$L LrB   keystrc                R    |                                                      dd          S )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rW   s    r0   r9   r9   r   s     99;;sC(((rB   r>   r?   r   c                    t          | j        d| d           }|r ||           d S t          | j        |          s	|t          v rt	          | j        ||           d S t	          | ||           d S )Nset_)getattrr   hasattrSETUPTOOLS_PATCHESsetattr)r   r>   r?   setters       r0   r<   r<   w   s    T]N5NND99F $u		&	& $%3E*E*Eue,,,,,eU#####rB   ztext/markdownz
text/x-rstz
text/plain)z.mdz.rstz.txtfile
str | Nonec                @   t           j                            |                                           \  }}|sd S |t          v rt          |         S d                    d t                                          D                       }d| d}t          d|  d|           )N, c              3  ,   K   | ]\  }}| d | dV  dS )z ()N .0kvs      r0   	<genexpr>z&_guess_content_type.<locals>.<genexpr>   s2      FFtq!llalllFFFFFFrB   z3only the following file extensions are recognized: r$   zUndefined content type for )r%   r&   splitextr\   _CONTENT_TYPESrH   r8   
ValueError)re   r[   extvalidrM   s        r0   _guess_content_typerv      s    Wdjjll++FAs t
nc""IIFF~/C/C/E/EFFFFFE
H
H
H
HC
@4@@3@@
A
AArB   valc                   ddl m} t          |t                    r(|}|                    ||          }t          |          }nJ|                    d          pd}|                    d          p|                    ||          }|d         }t          | d|           |rt          | d|           |r| j        	                    |           d S d S )	Nr   expandre   rk   textzcontent-typelong_descriptionlong_description_content_type)
setuptools.configrz   
isinstancerX   
read_filesrv   r4   r<   _referenced_filesadd)r   rw   r.   rz   re   r{   ctypes          r0   _long_descriptionr      s    (((((( #s $  x00#D))wwv$"wwvC&"3"3D("C"CN#($/// BD95AAA )""4((((() )rB   c                    ddl m} d|v rNt          | d|                    |d         g|                     | j                            |d                    d S t          | d|d                    d S )Nr   ry   re   licenser{   )r~   rz   r<   r   r   r   )r   rw   r.   rz   s       r0   _licenser      s    ((((((}}D)V%6%6F}h%O%OPPP""3v;/////D)S[11111rB   
list[dict]	_root_dirkindc                   g }g }|D ]}d|vr|                     |d                    "d|vr|                     |d                    Bt          |d         |d                   }|                     t          |                     |r$t          | |d                    |                     |r)t          | | dd                    |                     d S d S )Nnameemail)display_name	addr_specrh   _email)appendr   rX   r<   rH   )r   rw   r   r   r>   email_fieldpersonaddrs           r0   _peopler      s   EK * *vg////F""LL((((v&/RRRDs4yy)))) 2D$		% 0 0111 CDT///499[+A+ABBBBBC CrB   c                (    t          | d|           d S )Nproject_urls)r<   )r   rw   r   s      r0   _project_urlsr      s    nc*****rB   c                F    ddl m} t          | d ||                     d S )Nr   )SpecifierSetpython_requires)packaging.specifiersr   r<   )r   rw   r   r   s       r0   _python_requiresr      s7    111111'c):):;;;;;rB   listc                b    t          | dg           rd}t          j        |           || _        d S )Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))r`   r   rT   r   )r   rw   r   rM   s       r0   _dependenciesr      s;    t',, $Qs###DrB   c                B    t          | dd           pi }i ||| _        d S )Nextras_require)r`   r   )r   rw   r   existings       r0   _optional_dependenciesr      s1    t-t44:H-X--DrB   c                b   | }|                     d|                     di                     }ddd}t          |                                          D ]6\  }}t          |          }||v r|                     |          |||         <   7|r#d |                                D             |d<   d S d S )Nentry-pointsentry_pointsconsole_scriptsgui_scripts)scriptsr   c                V    i | ]&\  }}||d  |                                 D             'S )c                "    g | ]\  }}| d | S )z = rk   rl   s      r0   
<listcomp>z2_unify_entry_points.<locals>.<dictcomp>.<listcomp>   s&    :::DAqa<<A<<:::rB   )r8   )rm   r   groups      r0   
<dictcomp>z'_unify_entry_points.<locals>.<dictcomp>   sK     #
 #
 #
e#
::EKKMM:::#
 #
 #
rB   )popr   r8   r9   )r=   r3   r   renamingrW   r?   r@   s          r0   r7   r7      s    G;;~w{{>2/N/NOOL,]KKH7==??++ @ @
U&s++x/6{{3/?/?L(+, 
#
 #
+1133#
 #
 #

 
rB   	pyprojectc           	        |                      di           }|                     di                                di           }t          |          }|j        }|                      di                                di                                           D ]\  }}t	          |          }|                     |t                                }	|                    |i            |                                D ]S\  }
}t	          |
          }
t          |          |f||         |
<   |
|	vr!t          	                    d| d|
 d           Td S )NrD   rE   cmdclass	distutilszCommand option r$   z is not defined)
r4   _valid_command_optionscommand_optionsr8   r9   rQ   
setdefaultrX   _loggerwarning)r   r   r!   rK   r   valid_optionscmd_optscmdr   ru   rW   r?   s               r0   rJ   rJ      sQ   vr**J~~lB//33JCCH*844M#H }}VR0044["EEKKMM 
N 
NV!#&&!!#suu--C$$$ ,,.. 	N 	NJC%c**C"%h--!7HSM#%  L# L L L L LMMM	N	
N 
NrB   r   dict[str, set[str]]c           	     |   ddl m} ddlm} dt	          |j                  i} |j        d          }d |D             }d	 |D             }t          ||                                           D ]M\  }}|	                    |t                                }	|	t	          t          |d
g                     z  }	|	||<   N|S )Nr   r   r   r   globalzdistutils.commands)r   c              3  4   K   | ]}t          |          V  d S N)_load_eprm   eps     r0   rp   z)_valid_command_options.<locals>.<genexpr>  s(      HHB8B<<HHHHHHrB   c              3     K   | ]}||V  	d S r   rk   r   s     r0   rp   z)_valid_command_options.<locals>.<genexpr>  s'      ;;2;B;;;;;;rB   user_options)setuptools.distr   
_importlibr   _normalise_cmd_optionsglobal_optionsr   r   r8   r4   rQ   r`   )
r   r   r   r   unloaded_entry_pointsloaded_entry_pointsr   r   	cmd_classoptss
             r0   r   r     s    ,,,,,,%%%%%%5l6QRRSM1H18LMMMHH2GHHH;;!4;;;Lhnn.>.>?? " "Y  cee,,,WYPR-S-STTT!crB   r   metadata.EntryPointtuple[str, type] | Nonec                   | j                             d          rd S 	 | j        |                                 fS # t          $ r@}|j        j         d| j         }t                              | d|            Y d }~d S d }~ww xY w)Nzwheel.bdist_wheelz" while trying to load entry-point z: )	r?   
startswithr   load	Exception	__class____name__r   r   )r   exrM   s      r0   r   r     s    	x.//  t##   &SS"'SS3"'''ttttts   9 
B5A>>Br   c                F    t          |                               d          S )Nz_=)r9   strip)r   s    r0   _normalise_cmd_option_keyr   %  s    t$$**4000rB   descr   set[str]c                    d | D             S )Nc                8    h | ]}t          |d                    S )r   )r   )rm   fancy_options     r0   	<setcomp>z)_normalise_cmd_options.<locals>.<setcomp>*  s%    PPP<%l1o66PPPrB   rk   )r   s    r0   r   r   )  s    PP4PPPPrB   dict[str, list]c                n    dt          | dd           pi }fd|                                D             S )N)r   r   r   c                $    i | ]\  }}|v	||S rk   rk   )rm   rn   ro   ignores      r0   r   z-_get_previous_entrypoints.<locals>.<dictcomp>0  s$    >>>TQavooAqooorB   )r`   r8   )r   r?   r   s     @r0   _get_previous_entrypointsr   -  s@    /FD.$//52E>>>>U[[]]>>>>rB   list | Nonec                R    t          | dd           pi }|                    d          S )Nr   r   r`   r4   r   r?   s     r0   _get_previous_scriptsr   3  s+    D.$//52E99&'''rB   c                R    t          | dd           pi }|                    d          S )Nr   r   r   r   s     r0   _get_previous_gui_scriptsr   8  s*    D.$//52E99]###rB   c                V    t          t          d |                     d                    S )a8  
    Similar to ``operator.attrgetter`` but returns None if ``attr`` is not found
    >>> from types import SimpleNamespace
    >>> obj = SimpleNamespace(a=42, b=SimpleNamespace(c=13))
    >>> _attrgetter("a")(obj)
    42
    >>> _attrgetter("b.c")(obj)
    13
    >>> _attrgetter("d")(obj) is None
    True
    c                $    t          | |d           S r   )r`   )accxs     r0   <lambda>z_attrgetter.<locals>.<lambda>I  s    '#q$*?*? rB   r$   )r   r   split)attrs    r0   _attrgetterr   =  s$     6??CQQQrB   c                       fd}|S )aL  
    Return the first "truth-y" attribute or None
    >>> from types import SimpleNamespace
    >>> obj = SimpleNamespace(a=42, b=SimpleNamespace(c=13))
    >>> _some_attrgetter("d", "a", "b.c")(obj)
    42
    >>> _some_attrgetter("d", "e", "b.c", "a")(obj)
    13
    >>> _some_attrgetter("d", "e", "f")(obj) is None
    True
    c                V      fdD             }t          d |D             d           S )Nc              3  H   K   | ]} t          |                    V  d S r   )r   )rm   iobjs     r0   rp   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>Z  s3      55!.+a..%%555555rB   c              3     K   | ]}||V  	d S r   rk   )rm   r   s     r0   rp   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>[  s"      881!-Q----88rB   )next)r   valuesr8   s   ` r0   _acessorz"_some_attrgetter.<locals>._acessorY  s<    5555u55588888$???rB   rk   )r8   r   s   ` r0   _some_attrgetterr   L  s(    @ @ @ @ @ OrB   author)r   
maintainer)readmer   authorsmaintainersurlsdependenciesoptional_dependenciesrequires_pythonzdict[str, _Correspondence]r:   script_filesr   namespace_packagesz
        Please migrate to implicit native namespaces instead.
        See https://packaging.python.org/en/latest/guides/packaging-namespace-packages/.
        >   license_filer   license_filesprovides_extrasr}   zmetadata.nameversionzmetadata.versiondescriptionzmetadata.descriptionr  zmetadata.long_descriptionzrequires-pythonr   zmetadata.python_requiresr   zmetadata.licenser  zmetadata.authorzmetadata.author_emailr  zmetadata.maintainerzmetadata.maintainer_emailkeywordszmetadata.keywordsclassifierszmetadata.classifiersr  zmetadata.project_urlsr   gui-scriptsr  r   optional-dependenciesr   )r   r  r  r  r  r  r   r   r  r  r  rU   c                  .    e Zd ZdZdZed
d            Zd	S )rS   z9`{field}` defined outside of `pyproject.toml` is ignored.a%  
    The following seems to be defined outside of `pyproject.toml`:

    `{field} = {value!r}`

    According to the spec (see the link below), however, setuptools CANNOT
    consider this value unless `{field}` is listed as `dynamic`.

    https://packaging.python.org/en/latest/specifications/pyproject-toml/#declaring-project-metadata-the-project-table

    To prevent this problem, you can list `{field}` under `dynamic` or alternatively
    remove the `[project]` table from your file and rely entirely on other means of
    configuration.
    r>   rX   r?   r   r"   c                :    | j                             ||          S )NrP   )_DETAILSformat)clsr>   r?   s      r0   detailsz_MissingDynamic.details  s    |""e"<<<rB   N)r>   rX   r?   r   r"   rX   )r   
__module____qualname___SUMMARYr  classmethodr  rk   rB   r0   rS   rS     s@        JHH$ = = = [= = =rB   rS   )r   r   r   r    r!   r   r"   r   )r   r   r   r    r.   r   )r   r   r   r    r!   r   )r   r   r=   r    )rW   rX   r"   rX   )r   r   r>   rX   r?   r   )re   rX   r"   rf   )r   r   rw   r   r.   r   )r   r   rw   r    r.   r   )r   r   rw   r   r   r   r   rX   )r   r   rw   r    )r   r   rw   rX   )r   r   rw   r   )r=   r    )r   r    r   r   r!   r   )r   r   r"   r   )r   r   r"   r   )r   rX   r"   rX   )r   r   r"   r   )r   r   r"   r   )r   r   r"   r   )O__doc__
__future__r   loggingr%   email.headerregistryr   	functoolsr   r   inspectr   	itertoolsr   typesr	   typingr
   r   r   r   r   r   _pathr   errorsr   warningsr   typing_extensionsr   setuptools._importlibr   r   r   distutils.distr   r   __annotations__rX   r   r   r   	getLoggerr   r   r1   r(   r)   r6   r9   r<   rr   rv   r   r   r   r   r   r   r   r7   rJ   r   r   r   r   r   r   r   r   r   r:   rI   rG   rb   rR   rU   rS   rk   rB   r0   <module>r0     se     # " " " " "  				 ( ( ( ( ( ( % % % % % % % %             " " " " " " E E E E E E E E E E E E E E E E       ' ' ' ' ' ' ( ( ( ( ( ( ,++++++......,,,,,,++++++!!"%% % % % %!&sDcN':!;  ; ; ; ; .#w!?!EF
 F F F F"3
?3 3 3 3 3
'
H
%
%   ,. . . ."2 2 2 2,L L L L) ) ) )
$ $ $ $  
B 
B 
B 
B) ) ) ),2 2 2 2C C C C$+ + + +< < < <       . . . .

 
 
 
(N N N N& 05     $   1 1 1 1Q Q Q Q? ? ? ?( ( ( (
$ $ $ $
R R R  *  wwX...77666!3'	8 	8  	 	 	 	 %i0      
KK(({{-.. ;;566 kk566	
 ''(9;UVV {{-..  13JKK ##$9;VWW /00 ;;566 KK/00 - $ , KK 233  [[)9::! . # #     "= = = = =' = = = = =rB   