Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Python-de] Re: importlib.metadata: Keys funktionieren nicht, wenn es mehrere gibt

0 views
Skip to first unread message

Hartmut Goebel

unread,
Jan 2, 2023, 10:46:40 AM1/2/23
to
Am 02.01.23 um 15:00 schrieb c.b...@posteo.jp:
> Das funktioniert aber nicht, wenn man z.B. mehrere "Classifier" oder
> "Project-URL" in den Meta-Daten des Paketes hat.
>
> importlib.metadata.metadata['mypackage']['Project-URL']

Muss das nicht sein

a) eine Funktionsaufruf: importlib.metadata.metadata('mypackage')

b) get_all('Project-Url')

denn die Doku [1] sagt:

Note: The actual type of the object returned by |metadata()| is an
implementation detail and *should be accessed only through the
interface described by the **PackageMetadata protocol
<https://importlib-metadata.readthedocs.io/en/latest/api.html#importlib_metadata.PackageMetadata>**.*

[1]
https://docs.python.org/3/library/importlib.metadata.html#distribution-metadata*
*

--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://test.goe-con.de/blog/2019/finger-weg-von-link-verkuerzern/
Kolumne:
https://test.goe-con.de/blog/cissp-gefluester/2012-04-compliance-bringt-keine-sicherheit/

c.b...@posteo.jp

unread,
Jan 2, 2023, 4:21:25 PM1/2/23
to
Hallo Hartmut,

danke für die Rückmeldung.

Am 02.01.2023 16:46 schrieb Hartmut Goebel:
> b) get_all('Project-Url')
>
> denn die Doku [1] sagt:

Die Doku ist da sehr kryptisch, wenn man den Hintergrund nicht versteht.
Und obwohl ich jetzt weiß, durch dich, wie es geht, kapiere ich nicht
warum.

Warum steht get_all() nicht in der Doku von "importlib.metadata" und
stattdessen in einer externen Quelle?

In dieser Quelle ist von einem Objekt des Typs
"importlib_metadata.PackageMetadata" die Rede.
Ich bekomme aber ein "email.message.Message" Objekt geliefert.
Das passt nicht zusammen, vom Verständnis her. ;)

SG
Christian

Hartmut Goebel

unread,
Jan 3, 2023, 2:07:52 PM1/3/23
to
Am 02.01.23 um 22:21 schrieb c.b...@posteo.jp:
> Warum steht get_all() nicht in der Doku von "importlib.metadata" und
> stattdessen in einer externen Quelle?

Das weiß ich auch nicht. :-) Immerhin verweist die Doku von
"importlib.metadata" auf die externe. Nützt halt leider wenig, wenn man
pydoc nutzt.

--
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer
Information Security Management, Security Governance, Secure Software
Development

Goebel Consult, Landshut
http://www.goebel-consult.de

Blog: https://test.goe-con.de/blog/2021/debugging-python-_frozen_importlib/
Kolumne:
https://test.goe-con.de/blog/cissp-gefluester/2012-09-steht-ein-manta-fahrer-vor-der-uni/

0 new messages