+
    SBiG                       R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHtHtHt ^RIHt ^R	IHtHt ^R
IHt ^RIHt ^RIHtHtHt ]'       d   ^ RI H!t! ^ RI"H#t# ]PH                  ! ]%4      t&R R lt'R R lt(R$R R llt)R%R R llt*R&R R llt+ ! R R4      t,R t-]R R l4       t. ! R R]P^                  4      t0 ! R  R!]4      t1 ! R" R#]4      t2R# )'ac  
Load setuptools configuration from ``pyproject.toml`` files.

**PRIVATE MODULE**: API reserved for setuptools internal usage only.

To read project metadata, consider using
``build.util.project_wheel_metadata`` (https://pypi.org/project/build/).
For simple scenarios, you can also try parsing the file directly
with the help of ``tomllib`` or ``tomli``.
)annotationsN)Mapping)contextmanager)partial)TracebackType)TYPE_CHECKINGAnyCallable)StrPath)	FileErrorInvalidConfigError)SetuptoolsWarning)expand)_PREVIOUSLY_DEFINED_MissingDynamicapply)SelfDistributionc                    V ^8  d   QhRRRR/# )   filepathr
   returndict )formats   "D/usr/lib/python3.14/site-packages/setuptools/config/pyprojecttoml.py__annotate__r   $   s     " " "D "    c                    ^RI Hp \        V R4      ;_uu_ 4       pVP                  V4      uuRRR4       #   + '       g   i     R# ; i)r   )tomllibrbN)compat.py310r    openload)r   r    files   &  r   	load_filer&   $   s/    &	h		||D! 
			s	   7A	c               $    V ^8  d   QhRRRRRR/# )r   configr   r   r
   r   boolr   )r   s   "r   r   r   +   s!     : :T :W : :r   c                   ^RI Hp VP                  P                  R4      p\	        VR4      '       d   VP                  4         VP                  V 4      #   TP                   d   pRTP                   2pTP                  P                  R4      R8w  d5   \        P                  T4       \        P                  TP                  4       RTP                   R2p\        T R	T 24      R
hR
p?ii ; i)   )_validate_pyprojectztrove-classifier_disable_downloadzconfiguration error: `projectzinvalid pyproject.toml config: .
N) r,   FORMAT_FUNCTIONSgethasattrr-   validateValidationErrorsummarynamestrip_loggerdebugdetails
ValueError)r(   r   	validatortrove_classifierexr8   errors   &&     r   r6   r6   +   s    2 11556HI!455**,
:!!&))$$ :)"**677==*MM'"MM"**%1"''!<E7"WI./T9:s   A C0'BC++C0c               (    V ^8  d   QhRRRRRRRR/# )r   distr   r   r
   ignore_option_errorsr)   r   r   )r   s   "r   r   r   @   s0     	* 	*
	*	* 	* 		*r   c                4    \        VRW 4      p\        WV4      # )z]Apply the configuration from a ``pyproject.toml`` file into an existing
distribution object.
T)read_configuration_apply)rD   r   rE   r(   s   &&& r   apply_configurationrI   @   s       $0DKF$))r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r
   r   r)   rE   rD   Distribution | Noner   zdict[str, Any]r   )r   s   "r   r   r   L   sA     F FFF F 	F
 Fr   c                   \         P                  P                  V 4      p \         P                  P                  V 4      '       g   \	        RV : R24      h\        V 4      ;'       g    / pVP                  R/ 4      pVP                  R/ 4      pVP                  R/ 4      pV'       d   V'       g   V'       g   / # RVP                  R/ 4      9   d   \        P                  4        RV9   d   \        P                  RR	7       V'       d,   VP                  e   VP                  RVP                  4       MVP                  RR4       WdR&   WvR&   RV9   d   \        P                  RR	7       \        V4      ;_uu_ 4        RVRRV//p\        W4       R
R
R
4       V'       d,   \         P                  P                  V 4      p	\        WIW#4      # V#   + '       g   i     LE; i)a  Read given configuration file and returns options from it as a dict.

:param str|unicode filepath: Path to configuration file in the ``pyproject.toml``
    format.

:param bool expand: Whether to expand directives and other computed values
    (i.e. post-process the given configuration)

:param bool ignore_option_errors: Whether to silently ignore
    options, values of which could not be resolved (e.g. due to exceptions
    in directives such as file:, attr:, etc.).
    If False exceptions are propagated as expected.

:param Distribution|None: Distribution object to which the configuration refers.
    If not given a dummy object will be created and discarded after the
    configuration is read. This is used for auto-discovery of packages and in the
    case a dynamic configuration (e.g. ``attr`` or ``cmdclass``) is expanded.
    When ``expand=False`` this object is simply ignored.

:rtype: dict
zConfiguration file z does not exist.r/   tool
setuptoolstools	distutilsz[tool.distutils])subjectNzinclude-package-dataTzext-modulesz[tool.setuptools.ext-modules])ospathabspathisfiler   r&   r4   _ToolsTypoInMetadataemit_ExperimentalConfigurationinclude_package_data
setdefault_ignore_errorsr6   dirnameexpand_configuration)
r   r   rE   rD   asdictproject_table
tool_tablesetuptools_tablesubsetroot_dirs
   &&&&      r   rG   rG   L   s   6 wwx(H77>>(##-h\9IJKKx &&BFJJy"-MFB'J!~~lB7-+;	vzz'2..!!#j "''0B'C ))5##$:D<U<UV##$:DA6N/|(("''0O'P	,	-	-]F\CS4TU" 
.
 77??8,#F6JQQM 
.	-s   ?GG 	c          
     ,    V ^8  d   QhRRRRRRRRR	R/# )
r   r(   r   rc   StrPath | NonerE   r)   rD   rK   r   r   )r   s   "r   r   r      sA     R RRR R 	R
 
Rr   c                6    \        WW#4      P                  4       # )a  Given a configuration with unresolved fields (e.g. dynamic, cmdclass, ...)
find their final values.

:param dict config: Dict containing the configuration for the distribution
:param str root_dir: Top-level directory for the distribution/project
    (the same directory where ``pyproject.toml`` is place)
:param bool ignore_option_errors: see :func:`read_configuration`
:param Distribution|None: Distribution object to which the configuration refers.
    If not given a dummy object will be created and discarded after the
    configuration is read. Used in the case a dynamic configuration
    (e.g. ``attr`` or ``cmdclass``).

:rtype: dict
)_ConfigExpanderr   )r(   rc   rE   rD   s   &&&&r   r]   r]      s    ( 6-AHOOQQr   c                      ] tR t^tR#R R lltR R ltR R ltR$R ltR	 tR
 t	R t
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR  R! ltR"tR# )%rg   Nc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r(   r   rc   re   rE   r)   rD   rK   r   Noner   )r   s   "r   r   _ConfigExpander.__annotate__   s<     , ,, !, #	,
 ", 
,r   c                	   Wn         T;'       g    \        P                  ! 4       V n        VP	                  R / 4      V n        V P
                  P	                  R. 4      V n        VP	                  R/ 4      P	                  R/ 4      V n        V P                  P	                  R/ 4      V n        W0n	        W@n
        \        \        ,          ! 4       V n        R# )r/   dynamicrM   rN   N)r(   rR   getcwdrc   r4   project_cfgrm   setuptools_cfgdynamic_cfgrE   _distsetstr_referenced_files)selfr(   rc   rE   rD   s   &&&&&r   __init___ConfigExpander.__init__   s      //BIIK!::i4''++Ir:$jj488rJ..229bA$8!
!$Sr   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   rk      s     1 1l 1r   c                	    ^ RI Hp RV P                  RV P                  P	                  RR4      /pV P
                  ;'       g	    V! V4      # )    r   src_rootr9   N)setuptools.distr   rc   ro   r4   rr   )rv   r   attrss   &  r   _ensure_dist_ConfigExpander._ensure_dist   sB    0T]]FD4D4D4H4HQU4VWzz00\%00r   c               $    V ^8  d   QhRRRRRR/# )r   	containerr   fieldrt   fnr	   r   )r   s   "r   r   rk      s!     8 8 8S 8h 8r   c                	    W!9   d9   \        V P                  4      ;_uu_ 4        V! W,          4      W&   R R R 4       R # R #   + '       g   i     R # ; iN)r[   rE   )rv   r   r   r   s   &&&&r   _process_field_ConfigExpander._process_field   s@     9 9::#%i&6#7	  ;: :::s   AA	c                	f    V P                   P                  V/ 4      p\        P                  ! V4      # r   )rp   r4   _expandcanonic_package_data)rv   r   package_datas   && r   _canonic_package_data%_ConfigExpander._canonic_package_data   s+    **..ub9++L99r   c                	   V P                  4        V P                  4        V P                  R 4       V P                  4       p\        WP                  V P
                  4      pV;_uu_ 4       pVP                  pV P                  4        V P                  V4       V P                  W4       RRR4       VP                  P                  V P                  4       V P                  #   + '       g   i     LA; i)zexclude-package-dataN)_expand_packagesr   r   _EnsurePackagesDiscoveredro   rp   package_dir_expand_data_files_expand_cmdclass_expand_all_dynamicru   updater(   )rv   rD   ctxensure_discoveredr   s   &    r   r   _ConfigExpander.expand   s    ""$""#9:   "'.>.>@S@STS%+77K##%!!+.$$T7	  	%%d&<&<={{ Ss   ,?C$$C4	c                	   V P                   P                  R 4      pVe   \        V\        \        34      '       d   R# VP                  R4      p\        V\
        4      '       dz   V P                  VR&   V P                   P                  R/ 4      VR&   \        V P                  4      ;_uu_ 4        \        P                  ! R/ VB V P                   R &   RRR4       R# R#   + '       g   i     R# ; i)packagesNfindrc   package-dirfill_package_dirr   )rp   r4   
isinstancelisttupler   rc   rZ   r[   rE   r   find_packages)rv   r   r   s   &  r   r    _ConfigExpander._expand_packages   s    &&**:6z(T5MBB||F#dD!!#}}D'+':':'E'EmUW'XD#$ 9 9::292G2G2O$2O##J/ ;: " ;::s   0$C  C1	c                	    \        \        P                  V P                  R 7      pV P	                  V P
                  RV4       R# ))rc   z
data-filesN)r   r   canonic_data_filesrc   r   rp   )rv   
data_filess   & r   r   "_ConfigExpander._expand_data_files   s0    W77$--P
D//zJr   c                   V ^8  d   QhRR/# )r   r   Mapping[str, str]r   )r   s   "r   r   rk      s     G G,= Gr   c                	    V P                   p\        \        P                  WR 7      pV P	                  V P
                  RV4       R# ))r   rc   cmdclassN)rc   r   r   r   r   rp   )rv   r   rc   r   s   &&  r   r    _ConfigExpander._expand_cmdclass   s5    ==7++XD//XFr   c                    V ^8  d   QhRRRR/# r   rD   r   r   r   r   )r   s   "r   r   rk      s     ) ) )CT )r   c           
     	   RpV P                    Uu/ uF  pWC9  g   K  W@P                  WV4      bK  	  ppTP                  V P                  W4      ;'       g    / V P	                  W4      V P                  V4      V P                  V4      V P                  V4      V P                  V4      R7       VP                  4        UUu/ uF  w  rgVf   K  WgbK  	  pppV P                  P                  V4       R# u upi u uppi )version)r   readmeclassifiersdependenciesoptional_dependenciesN)r   r   entry-pointsscriptsgui-scriptsr   r   optional-dependencies)rm   _obtainr   _obtain_entry_points_obtain_version_obtain_readme_obtain_classifiers_obtain_dependencies_obtain_optional_dependenciesitemsro   )	rv   rD   r   specialr   obtained_dynamickvupdatess	   &&&      r   r   #_ConfigExpander._expand_all_dynamic   s    	
 
%# :E<<[99% 	 

 	%%d8>>B((;&&t,0062248"&"D"DT"J 	  	
 %5$:$:$<N$<DA414$<N(!
 Os   C7C7C<C<c                    V ^8  d   QhRRRR/# )r   rD   r   r   rt   r   )r   s   "r   r   rk     s     * *< * *r   c                	    \         V,          ! V4      pVf'   V P                  '       g   RV: R2p\        V4      hR # R # )Nz#No configuration found for dynamic z.
Some dynamic fields need to be specified via `tool.setuptools.dynamic`
others must be specified via the equivalent attribute in `setup.py`.)r   rE   r   )rv   rD   r   previousmsgs   &&&  r   _ensure_previously_set&_ConfigExpander._ensure_previously_set  sO    &u-d3D$=$=$=5eY ?Y Y 
 %S)) %>r   c                    V ^8  d   QhRRRR/# )r   	specifierrt   r   r   r   )r   s   "r   r   rk     s      6Gr   c                	   ^ RI Hp \        V P                  4      ;_uu_ 4        V P                  pRV9   dQ   V P
                  P                  V! VR,          4      4       \        P                  ! VR,          V4      uuRRR4       # RV9   d)   \        P                  ! VR,          W54      uuRRR4       # \        RV RV: 24      h  + '       g   i     R# ; i)r{   )always_iterabler%   Nattrz	invalid `z`: )more_itertoolsr   r[   rE   rc   ru   r   r   
read_files	read_attrr>   )rv   r   	directiver   r   rc   s   &&&&  r   _expand_directive!_ConfigExpander._expand_directive  s     	3D5566}}H"&&--oi>O.PQ)))F*;XF	 76
 "((6):KR 76 y3ymDEE 76 s   AC	$C	7C		C	c               $    V ^8  d   QhRRRRRR/# )r   rD   r   r   rt   r   r   r   )r   s   "r   r   rk   *  s"      L  CT r   c                	    W P                   9   d(   V P                  R V 2V P                   V,          V4      # V P                  W4       R# )ztool.setuptools.dynamic.N)rq   r   r   )rv   rD   r   r   s   &&&&r   r   _ConfigExpander._obtain*  sO    $$$))*5'2  ' 
 	##D0r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   rk   4  s      L ?P r   c                	    R V P                   9   d9   R V P                  9   d(   \        P                  ! V P	                  VR V4      4      # R# )r   N)rm   rq   r   r   r   )rv   rD   r   s   &&&r   r   _ConfigExpander._obtain_version4  sA    $d6F6F)F??T9k:  r   c                    V ^8  d   QhRRRR/# )r   rD   r   r   zdict[str, str] | Noner   )r   s   "r   r   rk   =  s      < 4I r   c                	    R V P                   9  d   R# V P                  pR V9   d/   RV P                  VR / 4      RVR ,          P                  RR4      /# V P	                  VR 4       R# )r   Ntextzcontent-typez
text/x-rst)rm   rq   r   r4   r   )rv   rD   rq   s   && r   r   _ConfigExpander._obtain_readme=  sn    4<<'&&{" T8R8H 5 9 9., W  	##D(3r   c               $    V ^8  d   QhRRRRRR/# )r   rD   r   r   r   r   z dict[str, dict[str, Any]] | Noner   )r   s   "r   r   rk   L  s$       /@	)r   c                	4  a aa Rp\         ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       g   R# S P                  VR V4      pVf   R# \        P                  ! V4      oR S/oR VVV 3R llpV! RR	4       V! RR
4       S# )r   r   r   c              3  @   <"   T F  qSP                   9   x  K  	  R # 5ir   )rm   ).0r   rv   s   & r   	<genexpr>7_ConfigExpander._obtain_entry_points.<locals>.<genexpr>P  s     =fUDLL(fs   TFNc                    V ^8  d   QhRRRR/# )r   r   rt   groupr   )r   s   "r   r   :_ConfigExpander._obtain_entry_points.<locals>.__annotate__[  s     	( 	( 	(C 	(r   c                   < VS9   dI   SP                  V4      pV SP                  9  d    \        \        P                  ! W4      4      hVSV &   R # R # r   )poprm   r   r   r=   )r   r   valueexpandedgroupsrv   s   && r   _set_scripts:_ConfigExpander._obtain_entry_points.<locals>._set_scripts[  sH    

5),,_-D-DU-RSS"'	 r   console_scriptsgui_scripts)r   r   r   )anyr   r   entry_points)rv   rD   r   fieldsr   r   r   r   s   f&&   @@r   r   $_ConfigExpander._obtain_entry_pointsL  s     <s=f=sss=f===||D.+><%%d+/=v.F	( 	( 	Y 12]M2r   c                   V ^8  d   QhRR/# r   rD   r   r   )r   s   "r   r   rk   g  s       r   c                	~    R V P                   9   d,   V P                  VR / 4      pV'       d   VP                  4       # R# )r   N)rm   r   
splitlinesrv   rD   r   s   && r   r   #_ConfigExpander._obtain_classifiersg  s5    DLL(LL}b9E''))r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rk   n  s       r   c                	t    R V P                   9   d'   V P                  VR / 4      pV'       d   \        V4      # R# )r   N)rm   r   _parse_requirements_listr   s   && r   r   $_ConfigExpander._obtain_dependenciesn  s1    T\\)LL~r:E/66r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   rk   u  s      , r   c                	X   R V P                   9  d   R# R V P                  9   dn   V P                  R ,          p\        V\        4      '       g   Q hVP	                  4        UUu/ uF%  w  r4V\        V P                  RV 2V/ 4      4      bK'  	  upp# V P                  VR 4       R# u uppi )r   Nz.tool.setuptools.dynamic.optional-dependencies.)rm   rq   r   r   r   r   r   r   )rv   rD   optional_dependencies_mapr   r   s   &&   r   r   -_ConfigExpander._obtain_optional_dependenciesu  s    "$,,6"d&6&66(,(8(89P(Q%7>>>> )B(G(G(I	 )J$E /**HP!  )J	 	 	##D*AB	s   #+B&)	rr   ru   r(   rm   rq   rE   ro   rc   rp   NFN)zpackage-data)__name__
__module____qualname____firstlineno__rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   rg   rg      sd    ,"18
:"
PKG
)<*6 r   rg   c                    V P                  4        Uu. uFD  pVP                  4       '       g   K  VP                  4       P                  R 4      '       d   KB  VNKF  	  up# u upi )#)r   r:   
startswith)r   lines   & r   r   r     sV     $$&&D::< 	 $

 7 7 < 	&  s   A "A A c                   V ^8  d   QhRR/# )r   rE   r)   r   )r   s   "r   r   r     s     H H Hr   c              #     "   V '       g   R x  R #  R x  R #   \          d;   p\        P                  RTP                  P                   RT 24        R p?R # R p?ii ; i5i)Nzignored error: z - )	Exceptionr;   r<   	__class__r  )rE   rA   s   & r   r[   r[     sO     H H(=(='>c"FGGHs*   A  A A/AA AA c                  R   a  ] tR tRtR V 3R lltR V 3R lltR V 3R lltRtV ;t# )	r   i  c               (    V ^8  d   QhRRRRRRRR/# )r   distributionr   ro   r   rp   r   rj   r   )r   s   "r   r   &_EnsurePackagesDiscovered.__annotate__  s,     . .(.7;.MQ.	.r   c                	>   < \         SV `  V4       W n        W0n        R # r   )superrw   _project_cfg_setuptools_cfg)rv   r  ro   rp   r  s   &&&&r   rw   "_EnsurePackagesDiscovered.__init__  s     	&'-r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r    s     # #4 #r   c                  < V P                   V P                  r!VP                  R/ 4      pTP                  VP                  ;'       g    / 4       W1n        VP
                  P                  4        VP                  P                  f+   V P                  P                  R4      VP                  n        VP                  f   VP                  R4      Vn        VP                  f   VP                  R4      Vn        \        SV `9  4       # )zWhen entering the context, the values of ``packages``, ``py_modules`` and
``package_dir`` that are missing in ``dist`` are copied from ``setuptools_cfg``.
r   r9   
py-modulesr   )rr   r  rZ   r   r   set_defaults_ignore_ext_modulesmetadatar9   r  r4   
py_modulesr   r  	__enter__)rv   rD   cfgr   r  s   &   r   r$  #_EnsurePackagesDiscovered.__enter__  s     JJ 4 4c&)nn]B&G4++11r2&--/ ==%!%!2!2!6!6v!>DMM??"!ggl3DO== GGJ/DMw ""r   c               (    V ^8  d   QhRRRRRRRR/# )	r   exc_typeztype[BaseException] | None	exc_valuezBaseException | None	tracebackzTracebackType | Noner   rj   r   )r   s   "r   r   r    s8     @ @,@ (@ (	@
 
@r   c                   < V P                   P                  RV P                  P                  4       V P                   P                  RV P                  P                  4       \
        SV `  WV4      # )zWhen exiting the context, if values of ``packages``, ``py_modules`` and
``package_dir`` are missing in ``setuptools_cfg``, copy from ``dist``.
r   r  )r  rZ   rr   r   r#  r  __exit__)rv   r(  r)  r*  r  s   &&&&r   r,  "_EnsurePackagesDiscovered.__exit__  sW     	''
DJJ4G4GH''djj6K6KLwY??r   )r  r  )	r  r  r	  r
  rw   r$  r,  r  __classcell__)r  s   @r   r   r     s#    . .# #,@ @r   r   c                      ] tR tRtRtRtR# )rX   i  z``{subject}` in `pyproject.toml` is still *experimental* and likely to change in future releases.r   Nr  r  r	  r
  _SUMMARYr  r   r   r   rX   rX     s    	3 r   rX   c                      ] tR tRtRtRtR# )rV   i  zNIgnoring [tools.setuptools] in pyproject.toml, did you mean [tool.setuptools]?r   Nr0  r   r   r   rV   rV     s
    X r   rV   )F)TFNr  )3__doc__
__future__r   loggingrR   collections.abcr   
contextlibr   	functoolsr   typesr   typingr   r   r	   _pathr
   errorsr   r   warningsr   r2   r   r   _apply_pyprojecttomlr   r   r   rH   typing_extensionsr   r}   r   	getLoggerr  r;   r&   r6   rI   rG   r]   rg   r   r[   EnsurePackagesDiscoveredr   rX   rV   r   r   r   <module>rB     s   	 #  	 # %   / /  2 (  W W&,


H
%":*	*FRR.Z Zz H H*@ @ @ *@Z!2 , r   