
    /h5                        U d 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
 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mZmZmZmZmZ dd	lmZ erdd
lmZ ddlm Z   ei           Z!ee"d<   eej#        e$f         Z%ee&e$f         Z'edee%gdf         Z(ee$e(f         Z) ej*        e+          Z,ddde&de%ddfdZ-ddde&de%fdZ.ddde&de%fdZ/ddde&fdZ0de$de$fdZ1ddde$defdZ2dddd Z3d!e$dee$         fd"Z4ddd#e'de%fd$Z5ddd#e&de%fd%Z6ddd#ee&         d&e%d'e$fd(Z7ddd#e&fd)Z8ddd#e&fd*Z9ddd#e:fd+Z;ddd#e&fd,Z<de&fd-Z=d.e&ddde%fd/Z>e!fd0edee$ee$         f         fd1Z?d2d3deee$ef                  fd4Z@d5e$de$fd6ZAd7eee$ee$         e$f                  dee$         fd8ZBd9 ZCd: ZDe5e6 e	e7d;<           e	e7d=<          e8e;e<e9d>ZEee$e)f         e"d?<   d@dAiZFdBdCiZGh dDZH eCdE           eCdF           eCdG           eCdH           eDdIdJ           eCdK           eDdLdM           eDdNdO           eCdP           eCdQ           eCdR           eCdS           eDdTdU           eDdVdW          dXZI G dY dZeJ          ZKd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.
    N)Mapping)Address)partialreduce)chain)MappingProxyType)TYPE_CHECKINGAnyCallableDictListOptionalSetTupleTypeUnioncast)SetuptoolsDeprecationWarningmetadataDistributionEMPTYr   distconfigfilename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        Y/var/www/html/venv/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr,   $   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           r+   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 ]x\  }}t          |          }|t          v r/t          |         }d| d| }t	          j        |t                     t                               ||          }t          | ||           yt          || |           d S )Ntool
setuptoolszThe parameter `z` is deprecated, )
r/   r3   r4   TOOL_TABLE_DEPRECATIONSwarningswarnr   TOOL_TABLE_RENAMESr7   _copy_command_options)	r   r   r   
tool_tabler9   r:   r;   
suggestionmsgs	            r+   r$   r$   K   s    FB''++L"==J "((** 	+ 	+u&u--...0:JKHKKzKKCM#;<<<%))(H==D(E****&$11111r=   r8   c                    t          |                    dg                     }t                                          D ]O\  }}||v sF||v sB ||           }|r5t                              ||          }t          j        |t                     PdS )zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamicN)setr/   _PREVIOUSLY_DEFINEDr3   _WouldIgnoreFieldmessagerB   rC   )r   r8   rJ   r9   getterr:   rH   s          r+   r1   r1   ^   s     -##Ir2233G,2244 6 6v&&%7*:*:F4LLE 6'//u==c#45556 6r=   keyc                 R    |                                                      dd          S )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rP   s    r+   r4   r4   j   s     99;;sC(((r=   r9   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   r9   r:   setters       r+   r7   r7   o   s    T]N5NND99F $u		&	& $%3E*E*Eue,,,,,eU#####r=   ztext/markdownz
text/x-rstz
text/plain)z.mdz.rstz.txtfilec                 @   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      r+   	<genexpr>z&_guess_content_type.<locals>.<genexpr>   s2      FFtq!llalllFFFFFFr=   z3only the following file extensions are recognized: r   zUndefined content type for )r    r!   splitextrT   _CONTENT_TYPESjoinr3   
ValueError)r]   rS   extvalidrH   s        r+   _guess_content_typern      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Ar=   valc                    ddl m} t          |t                    r(|}|                    ||          }t          |          }nJ|                    d          pg }|                    d          p|                    ||          }|d         }t          | d|           |rt          | d|           |r/| j        	                    t          t          |                     d S d S )Nr   expandr]   textzcontent-typelong_descriptionlong_description_content_type)setuptools.configrr   
isinstancestr
read_filesrn   r/   r7   _referenced_filesaddr   )r   ro   r)   rr   r]   rs   ctypes          r+   _long_descriptionr}      s    ((((((#s $!$  x00#C((wwv$"wwvC&"3"3D("C"CN#($/// BD95AAA 4""4T??333334 4r=   c                     ddl m} d|v rNt          | d|                    |d         g|                     | j                            |d                    d S t          | d|d                    d S )Nr   rq   r]   licensers   )rv   rr   r7   ry   rz   r{   )r   ro   r)   rr   s       r+   _licenser      s    ((((((}}D)V%6%6F}h%O%OPPP""3v;/////D)S[11111r=   	_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_specr_   _email)appendr   rx   r7   rj   )r   ro   r   r   r9   email_fieldpersonaddrs           r+   _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r=   c                 (    t          | d|           d S )Nproject_urls)r7   )r   ro   r   s      r+   _project_urlsr      s    nc*****r=   c                 F    ddl m} t          | d ||                     d S )Nr   )SpecifierSetpython_requires)&setuptools.extern.packaging.specifiersr   r7   )r   ro   r   r   s       r+   _python_requiresr      s7    CCCCCC'c):):;;;;;r=   c                 v    t          | dg           rd}t          j        |           t          | d|           d S )Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))rX   rB   rC   r7   )r   ro   r   rH   s       r+   _dependenciesr      sE    t',, Qc(#.....r=   c                 R    t          | di           }t          | di ||           d S )Nextras_require)rX   r7   )r   ro   r   existings       r+   _optional_dependenciesr      s8    t-r22H&(;8(;s(;<<<<<r=   c                 f   | }|                     d|                     di                     }ddd}t          |                                          D ]8\  }}t          |          }||v r |r|                     |          |||         <   9|r#d |                                D             |d<   d S d S )Nentry-pointsentry_pointsconsole_scriptsgui_scripts)scriptsr   c                 R    i | ]$\  }}|d  |                                 D             %S )c                 "    g | ]\  }}| d | S )z = rb   rc   s      r+   
<listcomp>z2_unify_entry_points.<locals>.<dictcomp>.<listcomp>   s&    :::DAqa<<A<<:::r=   )r3   )rd   r   groups      r+   
<dictcomp>z'_unify_entry_points.<locals>.<dictcomp>   sE     #
 #
 #
e ::EKKMM:::#
 #
 #
r=   )poplistr3   r4   )r8   r.   r   renamingrP   r:   r;   s          r+   r2   r2      s    G;;~w{{>2/N/NOOL,]KKH7==??++ @ @
U&s++xE/6{{3/?/?L(+, 
#
 #
+1133#
 #
 #

 
r=   	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 )Nr?   r@   cmdclass	distutilszCommand option r   z is not defined)
r/   _valid_command_optionscommand_optionsr3   r4   rK   
setdefaultrx   _loggerwarning)r   r   r   rF   r   valid_optionscmd_optscmdr   rm   rP   r:   s               r+   rE   rE      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r=   r   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 )N   r   r   r   globalzdistutils.commands)r   c              3   4   K   | ]}t          |          V  d S N)_load_eprd   eps     r+   rg   z)_valid_command_options.<locals>.<genexpr>   s(      HHB8B<<HHHHHHr=   c              3      K   | ]}||V  	d S r   rb   r   s     r+   rg   z)_valid_command_options.<locals>.<genexpr>   s'      ;;2;B;;;;;;r=   user_options)
_importlibr   setuptools.distr   _normalise_cmd_optionsglobal_optionsr   r   r3   r/   rK   rX   )
r   r   r   r   unloaded_entry_pointsloaded_entry_pointsr   r   	cmd_classoptss
             r+   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r=   r   zmetadata.EntryPointc                     	 | j         |                                 fS # t          $ r@}|j        j         d| j          }t
                              | d|            Y d }~d S d }~ww xY w)Nz" while trying to load entry-point z: )r   load	Exception	__class____name__r   r   )r   exrH   s      r+   r   r     s~    ##   &SS"'SS3"'''ttttts    
A'5A""A'r   c                 F    t          |                               d          S )Nz_=)r4   strip)r   s    r+   _normalise_cmd_option_keyr     s    t$$**4000r=   descc                     d | D             S )Nc                 8    h | ]}t          |d                    S )r   )r   )rd   fancy_options     r+   	<setcomp>z)_normalise_cmd_options.<locals>.<setcomp>  s%    PPP<%l1o66PPPr=   rb   )r   s    r+   r   r     s    PP4PPPPr=   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   )rX   )accxs     r+   <lambda>z_attrgetter.<locals>.<lambda>&  s    '#q$*?*? r=   r   )r   r   split)attrs    r+   _attrgetterr     s$     6??CQQQr=   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   )rd   iobjs     r+   rg   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>6  s3      55!.+a..%%555555r=   c              3      K   | ]}||V  	d S r   rb   )rd   r   s     r+   rg   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>7  s"      881!-Q----88r=   )next)r   valuesr3   s   ` r+   _acessorz"_some_attrgetter.<locals>._acessor5  s<    5555u55588888$???r=   rb   )r3   r   s   ` r+   _some_attrgetterr   )  s(    @ @ @ @ @ Or=   author)r   
maintainer)readmer   authorsmaintainersurlsdependenciesoptional_dependenciesrequires_pythonr5   script_filesr   namespace_packagesz5consider using implicit namespaces instead (PEP 420).>   license_filer   license_filesprovides_extrasru   zmetadata.namezmetadata.versionzmetadata.descriptionzmetadata.long_descriptionr   zmetadata.python_requireszmetadata.licensezmetadata.authorzmetadata.author_emailzmetadata.maintainerzmetadata.maintainer_emailzmetadata.keywordszmetadata.classifierszmetadata.project_urlsr   _orig_install_requiresr   _orig_extras_requirer   )r   versiondescriptionr   zrequires-pythonr   r   r   keywordsclassifiersr   r   r   zoptional-dependenciesc                   ,    e Zd ZdZdZed             ZdS )rM   zGInform users that ``pyproject.toml`` would overwrite previous metadata.a      {field!r} defined outside of `pyproject.toml` would be ignored.
    !!


    ##########################################################################
    # configuration would be ignored/result in error due to `pyproject.toml` #
    ##########################################################################

    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!r} is listed as `dynamic`.

    https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

    For the time being, `setuptools` will still consider the given value (as a
    **transitional** measure), but please note that future releases of setuptools will
    follow strictly the standard.

    To prevent this warning, you can list {field!r} under `dynamic` or alternatively
    remove the `[project]` table from your file and rely entirely on other means of
    configuration.
    

!!
    c                 X    ddl m}  || j                            ||                    S )Nr   )cleandoc)r9   r:   )inspectr   MESSAGEformat)clsr9   r:   r   s       r+   rN   z_WouldIgnoreField.message}  s9    $$$$$$x**e*DDEEEr=   N)r   
__module____qualname____doc__r  classmethodrN   rb   r=   r+   rM   rM   `  sA        QQG4 F F [F F Fr=   rM   )Lr  loggingr    rB   collections.abcr   email.headerregistryr   	functoolsr   r   	itertoolsr   typesr   typingr	   r
   r   r   r   r   r   r   r   r   r   setuptools._deprecation_warningr   setuptools._importlibr   r   r   r   __annotations__PathLikerx   _Pathdict
_DictOrStr
_CorrespFn_Correspondence	getLoggerr   r   r,   r#   r$   r1   r4   r7   ri   rn   r}   r   r   r   r   r   r   r   r2   rE   r   r   r   r   r   r   r5   rD   rA   rZ   rL   UserWarningrM   rb   r=   r+   <module>r     s      				  # # # # # # ( ( ( ( ( ( % % % % % % % %       " " " " " "' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' I H H H H H -......,,,,,,!!"%%w % % %bk349
~sE2D89
Z(
'
H
%
%   .    ,.~ .t .u . . . ."2N 2D 2E 2 2 2 2&	6. 	6 	6 	6 	6 	6)S )S ) ) ) )
$n $S $ $ $ $ $  
Bc 
Bhsm 
B 
B 
B 
B4N 4 4u 4 4 4 4*2> 2 2 2 2 2 2C. CtDz Ce C3 C C C C$+ +T + + + +<> < < < < </ /T / / / /= =d = = = =

t 
 
 
 
 NT N N5 N N N N& 05  W c3s8m9L    "& 8E#t)4D+E    1C 1C 1 1 1 1QeC#,C&D!E Q#c( Q Q Q QR R R  &  wwX...77666!3'	8 	8 $sO34 	 	 	 %i0 Q J J J  K(({-..;566k566''(9;UVV{-.. 13JKK##$9;VWW/00;566K/00K//$$%=?QRR--.DFVWW  $ F  F  F  F  F  F  F  F  F  Fr=   