Using entry-point `value` for non-object references
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne mit dem Lesen der im Issue beschriebenen Konstruktion von EntryPoint und des Verhaltens von entry_points(group=...), und untersuche anschließend die Änderungen aus gh-518. Bestimme, ob Entry-Point-Werte, die keine Objekte sind, akzeptiert werden sollten und ob ungültige Einträge bei der Gruppenauswahl übersprungen werden können; abgeschlossen ist die Aufgabe, wenn eine dokumentierte Entscheidung und das entsprechende Verhalten oder Tests vorliegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
napari uses the entry-point value for non-object references, i.e. a file path to load metadata from (i.e. as module:file_path).
This pattern seemed like a good idea for certain use cases. The main idea is that only reading metadata effectively ensures that we do no costly imports until we actually need to (which may be never).
Now, I noticed that since gh-518 such (ab)use is more heavily policed, since loading will fail immediately and not just when EntryPoint.load() is actually called.
So I suppose I have to comments/questions:
- The idea of (ab)using the entry-point for a metadata file seems neat to me. Would it be OK to accept it as use (even if not common or advertised) or is there a reason against it?
- Raising an error at
EntryPointconstruction itself fails already atimportlib_metadata.entry_points(group="my_group"), which means that a bad entry-point cannot be skipped (unlike if it fails forEntryPoint.load()which may be guarded with a try/except).
EDIT: I just noticed thatgroup=seems to be applied afterEntryPointcreation. So a single bad entry-point will break any project loading entry-points.
Neither of these are big issues, in practice a filename usually conforms (or can be made to conform) to a Python object reference, so there is nothing stopping us from just keeping to use it. But it seemed like a good thing to check in, if just for awareness that this pattern exists in the wild.
- Vorherrschende Sprache
- Python
- Sterne
- 142
- Forks
- 97
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python/importlib_metadata
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
python/importlib_metadata#535 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
python/importlib_metadata#528 · 4 Kommentare ·
-
documentation help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
python/importlib_metadata#526 · 6 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
python/importlib_metadata#525 · 2 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
python/importlib_metadata#540 · 1 Kommentar ·
Alle Issues in python/importlib_metadata
Ähnliche Issues
-
link-check link-check:sphinx-theme
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
OpenHands/extensions#626 · 1 Kommentar ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
CSCfi/sd-search-api#39 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100