
    ^jK                    <   U d Z ddlmZ ddlZddlZddlmZ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 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!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,f   z  Z.de+d<   edeedz  gdf   Z/de+d<    ed      Z0 ejb                  e2      Z3dtdZ4dudZ5dvdZ6dwd Z7dxd!Z8dyd"Z9d#d$d%d&Z:dzd'Z;	 	 	 	 	 	 d{d(Z<d|d)Z=d}d*Z>d~d+Z?dd,Z@dd-ZAd~d.ZBdd/ZCdd0ZDdd1ZEdd2ZFdd3ZGdd4ZHe*fdd5ZIdd6ZJdd8ZKdd9ZLdd:ZMdd;ZNdd<ZOdd=ZPd> ZQd? ZRe<e= ee>d@A       ee>dBA      e?eAeBe@dCZSdDe+dE<   dFdGiZTdHdIiZU eePdJ       eePdK       eePdL      dMZVh dNZWdOeCiZXi d7 eQdP      dQ eQdR      dS eQdT      dU eQdV      dW eRdXdY      dZ eRd[d\      d] eRd^d_      d` eRdadb      dc eQdd      de eQdf      dg eQdh      dieMdGeNdjeOdk eQdl      dm eQdn      ZYdoej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  dpZ\de+dq<    G dr dse"      Z]y)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                   |s| S t         j                  j                  |      xs d}t        | ||       t	        | ||       t        j
                         }t        j                  |       	 | j                          | j                          | j                          t        j                  |       | S # t        j                  |       w xY w)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        q/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.pyapplyr4   .   s     wwx(/CHvx0dFH-		HHX$!))+$$&
"#K 	"#s   ,0B3 3C
c                   |j                  di       }|sy |j                         D ci c]  \  }}|t        j                  |       }}}t	        | |       t        |       |j                         D ]I  \  }}t        |      }	t        j                  |	|	      }
t        |
      r |
| ||       =t        | |
|       K y c c}}w )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V$!QQ22155VMVD-0&%++- .u&u-*..xBGD%*gu-.	 Ws    C c                T   |j                  di       j                  di       }|sy d|v r<d|j                  di       v rt        d      d}t        j                  dd| d	
       |j	                         D ]  \  }}t        |      }|t        v r=t        t        |         }d| d}	t        dj                  t        |	      |g            t        j                  ||      }t        j                  ||      }
t        |
      r
 |
| |       t        | |
|        t        || |       y )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   sA   FB'++L"=J*$fjjB77$: 
 E$))I=k]K"		
 #((* .u&u-**!"5h"?@J,,17 3C %TYYz/J%KLL%))(H=+//(CGD% gu-!.$ &$1    c                    t        |j                  dg             }t        j                         D ]I  \  }}||v r||v r ||       }|st        j                  ||       t        j                  |      ||<   K y)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:      sz    -##Ir23G,224 Lv&%7*:4LE$$5$>'@'D'DU'Ke$Lr\   c                B    | j                         j                  dd      S )z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)keys    r3   r<   r<      s    99;sC((r\   c                   t        j                  |t              | |      }t        | j                  d| d       }|r	 ||       y t        | j                  |      s|t        v rt        | j                  ||       y t        | ||       y )Nset_)_PREPROCESSr7   _noopgetattrr   hasattrSETUPTOOLS_PATCHESsetattr)r.   rD   rE   valsetters        r3   r?   r?      sm    
//%
'e
4CT]]d5'ND9Fs		&%3E*Euc*eS!r\   ztext/markdownz
text/x-rstz
text/plain)z.mdz.rstz.txtc                2   t         j                  j                  | j                               \  }}|sy |t        v rt        j                  t        |         S dj                  d t        j                         D              }d| d}t        d|  d|       )N, c              3  2   K   | ]  \  }}| d | d  yw)z ()N ).0rA   rB   s      r3   	<genexpr>z&_guess_content_type.<locals>.<genexpr>   s      Ftq!2aSlF   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+FAs
n{{>#.//IIF~/C/C/EFFE?wa
HC
24&3%@
AAr\   c                   ddl m} t        |t              r |}|j	                  ||      }t        |      }n?|j                  d      xs d}|j                  d      xs |j	                  ||      }|d   }t        | dt        j                  |             |r t        | dt        j                  |             |r| j                  j                  |       y y )	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  x0#D)wwv$"wwvC&"3"3D("CN# ('++d*;<D97;;u;MN""4( r\   c                    ddl m} t        |t              r^t	        | j
                  dd       r&t        j                  d       d | j
                  _        t        | dt        j                  |             y d}t        j                  ddd	| d
       d|v rU|j                  |d   g|      }t        | dt        j                  |             | j                  j                  |d          y t        | dt        j                  |d                y )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""#NO$(DMM!D.C0@A>$))=> >k]K"	
 S=%%s6{mX>EiU);<""&&s6{3iS[)ABr\   c           	        g }g }|D ]a  }d|vr|j                  |d          d|vr|j                  |d          5t        |d   |d         }|j                  t        |             c |r/t        | |t	        j
                  dj                  |                   |r3t        | | dt	        j
                  dj                  |                   y y )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,< =>DTF&/7;;tyy7M+NO r\   c                    t        | d|       y )Nproject_urls)r?   r.   rs   r   s      r3   _project_urlsr      s    nc*r\   c                D    t        | dt        j                  |             y )Npython_requires)r?   r   SpecifierSetr   s      r3   _python_requiresr      s    ')=)=c)BCr\   c                Z    t        | dg       rd}t        j                  |       || _        y )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#Dr\   c                Z    t        | dd       rd}t        j                  |       || _        y )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#Dr\   c                R    | j                   xs g }d |D        }d |D        }g ||S )Nc           	   3     K   | ]8  }|j                         D ci c]  \  }}|j                  d d      | c}} : yc c}}w w)rf   rg   N)r8   ri   )rz   xrA   rB   s       r3   r{   z_ext_modules.<locals>.<genexpr>  s8     Hq	:1QYYsC !#:H:s   AA Ac              3  D   K   | ]  }t        di t        |        y w)Nry   )r   _adjust_ext_attrs)rz   kws     r3   r{   z_ext_modules.<locals>.<genexpr>  s     
="9-(,-
=s    )ext_modules)r.   rs   existingargsnews        r3   _ext_modulesr     s6    %2HHCHD
=
=CXr\   c                d    t        t        t        | j                  d      xs g             | d<   | S )Ndefine_macros)listmaptupler7   )attrss    r3   r   r     s-     "#eUYY-G-M2"NOE/Lr\   c                    |S Nry   )_distrs   s     r3   rn   rn         Jr\   c                    | S r   ry   )rs   s    r3   	_identityr     r   r\   c                   | }|j                  d|j                  di             }t        |      }ddd}t        |j                               D ],  \  }}t	        |      }||v s|j                  |      |||   <   . |rT|j                         D 	
ci c]0  \  }}	|	r)||	j                         D 
cg c]  \  }
}|
 d|  c}}
2 c}}
}	}|d<   y y c c}}
w c c}}
}	}w )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==?+ @
U&s+x/6{{3/?L(+,	@   ,113#
 #
e EKKM:DAqaSA3<::#
 :#
s   C
2CC
C
c           	     &   | j                  di       }|j                  di       j                  di       }t        |      }|j                  }| j                  di       j                  di       j                         D ]  \  }}t	        |      }|j                  |t                     }	|j                  |i        |j                         D ]D  \  }
}t	        |
      }
t        |      |f||   |
<   |
|	vs)t        j                  d| d|
 d       F  y )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 
NV!#&!!#su-C$ ,,. 	NJC%c*C"%h-!7HSM#% /#auO LM	N	
Nr\   c           	     J   ddl m} ddlm} dt	        |j
                        i} |j                  d      }d |D        }d	 |D        }t        || j                               D ]=  \  }}|j                  |t                     }	|	t	        t        |d
g             z  }	|	||<   ? |S )Nr   r   r   r   globalzdistutils.commands)r   c              3  2   K   | ]  }t        |        y wr   )_load_eprz   eps     r3   r{   z)_valid_command_options.<locals>.<genexpr>S  s     HB8B<Hr|   c              3  &   K   | ]	  }|s|  y wr   ry   r   s     r3   r{   z)_valid_command_options.<locals>.<genexpr>T  s     ;2B;   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1H118LMH2GH;!4;Lhnn.>? "Y  ce,,WYPR-STT!c"
 r\   c                   | j                   j                  d      ry 	 | j                  | j                         fS # t        $ rI}|j
                  j                   d| j                   }t        j                  | d|        Y d }~y d }~ww xY w)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    t        |       j                  d      S )Nz_=)r<   strip)r   s    r3   _normalise_cmd_option_keyr   l  s    t$**400r\   c                D    | D ch c]  }t        |d          c}S c c}w )Nr   )r   )descfancy_options     r3   r   r   p  s     KOP<%l1o6PPPs   c                    d}t        | dd       xs i }|j                         D ci c]  \  }}||vs|| c}}S c c}}w )N)r   r   r   )ro   r8   )r.   ignorerE   rA   rB   s        r3   _get_previous_entrypointsr   t  sB    /FD.$/52E"[[]>TQavoAqD>>>s   ==c                F    t        | dd       xs i }|j                  d      S )Nr   r   ro   r7   r.   rE   s     r3   _get_previous_scriptsr  z  s%    D.$/52E99&''r\   c                F    t        | dd       xs i }|j                  d      S )Nr   r   r  r  s     r3   _get_previous_gui_scriptsr    s$    D.$/52E99]##r\   c                    |j                   }t        |d|        t        |d|        }} ||       t        || t        j                   |                    y)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    sL    ==DTT$=1744v3OFF
3KD$VX./r\   c                D    t        t        d | j                  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   )ro   )accr   s     r3   <lambda>z_attrgetter.<locals>.<lambda>  s    '#q$*? r\   r#   )r   r   split)r
  s    r3   _attrgetterr    s     6?C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                B      fdD        }t        d |D        d       S )Nc              3  @   K   | ]  } t        |              y wr   )r  )rz   iobjs     r3   r{   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>  s     5!.+a.%5s   c              3  &   K   | ]	  }||  y wr   ry   )rz   r  s     r3   r{   z5_some_attrgetter.<locals>._acessor.<locals>.<genexpr>  s     81!-Q8r   )next)r  valuesr8   s   ` r3   _acessorz"_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!  r0  r1  r"  r   r   r2  r#  r3  rc   c                  &    e Zd ZdZdZedd       Zy)rb   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                <    | j                   j                  ||      S )Nr_   )_DETAILSformat)clsrD   rE   s      r3   detailsz_MissingDynamic.details  s    ||""e"<<r\   N)rD   r   rE   r   returnr   )r   
__module____qualname___SUMMARYr7  classmethodr:  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   r@  )r.   r   rs   
list[dict]r   r@  r   r   )r.   r   rs   r!   r   r@  )r.   r   rs   r   r   r@  )r.   r   rs   r   r   r@  )r.   r   rs   rA  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   r4  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>rW     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\   