
    ?[hV4                        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 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Z/de#de#fdZ0ddde#defdZ1dddd Z2d!e#dee#         fd"Z3ddd#e&de$fd$Z4ddd#e%de$fd%Z5ddd#ee%         d&e$d'e#fd(Z6ddd#e%fd)Z7ddd#e%fd*Z8ddd#e9f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Z@d7eee#ee#         e#f                  dee#         fd8ZAd9 ZBd: ZCe4e5 e	e6d;<           e	e6d=<          e7e:e;e8d>ZDee#e(f         e!d?<   d@dAiZEdBdCiZFh dDZG eBdE           eBdF           eBdG           eBdH           eCdIdJ           eBdK           eCdLdM           eCdNdO           eBdP           eBdQ           eBdR           eBdS           eCdTdU           eCdVdW          dXZH G dY dZeI          ZJd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)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        u/var/www/api.easyaligner.net/htdocs/venv_linux/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.   r2   r3   TOOL_TABLE_DEPRECATIONSwarningswarnr   TOOL_TABLE_RENAMESr6   _copy_command_options)	r   r   r   
tool_tabler8   r9   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<   r7   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_DEFINEDr2   _WouldIgnoreFieldmessagerA   rB   )r   r7   rI   r8   getterr9   rG   s          r*   r0   r0   ^   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)rO   s    r*   r3   r3   j   s     99;;sC(((r<   r8   r9   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   r8   r9   setters       r*   r6   r6   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    splitextrS   _CONTENT_TYPESjoinr2   
ValueError)r\   rR   extvalidrG   s        r*   _guess_content_typerm      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                 b   ddl m} t          |t                    r&|                    ||          }t          |          }nG|                    d          p)|                    |                    dg           |          }|d         }t          | d|           |rt          | d|           d S d S )Nr   expandtextr\   zcontent-typelong_descriptionlong_description_content_type)setuptools.configrq   
isinstancestr
read_filesrm   r.   r6   )r   rn   r(   rq   rr   ctypes         r*   _long_descriptionrz      s    ((((((#s $  h//#C((wwvR&"3"3CGGFB4G4G"R"RN#($/// BD95AAAAAB Br<   c                     ddl m} d|v r.t          | d|                    |d         g|                     d S t          | d|d                    d S )Nr   rp   r\   licenserr   )ru   rq   r6   rx   )r   rn   r(   rq   s       r*   _licenser}      sg    ((((((}}D)V%6%6F}h%O%OPPPPP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   rw   r6   ri   )r   rn   r~   r   r8   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)r6   )r   rn   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   r6   )r   rn   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))rW   rA   rB   r6   )r   rn   r~   rG   s       r*   _dependenciesr      sE    t',, Qc(#.....r<   c                 R    t          | di           }t          | di ||           d S )Nextras_require)rW   r6   )r   rn   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 = ra   rb   s      r*   
<listcomp>z2_unify_entry_points.<locals>.<dictcomp>.<listcomp>   s&    :::DAqa<<A<<:::r<   )r2   )rc   r   groups      r*   
<dictcomp>z'_unify_entry_points.<locals>.<dictcomp>   sE     #
 #
 #
e ::EKKMM:::#
 #
 #
r<   )poplistr2   r3   )r7   r-   r   renamingrO   r9   r:   s          r*   r1   r1      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_optionsr2   r3   rJ   
setdefaultrw   _loggerwarning)r   r   r   rE   r   valid_optionscmd_optscmdr   rl   rO   r9   s               r*   rD   rD      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rc   eps     r*   rf   z)_valid_command_options.<locals>.<genexpr>   s(      HHB8B<<HHHHHHr<   c              3      K   | ]}||V  	d S r   ra   r   s     r*   rf   z)_valid_command_options.<locals>.<genexpr>   s'      ;;2;B;;;;;;r<   user_options)
_importlibr   setuptools.distr   _normalise_cmd_optionsglobal_optionsr   r   r2   r.   rJ   rW   )
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   exrG   s      r*   r   r     s~    ##   &SS"'SS3"'''ttttts    
A'5A""A'r   c                 F    t          |                               d          S )Nz_=)r3   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   )rc   fancy_options     r*   	<setcomp>z)_normalise_cmd_options.<locals>.<setcomp>  s%    PPP<%l1o66PPPr<   ra   )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   )rW   )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   )rc   iobjs     r*   rf   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>/  s3      55!.+a..%%555555r<   c              3      K   | ]}||V  	d S r   ra   )rc   r   s     r*   rf   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>0  s"      881!-Q----88r<   )next)r   valuesr2   s   ` r*   _acessorz"_some_attrgetter.<locals>._acessor.  s<    5555u55588888$???r<   ra   )r2   r   s   ` r*   _some_attrgetterr   "  s(    @ @ @ @ @ Or<   author)r   
maintainer)readmer|   authorsmaintainersurlsdependenciesoptional_dependenciesrequires_pythonr4   script_filesr   namespace_packagesz5consider using implicit namespaces instead (PEP 420).>   license_filer   license_filesprovides_extrasrt   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 )rL   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)r8   r9   )inspectr   MESSAGEformat)clsr8   r9   r   s       r*   rM   z_WouldIgnoreField.messagev  s9    $$$$$$x**e*DDEEEr<   N)r   
__module____qualname____doc__r   classmethodrM   ra   r<   r*   rL   rL   Y  sA        QQG4 F F [F F Fr<   rL   )Kr  loggingr   rA   collections.abcr   email.headerregistryr   	functoolsr   r   	itertoolsr   typesr   typingr	   r
   r   r   r   r   r   r   r   r   setuptools._deprecation_warningr   setuptools._importlibr   r   r   r   __annotations__PathLikerw   _Pathdict
_DictOrStr
_CorrespFn_Correspondence	getLoggerr   r   r+   r"   r#   r0   r3   r6   rh   rm   rz   r}   r   r   r   r   r   r   r1   rD   r   r   r   r   r   r   r4   rC   r@   rY   rK   UserWarningrL   ra   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BN B Bu B B B B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<   