
    i5                     0   U d 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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d0Z>e!fd1edee$ee$         f         fd2Z?d3d4deee$ef                  fd5Z@d6e$de$fd7ZAd8eee$ee$         e$f                  dee$         fd9ZBdddee$e:f         fd:ZCd; ZDd< ZEe5e6 ee7d=>           ee7d?>          e8e;e<e9d@ZFee$e)f         e"dA<   dBdCiZGdDdEdFdGifiZHh dHZI eDdI           eDdJ           eDdK           eDdL           eEdMdN           eDdO           eEdPdQ           eEdRdS           eDdT           eDdU           eDdV          eC eEdWdX           eEdYdZ          d[ZJ G d\ d]e          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   )SetuptoolsWarning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        c/root/projects/qq-shell/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%   9   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          |          }|t          v r+t          |         \  }}d| d| }	t	          j        d|	fi | t                               ||          }t          | ||           ut          || |           d S )Ntool
setuptoolszThe parameter `z` is deprecated, zDeprecated config)	r1   r5   r6   TOOL_TABLE_DEPRECATIONSr   emitTOOL_TABLE_RENAMESr9   _copy_command_options)
r   r   r   
tool_tabler;   r<   r=   
suggestionkwargsmsgs
             r-   r&   r&   J   s    FB''++L"==J "((** + +u&u--...!8!BJKHKKzKKC(-#S ,2   &))(H==D(E****&$11111r?   r:   c                     t          |                    dg                     }t                                          D ]6\  }}||v s-||v s) ||           }|rt                              ||           7dS )zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamic)r;   r<   N)setr1   _PREVIOUSLY_DEFINEDr5   _WouldIgnoreFieldrD   )r   r:   rL   r;   getterr<   s         r-   r3   r3   _   s     -##Ir2233G,2244 A Av&&%7*:*:F4LLE A!&&U%&@@@	A Ar?   keyc                 R    |                                                      dd          S )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rQ   s    r-   r6   r6   j   s     99;;sC(((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       r-   r9   r9   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#   splitextrU   _CONTENT_TYPESjoinr5   
ValueError)r^   rT   extvalidrJ   s        r-   _guess_content_typero      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.configrs   
isinstancestr
read_filesro   r1   r9   _referenced_filesaddr   )r   rp   r+   rs   r^   rt   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   rr   r^   licensert   )rw   rs   r9   rz   r{   r|   )r   rp   r+   rs   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   ry   r9   rk   )r   rp   r   r   r;   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)r9   )r   rp   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   r9   )r   rp   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))rY   r   rD   r9   )r   rp   r   rJ   s       r-   _dependenciesr      sF    t',, $Qs###(#.....r?   c                 R    t          | di           }t          | di ||           d S )Nextras_require)rY   r9   )r   rp   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 = rc   rd   s      r-   
<listcomp>z2_unify_entry_points.<locals>.<dictcomp>.<listcomp>   s&    :::DAqa<<A<<:::r?   )r5   )re   r   groups      r-   
<dictcomp>z'_unify_entry_points.<locals>.<dictcomp>   sE     #
 #
 #
e ::EKKMM:::#
 #
 #
r?   )poplistr5   r6   )r:   r0   r   renamingrQ   r<   r=   s          r-   r4   r4      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 )NrA   rB   cmdclass	distutilszCommand option r!   z is not defined)
r1   _valid_command_optionscommand_optionsr5   r6   rM   
setdefaultry   _loggerwarning)r   r   r   rG   r   valid_optionscmd_optscmdr   rn   rQ   r<   s               r-   rF   rF      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 )Nr   r   r   r   globalzdistutils.commands)r   c              3   4   K   | ]}t          |          V  d S N)_load_epre   eps     r-   rh   z)_valid_command_options.<locals>.<genexpr>   s(      HHB8B<<HHHHHHr?   c              3      K   | ]}||V  	d S r   rc   r   s     r-   rh   z)_valid_command_options.<locals>.<genexpr>   s'      ;;2;B;;;;;;r?   user_options)
_importlibr   setuptools.distr   _normalise_cmd_optionsglobal_optionsr   r   r5   r1   rM   rY   )
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   exrJ   s      r-   r   r     s~    ##   &SS"'SS3"'''ttttts    
A'5A""A'r   c                 F    t          |                               d          S )Nz_=)r6   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   )re   fancy_options     r-   	<setcomp>z)_normalise_cmd_options.<locals>.<setcomp>  s%    PPP<%l1o66PPPr?   rc   )r   s    r-   r   r     s    PP4PPPPr?   c                 n    dt          | dd           pi }fd|                                D             S )N)r   r   r   c                 $    i | ]\  }}|v	||S rc   rc   )re   rf   rg   ignores      r-   r   z-_get_previous_entrypoints.<locals>.<dictcomp>  s$    >>>TQavooAqooor?   )rY   r5   )r   r<   r   s     @r-   _get_previous_entrypointsr     s@    /FD.$//52E>>>>U[[]]>>>>r?   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   )rY   )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   )re   iobjs     r-   rh   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr><  s3      55!.+a..%%555555r?   c              3      K   | ]}||V  	d S r   rc   )re   r   s     r-   rh   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>=  s"      881!-Q----88r?   )next)r   valuesr5   s   ` r-   _acessorz"_some_attrgetter.<locals>._acessor;  s<    5555u55588888$???r?   rc   )r5   r   s   ` r-   _some_attrgetterr   /  s(    @ @ @ @ @ Or?   author)r   
maintainer)readmer   authorsmaintainersurlsdependenciesoptional_dependenciesrequires_pythonr7   script_filesr   namespace_packagesz5consider using implicit namespaces instead (PEP 420).due_datei  
      >   license_filer   license_filesprovides_extrasrv   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_urls_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dZdS )rO   z?`{field}` defined outside of `pyproject.toml` would be ignored.a  
    ##########################################################################
    # 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}` 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}` under `dynamic` or alternatively
    remove the `[project]` table from your file and rely entirely on other means of
    configuration.
    r   N)r   
__module____qualname___SUMMARY_DETAILS	_DUE_DATErc   r?   r-   rO   rO   i  s!        PHH, IIIr?   rO   )L__doc__loggingr"   collections.abcr   email.headerregistryr   	functoolsr   r   	itertoolsr   typesr   typingr	   r
   r   r   r   r   r   r   r   r   r   warningsr   r   setuptools._importlibr   r   r   r   __annotations__PathLikery   _Pathdict
_DictOrStr
_CorrespFn_Correspondence	getLoggerr   r   r.   r%   r&   r3   r6   r9   rj   ro   r~   r   r   r   r   r   r   r   r4   rF   r   r   r   r   r   r   r   r7   rE   rC   r[   rN   rO   rc   r?   r-   <module>r     s      				 # # # # # # ( ( ( ( ( ( % % % % % % % %       " " " " " "' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' G F F F F F F F -......,,,,,,!!"%%w % % %bk349
~sE2D89
Z(
'
H
%
%   .    ,.~ .t .u . . . ."2N 2D 2E 2 2 2 2*A. A A A A A)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?N ?tCI ? ? ? ?R R R  &  wwX...77666!3'	8 	8 $sO34 	 	 	 %i0 ?	^$ 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-$$%=?QRR--.DFVWW  $    4     r?   