hyb
2025-12-31 6cdcd01f77e11b72c323603e27ebdb85b15223c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Ë
AñúhGãóà—dZddlmZddlZddlZddlmZddlmZddl    m
Z
ddl m Z ddl mZmZmZd    d
lmZd    d lmZmZd    d lmZd dlmZd dlmZmZmZer ddl m!Z!ddl"m#Z#ejHe%«Z&d!d„Z'd"d„Z(    d#                            d$d„Z)            d%                                    d&d„Z*            d'                                    d(d„Z+Gd„d«Z,d„Z-ed)d„«Z.Gd„dej^«Z0Gd„de«Z1Gd„d e«Z2y)*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ót—ddlm}t|d«5}|j|«cddd«S#1swYyxYw)Nr )ÚtomllibÚrb)Ú compat.py310rÚopenÚload)ÚfilepathrÚfiles   úRH:\Change_password\venv_build\Lib\site-packages\setuptools/config/pyprojecttoml.pyÚ    load_filer!$s2€Ý&ä     ˆh˜Ó    ð" Ø|‰|˜DÓ!÷"÷"ò"ús“.®7cóÒ—ddlm}|jjd«}t    |d«r|j «    |j |«S#|j$r‡}d|j›}|jjd«dk7r4tj|«tj|j«d|j›d    }t|›d
|›«d‚d}~wwxYw) Nr)Ú_validate_pyprojectztrove-classifierÚ_disable_downloadzconfiguration error: ú`Úprojectzinvalid pyproject.toml config: ú.ú
)Úr#ÚFORMAT_FUNCTIONSÚgetÚhasattrr$ÚvalidateÚValidationErrorÚsummaryÚnameÚstripÚ_loggerÚdebugÚdetailsÚ
ValueError)ÚconfigrÚ    validatorÚtrove_classifierÚexr/Úerrors       r r-r-+s̀Ý2à ×1Ñ1×5Ñ5Ð6HÓIÐÜÐÐ!4Ô5à×*Ñ*Ô,ð
:Ø×!Ñ! &Ó)Ð)øØ × $Ñ $ò:Ø)¨"¯*©*¨Ð6ˆØ 7‰7=‰=˜Ó  Ò *ä M‰M˜'Ô "Ü M‰M˜"Ÿ*™*Ô %à1°"·'±'°¸!Ð<ˆÜ˜E˜7 " W IÐ.Ó/°TÐ9ûð:ús¿AÁC&ÁBC!Ã!C&có8—t|d||«}t|||«S)zeApply the configuration from a ``pyproject.toml`` file into an existing
    distribution object.
    T)Úread_configurationÚ_apply)ÚdistrÚignore_option_errorsr6s    r Úapply_configurationr@@s$€ô  ¨$Ð0DÀdÓ K€FÜ $˜ Ó )Ð)ócóD—tjj|«}tjj|«st    d|›d«‚t |«xsi}|j di«}|j di«}|j di«}|r|s|siSd|j di«vrtj«d|vrtjd¬    «|r)|j|jd |j«n|jd d «||d<||d<d |vrtjd¬    «t|«5|d|idœ}t||«d
d
d
«|r-tjj|«}    t||    ||«S|S#1swYŒ:xYw)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
    zConfiguration file z does not exist.r&ÚtoolÚ
setuptoolsÚtoolsÚ    distutilsz[tool.distutils])ÚsubjectNzinclude-package-dataTz ext-modulesz[tool.setuptools.ext-modules])r&rC)ÚosÚpathÚabspathÚisfiler r!r+Ú_ToolsTypoInMetadataÚemitÚ_ExperimentalConfigurationÚinclude_package_dataÚ
setdefaultÚ_ignore_errorsr-ÚdirnameÚexpand_configuration)
rrr?r>ÚasdictÚ project_tableÚ
tool_tableÚsetuptools_tableÚsubsetÚroot_dirs
          r r<r<LsŽ€ô6w‰w‰˜xÓ(€Hä 7‰7>‰>˜(Ô #ÜÐ-¨h¨\Ð9IÐJÓKÐKä xÓ  Ò & B€FØ—J‘J˜y¨"Ó-€MØ—‘˜F BÓ'€JØ!—~‘~ l°BÓ7ÐÙ ™-Ñ+;؈    àv—z‘z '¨2Ó.Ñ.ä×!Ñ!Ô#àjÑ Ü"×'Ñ'Ð0BÐ'ÔCñ  ×)Ñ)Ð5Ø×#Ñ#Ð$:¸D×<UÑ<UÕVà×#Ñ#Ð$:¸DÔAà€Fˆ6NØ/€Jˆ|ÑàÐ(Ñ(Ü"×'Ñ'Ð0OÐ'ÔPä    Ð,Ó    -ñ#à*°\ÐCSÐ4TÑUˆÜ˜Ô"÷#ñ
Ü—7‘7—?‘? 8Ó,ˆÜ# F¨HÐ6JÈDÓQÐQà €M÷#ð#ús Å    FÆFcó:—t||||«j«S)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)r6rYr?r>s    r rSrS•s€ô( ˜6 8Ð-AÀ4Ó H× OÑ OÓ QÐQrAcóėeZdZ            d                                    dd„Zdd„Zdd„Zdd„Zd„Zd„Zd„Z    dd    „Z
dd
„Z dd „Z                 dd „Z dd „Zdd„Zdd„Z                        dd„Zd d„Zd d„Zd d„Zy)!r[Ncó”—||_|xstj«|_|j    di«|_|j
j    dg«|_|j    di«j    di«|_|jj    di«|_||_    ||_
tt«|_ y)Nr&ÚdynamicrCrD)r6rHÚgetcwdrYr+Ú project_cfgr^Úsetuptools_cfgÚ dynamic_cfgr?Ú_distÚsetÚstrÚ_referenced_files)Úselfr6rYr?r>s     r Ú__init__z_ConfigExpander.__init__­s¢€ðˆŒ Ø Ò/¤B§I¡I£KˆŒ Ø!Ÿ:™: i°Ó4ˆÔØ×'Ñ'×+Ñ+¨I°rÓ:ˆŒ Ø$Ÿj™j¨°Ó4×8Ñ8¸ÀrÓJˆÔØ×.Ñ.×2Ñ2°9¸bÓAˆÔØ$8ˆÔ!؈Œ
Ü!$¤S¡£ˆÕrAcóŒ—ddlm}|j|jj    dd«dœ}|j
xs||«S)Nrrr0)Úsrc_rootr0)Úsetuptools.distrrYr`r+rc)rgrÚattrss   r Ú _ensure_distz_ConfigExpander._ensure_dist¾s;€Ý0à!Ÿ]™]°D×4DÑ4D×4HÑ4HÈÐQUÓ4VÑWˆØz‰zÒ0™\¨%Ó0Ð0rAcó~—||vr-t|j«5|||«||<ddd«yy#1swYyxYw©N)rQr?)rgÚ    containerÚfieldÚfns    r Ú_process_fieldz_ConfigExpander._process_fieldÄsK€Ø IÑ Ü × 9Ñ 9Ó:ñ 8Ù#% i°Ñ&6Ó#7    ˜%Ñ ÷ 8ð 8ð ÷ 8ð 8úsš3³<cód—|jj|i«}tj|«Sro)rar+Ú_expandÚcanonic_package_data)rgrqÚ package_datas   r Ú_canonic_package_dataz%_ConfigExpander._canonic_package_dataÉs+€Ø×*Ñ*×.Ñ.¨u°bÓ9ˆ Ü×+Ñ+¨LÓ9Ð9rAcóÔ—|j«|j«|jd«|j«}t||j|j
«}|5}|j }|j«|j|«|j||«ddd«|jj|j«|jS#1swYŒ:xYw)Nzexclude-package-data) Ú_expand_packagesrxrmÚ_EnsurePackagesDiscoveredr`raÚ package_dirÚ_expand_data_filesÚ_expand_cmdclassÚ_expand_all_dynamicrfÚupdater6)rgr>ÚctxÚensure_discoveredr|s     r rz_ConfigExpander.expandÍsɀØ ×ÑÔØ ×"Ñ"Ô$Ø ×"Ñ"Ð#9Ô:ð× Ñ Ó"ˆÜ'¨¨d×.>Ñ.>À×@SÑ@SÓTˆØ ð    8Ð%Ø+×7Ñ7ˆKØ × #Ñ #Ô %Ø × !Ñ ! +Ô .Ø × $Ñ $ T¨;Ô 7÷        8ð      ×Ñ×%Ñ% d×&<Ñ&<Ô=؏{‰{Ð÷    8ð    8ús Á%ACÃC'có¤—|jjd«}|t|ttf«ry|jd«}t|t
«ro|j |d<|jjdi«|d<t|j«5tjdi|¤Ž|jd<ddd«yy#1swYyxYw)NÚpackagesÚfindrYú package-dirÚfill_package_dir©) rar+Ú
isinstanceÚlistÚtupleÚdictrYrPrQr?ruÚ find_packages)rgr„r…s   r rzz _ConfigExpander._expand_packagesÞsÀØ×&Ñ&×*Ñ*¨:Ó6ˆØ Ð œz¨(´T¼5°MÔBØ à|‰|˜FÓ#ˆÜ dœDÔ !Ø#Ÿ}™}ˆDÑ Ø'+×':Ñ':×'EÑ'EÀmÐUWÓ'XˆDÐ#Ñ $Ü × 9Ñ 9Ó:ñ PÜ29×2GÑ2GÑ2OÈ$Ñ2O×#Ñ# JÑ/÷ Pð Pð "÷ Pð Pús Â#CÃCcóˆ—ttj|j¬«}|j    |j
d|«y)N)rYz
data-files)rruÚcanonic_data_filesrYrsra)rgÚ
data_filess  r r}z"_ConfigExpander._expand_data_filesês0€ÜœW×7Ñ7À$Ç-Á-ÔPˆ
Ø ×јD×/Ñ/°¸zÕJrAcóŽ—|j}ttj||¬«}|j    |j
d|«y)N)r|rYÚcmdclass)rYrrur’rsra)rgr|rYr’s    r r~z _ConfigExpander._expand_cmdclassîs7€Ø—=‘=ˆÜœ7×+Ñ+¸ÈxÔXˆØ ×јD×/Ñ/°¸XÕFrAc
óì—d}|jDcic]}||vr||j|||«“Œ}}|j|j||«xsi|j    ||«|j |«|j |«|j|«|j|«¬«|j«Dcic] \}}|€Œ    ||“Œ }}}|jj|«ycc}wcc}}w)N)ÚversionÚreadmeú entry-pointsÚscriptsú gui-scriptsÚ classifiersÚ dependenciesúoptional-dependencies)r”r•r™ršÚoptional_dependencies) r^Ú_obtainr€Ú_obtain_entry_pointsÚ_obtain_versionÚ_obtain_readmeÚ_obtain_classifiersÚ_obtain_dependenciesÚ_obtain_optional_dependenciesÚitemsr`)    rgr>r|ÚspecialrqÚobtained_dynamicÚkÚvÚupdatess             r rz#_ConfigExpander._expand_all_dynamicós€ð    
ˆðŸ™ö
àØ˜GÑ#ð 4—<‘<  e¨[Ó9Ñ 9ð
Ðð
ð
    ×ÑØ × %Ñ % d¨KÓ 8Ò >¸BØ×(Ñ(¨¨{Ó;Ø×&Ñ& tÓ,Ø×0Ñ0°Ó6Ø×2Ñ2°4Ó8Ø"&×"DÑ"DÀTÓ"Jð      ô    
ð%5×$:Ñ$:Ó$<×N™D˜A˜qÀÁ 1a‘4ÐNˆÑNØ ×Ñ×Ñ Õ(ùò!
ùóOs‘C+Â<
C0ÃC0có`—t||«}|€|jsd|›d}t|«‚yy)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`.)rr?r)rgr>rqÚpreviousÚmsgs     r Ú_ensure_previously_setz&_ConfigExpander._ensure_previously_setsL€Ü& uÑ-¨dÓ3ˆØ Ð  D×$=Ò$=à5°e°Yð?YðYð ô
% SÓ)Ð )ð %>Ð rAcón—ddlm}t|j«5|j}d|vrF|j
j ||d««tj|d|«cddd«Sd|vr#tj|d||«cddd«Std|›d|›«‚#1swYyxYw)Nr)Úalways_iterablerÚattrz    invalid `z`: ) Úmore_itertoolsr¯rQr?rYrfr€ruÚ
read_filesÚ    read_attrr5)rgÚ    specifierÚ    directiver|r¯rYs      r Ú_expand_directivez!_ConfigExpander._expand_directives¾€õ    3ä ˜D×5Ñ5Ó 6ñ    FØ—}‘}ˆHؘÑ"Ø×&Ñ&×-Ñ-©o¸iÈÑ>OÓ.PÔQÜ×)Ñ)¨)°FÑ*;¸XÓF÷        Fñ    Fð
˜Ñ"Ü×(Ñ(¨°6Ñ):¸KÈÓR÷     Fñ    Fô˜y¨¨ °3°y°mÐDÓEÐ E÷    FðúsœA B+Á3B+ÂB+Â+B4cóŠ—||jvr#|jd|›|j||«S|j||«y)Nztool.setuptools.dynamic.)rbr¶r­)rgr>rqr|s    r rz_ConfigExpander._obtain*sS€Ø D×$Ñ$Ñ $Ø×)Ñ)Ø*¨5¨'Ð2Ø× Ñ  Ñ'Øóð ð
     ×#Ñ# D¨%Ô0ØrAcóˆ—d|jvr4d|jvr&tj|j    |d|««Sy)Nr”)r^rbrur”r)rgr>r|s   r rŸz_ConfigExpander._obtain_version4sA€à ˜Ÿ ™ Ñ $¨°d×6FÑ6FÑ)FÜ—?‘?à— ‘ ˜T 9¨kÓ:óð ðrAcó¸—d|jvry|j}d|vr)|j|di«|djdd«dœS|j    |d«y)Nr•ú content-typez
text/x-rst)Útextrº)r^rbrr+r­)rgr>rbs   r r z_ConfigExpander._obtain_readme=sj€Ø ˜4Ÿ<™<Ñ 'Øà×&Ñ&ˆ Ø {Ñ "🠙  T¨8°RÓ8Ø +¨HÑ 5× 9Ñ 9¸.È,Ó Wñð ð      ×#Ñ# D¨(Ô3ØrAcó̇‡‡—d}tˆfd„|D««sy‰j|d|«}|€ytj|«Šd‰iŠd    ˆˆˆfd„ }|dd«|dd«‰S)
N)r–r—r˜c3ó:•K—|]}|‰jv–—Œy­wro)r^)Ú.0rqrgs  €r ú    <genexpr>z7_ConfigExpander._obtain_entry_points.<locals>.<genexpr>Psøèø€Ò=¨U5˜DŸL™LÔ(Ñ=ùsƒr–có–•—|‰vrD‰j|«}|‰jvrttj||««‚|‰|<yyro)Úpopr^rrr4)rqÚgroupÚvalueÚexpandedÚgroupsrgs   €€€r Ú _set_scriptsz:_ConfigExpander._obtain_entry_points.<locals>._set_scripts[sJø€Ø˜‰ØŸ
™
 5Ó)Ø § ¡ Ñ,Ü,¬_×-DÑ-DÀUÈEÓ-RÓSÐSØ"'˜’ð    rAr—Úconsole_scriptsr˜Ú gui_scripts)rqrerÂre)ÚanyrruÚ entry_points)rgr>r|Úfieldsr»rÆrÄrÅs`     @@r ržz$_ConfigExpander._obtain_entry_pointsLspú€ð<ˆÜÓ=°fÔ=Ô=Øà|‰|˜D .°+Ó>ˆØ ˆ<Øä×%Ñ% dÓ+ˆà/=¸vÐ.Fˆ÷    (ñ    YР1Ô2ِ] MÔ2àˆrAcój—d|jvr%|j|di«}|r|j«Sy)Nr™)r^rÚ
splitlines©rgr>rÃs   r r¡z#_ConfigExpander._obtain_classifiersgs5€Ø ˜DŸL™LÑ (Ø—L‘L  }°bÓ9ˆEÙØ×'Ñ'Ó)Ð)ØrAcó`—d|jvr |j|di«}|r t|«Sy)Nrš)r^rÚ_parse_requirements_listrÎs   r r¢z$_ConfigExpander._obtain_dependenciesns1€Ø ˜TŸ\™\Ñ )Ø—L‘L  ~°rÓ:ˆEÙÜ/°Ó6Ð6ØrAc ó2—d|jvryd|jvrb|jd}t|t«sJ‚|j    «Dcic]%\}}|t |j d|›|i««“Œ'c}}S|j|d«ycc}}w)Nr›z.tool.setuptools.dynamic.optional-dependencies.)r^rbr‰rŒr¤rÐr¶r­)rgr>Úoptional_dependencies_maprÂrµs     r r£z-_ConfigExpander._obtain_optional_dependenciesusµ€Ø "¨$¯,©,Ñ 6ØØ " d×&6Ñ&6Ñ 6Ø(,×(8Ñ(8Ð9PÑ(QÐ %ÜÐ7¼Ô>Ð >Ð>ð)B×(GÑ(GÓ(I÷    ñ%E˜9ðÔ/Ø×*Ñ*ØHÈÈÐPØ!Øóóñó    ð     ð     ×#Ñ# DÐ*AÔBØùó    sÁ*B©NFN)
r6rŒrYúStrPath | Noner?Úboolr>úDistribution | NoneÚreturnÚNone)r×r)rprŒrqrerrr
)z package-data)r|úMapping[str, str])r>rr|rÙ)r>rrqre)r´rer|rÙ)r>rrqrer|rÙ)r>rr×zdict[str, str] | None)r>rr|rÙr×z dict[str, dict[str, Any]] | None)r>r)Ú__name__Ú
__module__Ú __qualname__rhrmrsrxrrzr}r~rr­r¶rrŸr ržr¡r¢r£rˆrAr r[r[¬s„ð$(Ø%*Ø$(ð ,àð,ð!ð,ð#ð    ,ð
"ð ,ð
ó ,ó"1ó 8ó
:òò"
PòKóGó
)ó<*ð Øð Ø6Gó óóó ðØ ðØ/@ðà    )óó6óôrAr[có¦—|j«Dcgc]3}|j«r!|j«jd«s|‘Œ5c}Scc}w)Nú#)rÍr1Ú
startswith)rÃÚlines  r rÐrЉsI€ð×$Ñ$Ó&ö à Ø :‰:Œ< §
¡
£ × 7Ñ 7¸Ô <ò     ò ðùò s“8Ac#ó®K—|sd–—y    d–—y#t$r9}tjd|jj›d|›«Yd}~yd}~wwxYw­w)Nzignored error: z - )Ú    Exceptionr2r3Ú    __class__rÚ)r?r9s  r rQrQ‘sPèø€á Û ØðHÜ øÜ òH܏ ‰ ˜¨¯ © ×(=Ñ(=Ð'>¸cÀ"ÀÐF×GÑGûðHüs*‚A‹A    A™/A ÁAÁ AÁAcóX‡—eZdZ                                dˆfd„ Zdˆfd„ Z                                dˆfd„ ZˆxZS)r{có@•—t‰||«||_||_yro)ÚsuperrhÚ _project_cfgÚ_setuptools_cfg)rgÚ distributionr`rarãs    €r rhz"_EnsurePackagesDiscovered.__init__žs"ø€ô    ‰Ñ˜Ô&Ø'ˆÔØ-ˆÕrAcóü•—|j|j}}|jdi«}|j|jxsi«||_|j
j «|jj€*|jjd«|j_|j€|jd«|_ |j€|jd«|_ t‰|9«S)z«When entering the context, the values of ``packages``, ``py_modules`` and
        ``package_dir`` that are missing in ``dist`` are copied from ``setuptools_cfg``.
        r†r0ú
py-modulesr„)rcrèrPr€r|Ú set_defaultsÚ_ignore_ext_modulesÚmetadatar0rçr+Ú
py_modulesr„ræÚ    __enter__)rgr>Úcfgr|rãs    €r rðz#_EnsurePackagesDiscovered.__enter__¥sÌø€ð—J‘J × 4Ñ 4ˆcˆØ&)§n¡n°]ÀBÓ&Gˆ Ø×ј4×+Ñ+Ò1¨rÔ2Ø&ˆÔà ×Ñ×-Ñ-Ô/ð =‰=× Ñ Ð %Ø!%×!2Ñ!2×!6Ñ!6°vÓ!>ˆDM‰MÔ Ø ?‰?Ð "Ø!Ÿg™g lÓ3ˆDŒOØ =‰=Ð  ØŸG™G JÓ/ˆDŒMä‰wÑ Ó"Ð"rAcóæ•—|jjd|jj«|jjd|jj«t
‰||||«S)zŸWhen exiting the context, if values of ``packages``, ``py_modules`` and
        ``package_dir`` are missing in ``setuptools_cfg``, copy from ``dist``.
        r„rë)rèrPrcr„rïræÚ__exit__)rgÚexc_typeÚ    exc_valueÚ    tracebackrãs    €r róz"_EnsurePackagesDiscovered.__exit__»sYø€ð     ×Ñ×'Ñ'¨
°D·J±J×4GÑ4GÔHØ ×Ñ×'Ñ'¨ °d·j±j×6KÑ6KÔL܉wÑ ¨)°YÓ?Ð?rA)rérr`rŒrarŒr×rØ)r×r)rôztype[BaseException] | NonerõzBaseException | NonerözTracebackType | Noner×rØ)rÚrÛrÜrhrðróÚ __classcell__)rãs@r r{r{scø„ð.Ø(ð.Ø7;ð.ØMQð.à     õ.õ#ð, @à,ð @ð(ð @ð(ð     @ð
 
÷ @ñ @rAr{có—eZdZdZy)rNz``{subject}` in `pyproject.toml` is still *experimental* and likely to change in future releases.N©rÚrÛrÜÚ_SUMMARYrˆrAr rNrNÊs „ð    3ñ rArNcó—eZdZdZy)rLzNIgnoring [tools.setuptools] in pyproject.toml, did you mean [tool.setuptools]?NrùrˆrAr rLrLÑs
„àXñ rArL)rr r×rŒ)r6rŒrr r×rÕ)F)r>rrr r?rÕr×r)TFN)
rr rrÕr?rÕr>rÖr×zdict[str, Any]rÓ)
r6rŒrYrÔr?rÕr>rÖr×rŒ)r?rÕ)3Ú__doc__Ú
__future__rÚloggingrHÚcollections.abcrÚ
contextlibrÚ    functoolsrÚtypesrÚtypingrr    r
Ú_pathr Úerrorsr rÚwarningsrr)rruÚ_apply_pyprojecttomlrrrr=Útyping_extensionsrrkrÚ    getLoggerrÚr2r!r-r@r<rSr[rÐrQÚEnsurePackagesDiscoveredr{rNrLrˆrAr ú<module>r slðñ    õ#ãÛ    Ý#Ý%ÝÝß/Ñ/åß2Ý(ÝßWÑWáÝ&å,à
ˆ'×
˜HÓ
%€ó"ó:ð0"'ð    *Ø
ð    *àð    *ðð    *ðó        *ðØ!&Ø $ð    FØðFà ðFððFð ð    Fð
ó FðV $Ø!&Ø $ð    RØ ðRàðRððRð ð    Rð
 
ó R÷.ZñZòzðòHóðHô*@ × @Ñ @ô*@ôZÐ!2ôôÐ,õrA