
    njL                    t   % S r SSKJr  SSKrSSKrSSKJrJr  SSKJ	r	  SSK
JrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJrJr  SSKJr  SSKJr  SSKJrJr  SSKJr  SSK J!r!J"r"  \(       a  SSKJ#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)  \" 0 5      r*S\+S'   \,\-\,\,4   -  r.S\+S'   \S\\S-  /S4   r/S\+S'   \" S5      r0\Rb                  " \25      r3StS jr4SuS jr5SvS jr6SwS  jr7SxS! jr8SyS" jr9S#S$S%S&.r:SzS' jr;      S{S( jr<S|S) jr=S}S* jr>S~S+ jr?SS, jr@SS- jrAS~S. jrBSS/ jrCSS0 jrDSS1 jrESS2 jrFSS3 jrGSS4 jrH\*4SS5 jjrISS6 jrJSS8 jrKSS9 jrLSS: jrMSS; jrNSS< jrOSS= jrPS> rQS? rR\<\=\" \>S@SA9\" \>SBSA9\?\A\B\@SC.rSSD\+SE'   SFSG0rTSHSI0rU\" \PSJ5      \" \PSK5      \" \PSL5      SM.rV1 SNkrWSO\C0rX0 S7\Q" SP5      _SQ\Q" SR5      _SS\Q" ST5      _SU\Q" SV5      _SW\R" SXSY5      _SZ\R" S[S\5      _S]\R" S^S_5      _S`\R" SaSb5      _Sc\Q" Sd5      _Se\Q" Sf5      _Sg\Q" Sh5      _Si\M_SG\N_Sj\O_Sk\Q" Sl5      _Sm\Q" Sn5      _rYSo\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  Sp.r\S\+Sq'    " Sr Ss\"5      r]g)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)CallableMapping)Address)partialreduce)cleandoc)chain)MappingProxyType)TYPE_CHECKINGAnyTypeVar   )_static)StrPath)InvalidConfigErrorRemovedConfigError)	Extension)SetuptoolsDeprecationWarningSetuptoolsWarning)	TypeAliasmetadataDistribution)_OptionsListr   EMPTYr   _ProjectReadmeValuer   _Correspondence_Tdictc                   U(       d  U $ [         R                  R                  U5      =(       d    Sn[        XU5        [	        XU5        [         R
                  " 5       n[         R                  " U5         U R                  5         U R                  5         U R                  5         [         R                  " U5        U $ ! [         R                  " U5        f = f)z=Apply configuration dict read with :func:`read_configuration`.)
ospathdirname_apply_project_table_apply_tool_tablegetcwdchdir_finalize_requires_finalize_license_expression_finalize_license_files)distconfigfilenameroot_dircurrent_directorys        b/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr4   .   s     wwx(/CHx0dH-		HHX$!))+$$&
"#K 	"#s   60B> >Cc                   UR                  S0 5      nU(       d  g UR                  5        VVs0 s H  u  pEU[        R                  " U5      _M     nnn[	        X5        [        U5        UR                  5        HL  u  px[        U5      n	[        R                  X5      n
[        U
5      (       a  U
" XU5        M@  [        X
U5        MN     g s  snnf )Nproject)
getitemsr   attempt_conversion_handle_missing_dynamic_unify_entry_pointsjson_compatible_keyPYPROJECT_CORRESPONDENCEcallable_set_config)r.   r/   r1   orig_configkvproject_tablefieldvaluenorm_keycorresps              r3   r'   r'   E   s    **Y+KBMBSBSBUVBU$!Q22155BUMVD0&%++-&u-*..xBGD*u- .	 Ws   #Cc                j   UR                  S0 5      R                  S0 5      nU(       d  g SU;   a<  SUR                  S0 5      ;   a  [        S5      eSn[        R                  " SSU 3S	S
9  UR	                  5        H  u  pV[        U5      nU[        ;   a=  [        [        U   5      nSU S3n	[        SR                  [        U	5      U/5      5      e[        R                  Xw5      n[        R                  Xw5      n
[        U
5      (       a
  U
" X5        M  [        X
U5        M     [        XU5        g )Ntool
setuptoolszlicense-filesr6   zS'project.license-files' is defined already. Remove 'tool.setuptools.license-files'.z,guides/writing-pyproject-toml/#license-fileszt'tool.setuptools.license-files' is deprecated in favor of 'project.license-files' (available on setuptools>=77.0.0).'https://packaging.python.org/en/latest/i  r      see_urldue_datez,
            The parameter `tool.setuptools.zZ` was long deprecated
            and has been removed from `pyproject.toml`.
            
)r7   r   r   emitr8   r<   TOOL_TABLE_REMOVALSr	   r   joinTOOL_TABLE_RENAMESTOOL_TABLE_CORRESPONDENCEr>   r?   _copy_command_options)r.   r/   r0   
tool_tablepypa_guidesrD   rE   rF   
suggestionmsgrG   s              r3   r(   r(   W   s3   FB'++L"=J*$fjjB77$: 
 E$))I=k]K"		
 #((*&u-**!"5h"?@J,,17 3C %TYYz/J%KLL%))(=+//CGD u-! +$ &1    c                   [        UR                  S/ 5      5      n[        R                  5        HN  u  p4X1;   a  M  X2;   a  M  U" U 5      nU(       d  M$  [        R                  X5S9  [        R                  U5      X'   MP     g)zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamicrD   rE   N)setr7   _PREVIOUSLY_DEFINEDr8   _MissingDynamicrR   _RESET_PREVIOUSLY_DEFINED)r.   rC   r^   rD   getterrE   s         r3   r:   r:      sk    -##Ir23G,224&%*:4LEu$$5$>'@'D'DU'K$ 5r\   c                B    U R                  5       R                  SS5      $ )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)keys    r3   r<   r<      s    99;sC((r\   c                (   [         R                  U[        5      " X5      n[        U R                  SU 3S 5      nU(       a	  U" U5        g [        U R                  U5      (       d
  U[        ;   a  [        U R                  X5        g [        XU5        g )Nset_)_PREPROCESSr7   _noopgetattrr   hasattrSETUPTOOLS_PATCHESsetattr)r.   rD   rE   valsetters        r3   r?   r?      sj    
//%
'
4CT]]d5'ND9Fs		&	&%3E*Eu*S!r\   ztext/markdownz
text/x-rstz
text/plain)z.mdz.rstz.txtc                @   [         R                  R                  U R                  5       5      u  pU(       d  g U[        ;   a  [
        R                  " [        U   5      $ SR                  S [        R                  5        5       5      nSU S3n[        SU  SU 35      e)N, c              3  6   #    U  H  u  pU S U S3v   M     g7f)z ()N ).0rA   rB   s      r3   	<genexpr>&_guess_content_type.<locals>.<genexpr>   s      F/Etq2aSl/Es   z3only the following file extensions are recognized: r#   zUndefined content type for )
r$   r%   splitextrh   _CONTENT_TYPESr   StrrT   r8   
ValueError)filerg   extvalidr[   s        r3   _guess_content_typer      s    WWdjjl+FA
n{{>#.//IIF~/C/C/EFFE?wa
HC
24&3%@
AAr\   c                   SSK Jn  [        U[        5      (       a  UnUR	                  XB5      n[        U5      nOHUR                  S5      =(       d    SnUR                  S5      =(       d    UR	                  XB5      nUS   n[        U S[        R                  " U5      5        U(       a!  [        U S[        R                  " U5      5        U(       a  U R                  R                  U5        g g )	Nr   expandr   ry   textzcontent-typelong_descriptionlong_description_content_type)setuptools.configr   
isinstancestr
read_filesr   r7   r?   r   r   _referenced_filesadd)r.   rs   r1   r   r   r   ctypes          r3   _long_descriptionr      s     ) #s  0#D)wwv$"wwvC&"3"3D"CN# ('++d*;<D97;;u;MN""4( r\   c                <   SSK Jn  [        U[        5      (       ae  [	        U R
                  SS 5      (       a'  [        R                  " S5        S U R
                  l        [        U S[        R                  " U5      5        g Sn[        R                  " SSS	U 3S
S9  SU;   aV  UR                  US   /U5      n[        U S[        R                  " U5      5        U R                  R                  US   5        g [        U S[        R                  " US   5      5        g )Nr   r   licensez)`license` overwritten by `pyproject.toml`license_expressionz&guides/writing-pyproject-toml/#licensez/`project.license` as a TOML table is deprecatedzPlease use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).rK   rL   rN   r   r   )r   r   r   r   ro   r   r   rR   r   r?   r   r   r   r   r   r   )r.   rs   r1   r   rY   rE   s         r3   _licenser      s    (#s4==)T22""#NO$(DMM!D.C0@A>$))=> >k]K"	
 S=%%s6{mX>EiU);<""&&s6{3iS[)ABr\   c           	        / n/ nU He  nSU;  a  UR                  US   5        M  SU;  a  UR                  US   5        M;  [        US   US   S9nUR                  [        U5      5        Mg     U(       a/  [        X[        R
                  " SR                  U5      5      5        U(       a3  [        X S3[        R
                  " SR                  U5      5      5        g g )Nnameemail)display_name	addr_specrv   _email)appendr   r   r?   r   r   rT   )r.   rs   	_root_dirkindrD   email_fieldpersonaddrs           r3   _peopler      s    EKvg/F"LL(v&/RDs4y)  DDIIe,< =>DF&/7;;tyy7M+NO r\   c                    [        U SU5        g )Nproject_urls)r?   r.   rs   r   s      r3   _project_urlsr      s    nc*r\   c                F    [        U S[        R                  " U5      5        g )Npython_requires)r?   r   SpecifierSetr   s      r3   _python_requiresr      s    ')=)=c)BCr\   c                d    [        U S/ 5      (       a  Sn[        R                  " U5        Xl        g )Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))ro   r   rR   r   r.   rs   r   r[   s       r3   _dependenciesr      s+    t',,Qs#r\   c                d    [        U SS 5      (       a  Sn[        R                  " U5        Xl        g )Nextras_requirezH`extras_require` overwritten in `pyproject.toml` (optional-dependencies))ro   r   rR   r   r   s       r3   _optional_dependenciesr     s+    t%t,,Xs#r\   c                \    U R                   =(       d    / nS U 5       nS U 5       n/ UQUQ$ )Nc           	   3     #    U  H:  oR                  5        VVs0 s H  u  p#UR                  S S5      U_M     snnv   M<     gs  snnf 7f)rf   rg   N)r8   ri   )rz   xrA   rB   s       r3   r{   _ext_modules.<locals>.<genexpr>  s8     HCq	:	QYYsC !#	:C:s   A
AA
c              3  J   #    U  H  n[        S0 [        U5      D6v   M     g 7f)Nry   )r   _adjust_ext_attrs)rz   kws     r3   r{   r     s     
="9-(,-s   !#)ext_modules)r.   rs   existingargsnews        r3   _ext_modulesr     s6    %2HHCHD
=
=CXr\   c                n    [        [        [        U R                  S5      =(       d    / 5      5      U S'   U $ )Ndefine_macros)listmaptupler7   )attrss    r3   r   r     s-     "#eUYY-G-M2"NOE/Lr\   c                    U$ Nry   )_distrs   s     r3   rn   rn         Jr\   c                    U $ r   ry   )rs   s    r3   	_identityr     r   r\   c                   U nUR                  SUR                  S0 5      5      n[        U5      nSSS.n[        UR                  5       5       H-  u  pV[	        U5      nXt;   d  M  UR                  U5      X4U   '   M/     U(       a^  UR                  5        VV	V
Vs0 s H8  u  pU	(       d  M  XR                  5        V
Vs/ s H  u  pU
 SU 3PM     snn
_M:     snn
n	nUS'   g g s  snn
f s  snn
n	nf )Nentry-pointsentry_pointsconsole_scriptsgui_scripts)scriptsr   z = )popr!   r   r8   r<   )rC   r6   givenr   renamingrj   rE   rF   r   grouprA   rB   s               r3   r;   r;   #  s    GKKNB(GHE;L,]KH7==?+
&s+/6{{3/?L(+,	 ,   ,113#
3 ;DKKM:MDAaSA3<M::3#
 :#
s   C+
,C+
?C%C+
%C+
c           	     ,   U R                  S0 5      nUR                  S0 5      R                  S0 5      n[        U5      nUR                  nU R                  S0 5      R                  S0 5      R                  5        H  u  px[	        U5      nUR                  U[        5       5      n	UR                  U0 5        UR                  5        HE  u  p[	        U
5      n
[        U5      U4Xg   U
'   X;  d  M)  [        R                  SU SU
 S35        MG     M     g )NrI   rJ   cmdclass	distutilszCommand option r#   z is not defined)
r7   _valid_command_optionscommand_optionsr8   r<   r`   
setdefaultr   _loggerwarning)	pyprojectr.   r0   rX   r   valid_optionscmd_optscmdr/   r   rj   rE   s               r3   rW   rW   8  s    vr*J~~lB/33JCH*84M##H }}VR044["EKKM!#&!!#su-C$ ,,.JC%c*C"%h-!7HM# /#auO LM )	 Nr\   c           	     B   SSK Jn  SSKJn  S[	        UR
                  5      0nUR                  " SS9nS U 5       nS	 U 5       n[        X`R                  5       5       H<  u  pxUR                  U[        5       5      n	U	[	        [        US
/ 5      5      -  n	XU'   M>     U$ )Nr   r   r   r   globalzdistutils.commands)r   c              3  8   #    U  H  n[        U5      v   M     g 7fr   )_load_eprz   eps     r3   r{   )_valid_command_options.<locals>.<genexpr>S  s     H2GB8B<<2Gs   c              3  6   #    U  H  o(       d  M  Uv   M     g 7fr   ry   r   s     r3   r{   r   T  s     ;!42BB!4s   
	user_options)setuptools.distr   
_importlibr   _normalise_cmd_optionsglobal_optionsr   r
   r8   r7   r`   ro   )
r   r   r   r   unloaded_entry_pointsloaded_entry_pointsr   r   	cmd_classoptss
             r3   r   r   K  s    ,%5l6Q6QRSM$118LMH2GH;!4;Lnn.>?  ce,,WYPR-STT!c @
 r\   c                *   U R                   R                  S5      (       a  g  U R                  U R                  5       4$ ! [         aI  nUR
                  R                   SU R                   3n[        R                  U SU 35         S nAg S nAff = f)Nzwheel.bdist_wheelz" while trying to load entry-point z: )	rE   
startswithr   load	Exception	__class____name__r   r   )r   exr[   s      r3   r   r   ]  s    	xx.// ## &&''I"''S3%r"'s   ? 
B	?BBr   c                6    [        U 5      R                  S5      $ )Nz_=)r<   strip)r   s    r3   _normalise_cmd_option_keyr   l  s    t$**400r\   c                J    U  Vs1 s H  n[        US   5      iM     sn$ s  snf )Nr   )r   )descfancy_options     r3   r   r   p  s$    KOP4<%l1o64PPPs    c                    Sn[        U SS 5      =(       d    0 nUR                  5        VVs0 s H  u  p4X1;  d  M  X4_M     snn$ s  snnf )N)r   r   r   )ro   r8   )r.   ignorerE   rA   rB   s        r3   _get_previous_entrypointsr  t  sB    /FD.$/52E"[[]>]TQaoDAD]>>>s
   AAc                P    [        U SS 5      =(       d    0 nUR                  S5      $ )Nr   r   ro   r7   r.   rE   s     r3   _get_previous_scriptsr  z  s%    D.$/52E99&''r\   c                P    [        U SS 5      =(       d    0 nUR                  S5      $ )Nr   r   r  r  s     r3   _get_previous_gui_scriptsr    s$    D.$/52E99]##r\   c                    UR                   n[        USU  35      [        USU  35      pTU" U5        [        X0[        R                  " U" 5       5      5        g)zCApply distutils metadata validation but preserve "static" behaviourrl   get_N)r   ro   rr   r   List)attrr.   rs   metart   rd   s         r3   _set_static_list_metadatar    sH    ==DTT$=1744v3OF
3KDVX./r\   c                D    [        [        S U R                  S5      5      $ )a  
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                    [        XS 5      $ r   )ro   )accr   s     r3   <lambda>_attrgetter.<locals>.<lambda>  s    '#$*?r\   r#   )r   r   split)r  s    r3   _attrgetterr    s     6?CQQr\   c                    ^  U 4S jnU$ )a$  
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                D   >^  U 4S jT 5       n[        S U 5       S 5      $ )Nc              3  F   >#    U  H  n[        U5      " T5      v   M     g 7fr   )r  )rz   iobjs     r3   r{   5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>  s     5u!+a.%%us   !c              3  .   #    U  H  oc  M  Uv   M     g 7fr   ry   )rz   r  s     r3   r{   r    s     81QQs   	)next)r  valuesr8   s   ` r3   _acessor"_some_attrgetter.<locals>._acessor  s     5u588$??r\   ry   )r8   r  s   ` r3   _some_attrgetterr     s    @ Or\   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/.
        	obsoletesprovides	platforms)r,  r-  r.  >   license_filer   license_filesprovides_extrasr   r   r   zmetadata.nameversionzmetadata.versiondescriptionzmetadata.descriptionr#  zmetadata.long_descriptionzrequires-pythonr   zmetadata.python_requiresr   zmetadata.license_expressionz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%  r4  r5  r&  r   r   r6  r'  r7  rc   c                  0    \ rS rSrSrSr\SS j5       rSrg)rb   i  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.
    c                4    U R                   R                  XS9$ )Nr_   )_DETAILSformat)clsrD   rE   s      r3   details_MissingDynamic.details  s    ||"""<<r\   ry   N)rD   r   rE   r   returnr   )	r   
__module____qualname____firstlineno___SUMMARYr;  classmethodr>  __static_attributes__ry   r\   r3   rb   rb     s"    JHH$ = =r\   rb   )r.   r   r/   r!   r0   r   r@  r   )r.   r   r/   r!   r1   r   )r.   r   r/   r!   r0   r   )r.   r   rC   r!   )rj   r   r@  r   )r.   r   rD   r   rE   r   )r   r   r@  z
str | None)r.   r   rs   r   r1   StrPath | None)r.   r   rs   z
str | dictr1   rG  )r.   r   rs   
list[dict]r   rG  r   r   )r.   r   rs   r!   r   rG  )r.   r   rs   r   r   rG  )r.   r   rs   r   r   rG  )r.   r   rs   rH  r@  zlist[Extension])r   r!   r@  r!   )r   r   rs   r    r@  r    )rs   r    r@  r    )rC   r!   )r   r!   r.   r   r0   r   )r   r   r@  zdict[str, set[str]])r   zmetadata.EntryPointr@  ztuple[str, type] | None)r   r   r@  r   )r   r   r@  zset[str])r.   r   r@  zdict[str, list])r.   r   r@  zlist | None)r  r   r.   r   rs   r   r@  None)^__doc__
__future__r   loggingr$   collections.abcr   r   email.headerregistryr   	functoolsr   r   inspectr	   	itertoolsr
   typesr   typingr   r   r   r8  r   _pathr   errorsr   r   	extensionr   warningsr   r   r   setuptools._importlibr   r   r   distutils.distr   r   __annotations__r   r!   r   r   r    	getLoggerr   r   r4   r'   r(   r:   r<   r?   r~   r   r   r   r   r   r   r   r   r   r   rn   r   r;   rW   r   r   r   r   r  r  r  r  r  r   r=   rU   rS   rV   rq   rm   ra   
EMPTY_LIST
EMPTY_DICTrc   rb   ry   r\   r3   <module>r^     s   #  	 - ( %   " . .   ; ! F .,+ ""%w %!$tCH~!5 Y 5%~sGdN&KT&QR RT]


H
%..$'2TL)
" 
B)
)0)<J)2C6P$+D 
*N& 05 $1Q?(
$
0R*  wX.76!3'	8 4 	 %i0    2K@1:>2K@	   <
K({-. ;56 k56	
 '(9;UV  =?QR  13JK #$9;VW /0 ;56 K/0 - $  ,!" K 23#$ [)9:% 4  !!%%""%%&&!!%%&&$//!# 4 (=' =r\   