:Qg9 UdZddlZddlZddlmZddlmZddlmZm Z ddl m Z ddl m Z ddlmZdd lmZmZmZmZmZmZmZmZmZmZmZd d lmZd d lmZer dd l m!Z!ddl"m#Z#eiZ$ee%d<eej&e'fZ(ee)e'fZ*edee(gdfZ+ee'e+fZ,ej-e.Z/ddde)de(ddfdZ0ddde)de(fdZ1ddde)de(fdZ2ddde)fdZ3de'de'fdZ4ddde'defdZ5d d!d"d#Z6d$e'dee'fd%Z7ddd&e*de(fd'Z8ddd&e)de(fd(Z9ddd&ee)d)e(d*e'fd+Z:ddd&e)fd,Z;ddd&e)fd-Zddd&e)fd/Z?de)fd0Z@d1e)ddde(fd2ZAe$fd3edee'ee'ffd4ZBd5d6deee'effd7ZCd8e'de'fd9ZDd:eee'ee'e'fdee'fd;ZEdddee'e=ffd<ZFdddee=fd=ZGdddee=fd>ZHd?ZId@ZJe8e9ee:dABee:dCBe;e>e?e suggestionmsgs r.r'r'WsFB''++L"==J "((** + + u&u-- * * *!"5h"?@@J,1C%TYY z/J%K%KLL L%))(H==D(E****&$11111r@r;c&t|dg}tD]S\}}||vsJ||vsF||}|r9t||t |||<TdS)zJBe temporarily forgiving with ``dynamic`` fields not listed in ``dynamic``dynamicr<r=N)setr2_PREVIOUSLY_DEFINEDr6_MissingDynamicemit_RESET_PREVIOUSLY_DEFINED)rr;rMr<getterr=s r.r4r4ms-##Ir2233G,2244LL v&&%7*:*:F4LLE L$$5$>>>'@'D'DU'K'K e$ LLr@keycR|ddS)z1As defined in :pep:`566#json-compatible-metadata`-_)lowerreplace)rUs r.r7r7xs 99;;  sC ( ((r@r<r=ct|jd|d}|r ||dSt|j|s |tvrt |j||dSt |||dS)Nset_)getattrrhasattrSETUPTOOLS_PATCHESsetattr)rr<r=setters r.r:r:}s T]N5NND 9 9F $u  & &$%3E*E*E ue,,,,,eU#####r@z text/markdownz text/x-rstz text/plain)z.mdz.rstz.txtfilec@tj|\}}|sdS|tvr t|SddtD}d|d}td|d|)N, c3,K|]\}}|d|dVdS)z ()N.0kvs r. z&_guess_content_type..s2FFtq!llalllFFFFFFr@z3only the following file extensions are recognized: r"zUndefined content type for )r#r$splitextrY_CONTENT_TYPESrFr6 ValueError)rbrXextvalidrKs r._guess_content_typerrs W  djjll + +FAs t nc"" IIFF~/C/C/E/EFFF F FE H H H HC @4@@3@@ A AAr@valcddlm}t|tr(|}|||}t |}nJ|dpg}|dp|||}|d}t|d||rt|d||r/|j tt|dSdS)Nrexpandrbtextz content-typelong_descriptionlong_description_content_type) setuptools.configrv isinstancestr read_filesrrr2r:_referenced_filesaddr)rrsr,rvrbrwctypes r._long_descriptionrs((((((#s$!$  x00#C((wwv$"wwvC&"3"3D("C"CN#($/// BD95AAA 4 ""4T??3333344r@cddlm}d|vrNt|d||dg||j|ddSt|d|ddS)Nrrurblicenserw)rzrvr:r}r~r)rrsr,rvs r._licensers(((((( }}D)V%6%6F }h%O%OPPP ""3v;/////D)S[11111r@ _root_dirkindcg}g}|D]}d|vr||d"d|vr||dBt|d|d}|t||r$t||d||r)t||dd|dSdS)Nnameemail) display_name addr_specrd_email)appendrr|r:rF)rrsrrr< email_fieldpersonaddrs r._peoplers EK**      vg / / / / F " " LL ( ( ( (v&/RRRD   s4yy ) ) ) ) 2D$ % 0 0111CDT///499[+A+ABBBBBCCr@c(t|d|dS)N project_urls)r:)rrsrs r. _project_urlsrsnc*****r@cFddlm}t|d||dS)Nr) SpecifierSetpython_requires)&setuptools.extern.packaging.specifiersrr:)rrsrrs r._python_requiresrs7CCCCCC'c):):;;;;;r@cbt|dgrd}tj|||_dS)Ninstall_requireszA`install_requires` overwritten in `pyproject.toml` (dependencies))r]rrRr)rrsrrKs r. _dependenciesrs;t',,$Qs###Dr@cBt|ddpi}i|||_dS)Nextras_require)r]r)rrsrexistings r._optional_dependenciesrs1t-t44:H-X--Dr@cb|}|d|di}ddd}t|D]6\}}t|}||vr|||||<7|r#d|D|d<dSdS)N entry-points entry_pointsconsole_scripts gui_scripts)scriptsrcVi|]&\}}||d|D'S)c"g|] \}}|d| S)z = rgrhs r. z2_unify_entry_points...s&:::DAqa<z'_unify_entry_points..sK# # # e# ::EKKMM:::# # # r@)poplistr6r7)r;r1rrenamingrUr=r>s r.r5r5sG;;~w{{>2/N/NOOL,]KKH7==??++@@ U&s++ x  /6{{3/?/?L(+ , # # +1133# # #   r@ pyprojectc |di}|didi}t|}|j}|didiD]\}}t |}||t } ||i|D]S\} } t | } t|| f||| <| | vr!t d|d| dTdS)NrBrCcmdclass distutilszCommand option r"z is not defined) r2_valid_command_optionscommand_optionsr6r7rO setdefaultr|_loggerwarning) rrrrIr valid_optionscmd_optscmdrrqrUr=s r.rHrHsQvr**J~~lB//33JCCH*844M#H }}VR0044["EEKKMM N N V!#&&!!#suu--C$$$ ,,.. N NJC%c**C"%h--!7HSM# % L# L L L L LMMM  N N Nr@rc |ddlm}ddlm}dt |ji}|jd}d|D}d |D}t||D]M\}}| |t} | t t|d gz} | ||<N|S) Nrrrrglobalzdistutils.commands)rc34K|]}t|VdSN)_load_eprieps r.rlz)_valid_command_options..s(HHB8B<<HHHHHHr@c3K|]}||V dSrrgrs r.rlz)_valid_command_options..s';;2;B;;;;;;r@ user_options) _importlibrsetuptools.distr_normalise_cmd_optionsglobal_optionsrrr6r2rOr]) rrrrunloaded_entry_pointsloaded_entry_pointsrr cmd_classoptss r.rr s%%%%%%,,,,,,5l6QRRSM1H18LMMMHH2GHHH;;!4;;;L hnn.>.>??""Y  cee,,,WYPR-S-STTT! c r@rzmetadata.EntryPointc |j|fS#t$r@}|jjd|j}t |d|Yd}~dSd}~wwxYw)Nz" while trying to load entry-point z: )rload Exception __class____name__rr)rexrKs r.rrs~## &SS"'SS3"'''ttttts A'5A""A'rcFt|dS)Nz_=)r7strip)rs r._normalise_cmd_option_keyr$s t $ $ * *4 0 00r@desccd|DS)Nc8h|]}t|dS)r)r)ri fancy_options r. z)_normalise_cmd_options..)s% P P P< %l1o 6 6 P P Pr@rg)rs r.rr(s P P4 P P PPr@cndt|ddpi}fd|DS)N)rrrc$i|] \}}|v || Srgrg)rirjrkignores r.rz-_get_previous_entrypoints../s$ > > >TQavooAqooor@)r]r6)rr=rs @r._get_previous_entrypointsr,s@ /F D.$ / / 52E > > > >U[[]] > > >>r@cRt|ddpi}|dS)Nrrr]r2rr=s r._get_previous_scriptsr2s+ D.$ / / 52E 99& ' ''r@cRt|ddpi}|dS)Nrrrrs r._get_previous_gui_scriptsr7s* D.$ / / 52E 99] # ##r@cVttd|dS)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||dSr)r])accxs r.z_attrgetter..Hs'#q$*?*?r@r")rrsplit)attrs r. _attrgetterr<s$ 6??C Q QQr@cfd}|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 cVfdD}td|DdS)Nc3HK|]}t|VdSr)r)riiobjs r.rlz5_some_attrgetter.._acessor..Ys355!.+a..%%555555r@c3K|]}||V dSrrg)rirs r.rlz5_some_attrgetter.._acessor..Zs"881!-Q----88r@)next)rvaluesr6s` r._acessorz"_some_attrgetter.._acessorXs<5555u55588888$???r@rg)r6rs` r._some_attrgetterrKs(@@@@@ Or@author)r maintainer)readmerauthors maintainersurls dependenciesoptional_dependenciesrequires_pythonr8 script_filesrnamespace_packagesz Please migrate to implicit native namespaces instead. See https://packaging.python.org/en/latest/guides/packaging-namespace-packages/. > license_filer license_filesprovides_extrasryz metadata.nameversionzmetadata.version descriptionzmetadata.descriptionrzmetadata.long_descriptionzrequires-pythonrzmetadata.python_requiresrzmetadata.licenserzmetadata.authorzmetadata.author_emailrzmetadata.maintainerzmetadata.maintainer_emailkeywordszmetadata.keywords classifierszmetadata.classifiersrzmetadata.project_urlsr gui-scriptsrroptional-dependenciesr) rrrrrrrrrrr rSc:eZdZdZdZedededefdZdS)rQz9`{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/declaring-project-metadata/ 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<r=r c:|j||S)NrN)_DETAILSformat)clsr<r=s r.detailsz_MissingDynamic.detailss|""e"<<r(sD ######((((((%%%%%%%%""""""                          ('''''((((((-......,,,,,,!!"%%w%%% bk3 49  ~sE2D8 9 Z( ' H % %.,.~.t.u...."2N2D2E2222,L.LLLLL)S)S)))) $n$S$$$$$    Bc Bhsm B B B B4N44u4444*2>222222C.CtDzCeC3CCCC$++T++++<><<<<<   T    ..d....  t    (NTNN5NNNN&05Wc3s8m9L"&8E#t)4D+E1C1C1111QeC#,C&D!EQ#c(QQQQ?N?tCI???? ((8D>(((( $N$x~$$$$ R R R* wwX...77666 !3' 8 8$sO34   %i0  KK ( ( {{-..;;566 kk566  ''(9;UVV  {{-..  13JKK##$9;VWW /00;;566 KK/ 0 0-$,KK 233 [[)9::!. ##4"====='=====r@