
    ϶vg'=                       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 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 ddl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edf         gdf         Z-de)d<    ed          Z. ej/        e0          Z1dd!Z2dd#Z3dd$Z4dd&Z5dd)Z6dd-Z7d.d/d0d1Z8dd4Z9dd7Z:dd8Z;dd<Z<dd=Z=dd>Z>dd@Z?ddAZ@ddCZAddEZBddFZCddHZDe(fddKZEddOZFddQZGddUZHddWZIddYZJddZZKd[ ZLd\ ZMe:e; e
e<d]^           e
e<d_^          e=e?e@e>d`ZNdae)db<   dcddiZOdedfiZPh dgZQdheAiZRi dP eLdi          dj eLdk          dl eLdm          dn eLdo          dp eMdqdr          ds eLdt          du eMdvdw          dx eMdydz          d{ eLd|          d} eLd~          d eLd          deIddeJdeKd eLd          d eLd          ZSi g g g g i i i i g i dZTde)d<    G d de          ZUd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)Mapping)Address)partialreduce)cleandoc)chain)MappingProxyType)TYPE_CHECKINGAnyCallableTypeVarUnion   )StrPath)RemovedConfigError	Extension)SetuptoolsWarning)	TypeAliasmetadataDistribution)_OptionsListr   EMPTYr   _ProjectReadmeValuer   _Correspondence_T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/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr3   -   s      wx((/CHvx000dFH---	HX$!!!$$&&&
"####"####Ks   0(B- -Cr0   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!   r0   project_tablefieldvaluenorm_keycorresps           r2   r*   r*   C   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`.
            
)
r6   r:   r;   TOOL_TABLE_REMOVALSr   r   joinTOOL_TABLE_RENAMESr>   _copy_command_options)	r    r!   r#   
tool_tabler@   rA   rB   
suggestionmsgs	            r2   r+   r+   T   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1rD   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@   rA   N)setr6   _PREVIOUSLY_DEFINEDr:   _MissingDynamicemit_RESET_PREVIOUSLY_DEFINED)r    r?   rQ   r@   getterrA   s         r2   r8   r8   j   s    -##Ir2233G,2244 L Lv&&%7*:*:F4LLE L$$5$>>>'@'D'DU'K'Ke$L LrD   keystrc                R    |                                                      dd          S )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rY   s    r2   r;   r;   u   s     99;;sC(((rD   r@   rA   r   c                6   t                              |t                    | |          }t          | j        d| d           }|r ||           d S t          | j        |          s	|t          v rt          | j        ||           d S t          | ||           d S )Nset_)_PREPROCESSr6   _noopgetattrr   hasattrSETUPTOOLS_PATCHESsetattr)r    r@   rA   valsetters        r2   r>   r>   z   s    
//%
'
'e
4
4CT]N5NND99F "s		&	& "%3E*E*Euc*****eS!!!!!rD   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      r2   	<genexpr>z&_guess_content_type.<locals>.<genexpr>   s2      FFtq!llalllFFFFFFrD   z3only the following file extensions are recognized: r&   zUndefined content type for )r'   r(   splitextr^   _CONTENT_TYPESrJ   r:   
ValueError)rj   r]   extvalidrO   s        r2   _guess_content_typer{      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ArD   rh   StrPath | Nonec                   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   expandrj   rp   textzcontent-typelong_descriptionlong_description_content_type)
setuptools.configr   
isinstancerZ   
read_filesr{   r6   r>   _referenced_filesadd)r    rh   r0   r   rj   r   ctypes          r2   _long_descriptionr      s     )((((( #s $  x00#D))wwv$"wwvC&"3"3D("C"CN#($/// BD95AAA )""4((((() )rD   c                    ddl m} d|v rNt          | d|                    |d         g|                     | j                            |d                    d S t          | d|d                    d S )Nr   r~   rj   licenser   )r   r   r>   r   r   r   )r    rh   r0   r   s       r2   _licenser      s    ((((((}}D)V%6%6F}h%O%OPPP""3v;/////D)S[11111rD   
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_specrm   _email)appendr   rZ   r>   rJ   )r    rh   r   r   r@   email_fieldpersonaddrs           r2   _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rD   c                (    t          | d|           d S )Nproject_urls)r>   )r    rh   r   s      r2   _project_urlsr      s    nc*****rD   c                F    ddl m} t          | d ||                     d S )Nr   )SpecifierSetpython_requires)packaging.specifiersr   r>   )r    rh   r   r   s       r2   _python_requiresr      s7    111111'c):):;;;;;rD   listc                b    t          | dg           rd}t          j        |           || _        d S )Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))rd   r   rV   r   r    rh   r   rO   s       r2   _dependenciesr      s;    t',, $Qs###DrD   c                b    t          | dd           rd}t          j        |           || _        d S )Nextras_requirezH`extras_require` overwritten in `pyproject.toml` (optional-dependencies))rd   r   rV   r   r   s       r2   _optional_dependenciesr      s;    t%t,, $Xs###DrD   list[Extension]c                P    | j         pg }d |D             }d |D             }g ||S )Nc              3  R   K   | ]"}d  |                                 D             V  #dS )c                B    i | ]\  }}|                     d d          |S )r\   r]   )r_   rq   s      r2   
<dictcomp>z*_ext_modules.<locals>.<genexpr>.<dictcomp>   s,    :::1QYYsC  !:::rD   Nr:   )rr   xs     r2   ru   z_ext_modules.<locals>.<genexpr>   s9      HHq::		:::HHHHHHrD   c                &    g | ]}t          d i |S )rp   r   )rr   kws     r2   
<listcomp>z _ext_modules.<locals>.<listcomp>   s"    
*
*
*r9??r??
*
*
*rD   )ext_modules)r    rh   existingargsnews        r2   _ext_modulesr      sE    %2HHHCHHHD
*
*T
*
*
*CXrD   _distc                    |S Nrp   )r   rh   s     r2   rc   rc      s    JrD   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 = rp   rq   s      r2   r   z2_unify_entry_points.<locals>.<dictcomp>.<listcomp>   s&    :::DAqa<<A<<:::rD   r   )rr   r   groups      r2   r   z'_unify_entry_points.<locals>.<dictcomp>   sK     #
 #
 #
e#
::EKKMM:::#
 #
 #
rD   )popr   r:   r;   )r?   r5   r   renamingrY   rA   rB   s          r2   r9   r9      s    G;;~w{{>2/N/NOOL,]KKH7==??++ @ @
U&s++x/6{{3/?/?L(+, 
#
 #
+1133#
 #
 #

 
rD   	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 )NrF   rG   cmdclass	distutilszCommand option r&   z is not defined)
r6   _valid_command_optionscommand_optionsr:   r;   rS   
setdefaultrZ   _loggerwarning)r   r    r#   rM   r   valid_optionscmd_optscmdr!   rz   rY   rA   s               r2   rL   rL     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rD   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 r   )_load_eprr   eps     r2   ru   z)_valid_command_options.<locals>.<genexpr>  s(      HHB8B<<HHHHHHrD   c              3     K   | ]}||V  	d S r   rp   r   s     r2   ru   z)_valid_command_options.<locals>.<genexpr>   s'      ;;2;B;;;;;;rD   user_options)setuptools.distr   
_importlibr   _normalise_cmd_optionsglobal_optionsr   r	   r:   r6   rS   rd   )
r   r   r   r   unloaded_entry_pointsloaded_entry_pointsr   r   	cmd_classoptss
             r2   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rD   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: )	rA   
startswithr   load	Exception	__class____name__r   r   )r   exrO   s      r2   r   r   )  s    	x.//  t##   &SS"'SS3"'''ttttts   9 
B5A>>Br   c                F    t          |                               d          S )Nz_=)r;   strip)r   s    r2   _normalise_cmd_option_keyr   8  s    t$$**4000rD   descr   set[str]c                    d | D             S )Nc                8    h | ]}t          |d                    S )r   )r   )rr   fancy_options     r2   	<setcomp>z)_normalise_cmd_options.<locals>.<setcomp>=  s%    PPP<%l1o66PPPrD   rp   )r   s    r2   r   r   <  s    PP4PPPPrD   dict[str, list]c                n    dt          | dd           pi }fd|                                D             S )N)r   r   r   c                $    i | ]\  }}|v	||S rp   rp   )rr   rs   rt   ignores      r2   r   z-_get_previous_entrypoints.<locals>.<dictcomp>C  s$    >>>TQavooAqooorD   )rd   r:   )r    rA   r   s     @r2   _get_previous_entrypointsr   @  s@    /FD.$//52E>>>>U[[]]>>>>rD   list | Nonec                R    t          | dd           pi }|                    d          S )Nr   r   rd   r6   r    rA   s     r2   _get_previous_scriptsr   F  s+    D.$//52E99&'''rD   c                R    t          | dd           pi }|                    d          S )Nr   r   r   r   s     r2   _get_previous_gui_scriptsr  K  s*    D.$//52E99]###rD   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   )rd   )accr   s     r2   <lambda>z_attrgetter.<locals>.<lambda>\  s    '#q$*?*? rD   r&   )r   r   split)attrs    r2   _attrgetterr	  P  s$     6??CQQQrD   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	  )rr   iobjs     r2   ru   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>m  s3      55!.+a..%%555555rD   c              3     K   | ]}||V  	d S r   rp   )rr   r  s     r2   ru   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>n  s"      881!-Q----88rD   )next)r  valuesr:   s   ` r2   _acessorz"_some_attrgetter.<locals>._acessorl  s<    5555u55588888$???rD   rp   )r:   r  s   ` r2   _some_attrgetterr  _  s(    @ @ @ @ @ OrD   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   r   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'  rW   c                  .    e Zd ZdZdZed
d            Zd	S )rU   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@   rZ   rA   r   r$   c                :    | j                             ||          S )NrR   )_DETAILSformat)clsr@   rA   s      r2   detailsz_MissingDynamic.details  s    |""e"<<<rD   N)r@   rZ   rA   r   r$   rZ   )r   
__module____qualname___SUMMARYr*  classmethodr-  rp   rD   r2   rU   rU     s@        JHH$ = = = [= = =rD   rU   )r    r   r!   r"   r#   r   r$   r   )r    r   r!   r"   r0   r   )r    r   r!   r"   r#   r   )r    r   r?   r"   )rY   rZ   r$   rZ   )r    r   r@   rZ   rA   r   )rj   rZ   r$   rk   )r    r   rh   r   r0   r|   )r    r   rh   r"   r0   r|   )r    r   rh   r   r   r|   r   rZ   )r    r   rh   r"   r   r|   )r    r   rh   rZ   r   r|   )r    r   rh   r   r   r|   )r    r   rh   r   r$   r   )r   r   rh   r   r$   r   )r?   r"   )r   r"   r    r   r#   r   )r   r   r$   r   )r   r   r$   r   )r   rZ   r$   rZ   )r   r   r$   r   )r    r   r$   r   )r    r   r$   r   )V__doc__
__future__r   loggingr'   collections.abcr   email.headerregistryr   	functoolsr   r   inspectr   	itertoolsr	   typesr
   typingr   r   r   r   r   _pathr   errorsr   	extensionr   warningsr   typing_extensionsr   setuptools._importlibr   r   r   distutils.distr   r   __annotations__rZ   r"   r   r   r   	getLoggerr   r   r3   r*   r+   r8   r;   r>   rw   r{   r   r   r   r   r   r   r   r   rc   r9   rL   r   r   r   r   r   r   r  r	  r  r<   rK   rI   rf   rb   rT   rW   rU   rp   rD   r2   <module>rE     s     # " " " " "  				 # # # # # # ( ( ( ( ( ( % % % % % % % %             " " " " " " ? ? ? ? ? ? ? ? ? ? ? ? ? ?       ' ' ' ' ' ' ! ! ! ! ! ! ( ( ( ( ( ( ,++++++......,,,,,,++++++ "!"%% % % % %!&sDcN':!;  ; ; ; ;%~sE'4-<P&QSW&WX X X X XWT]]
'
H
%
%   ,. . . ."2 2 2 2,L L L L) ) ) )
" " " "  
B 
B 
B 
B) ) ) )0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::! . # #     "= = = = =' = = = = =rD   