traitlets Dict with per_key_traits should be more specific in a TraitError
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 38/100
Rechercherichtung
Beginne damit, das im Issue gezeigte Beispiel für ein verschachteltes Dict(per_key_traits) zu reproduzieren, und verfolge den Einstiegspunkt der Dict-Validierung für per_key_traits. Die Änderung ist abgeschlossen, wenn TraitError den fehlerhaften Schlüssel oder den Pfad des verschachtelten Schlüssels identifiziert und den tatsächlich ungültigen Wert eindeutig meldet; füge eine Regressionstestabdeckung für den gezeigten Fall hinzu, falls die vorhandene Teststruktur dies zulässt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I'm using traitlets version 5.14.3 and Python 3.12.3...
- The error raised by
Dict()withper_key_traitsshould specify the offending key name in the error. - The error raised by
Dict()withper_key_traitsdoesn't handle nested dicts well
Example:
from traitlets import HasTraits, Dict, Unicode
class Foo(HasTraits):
bar = Dict(per_key_traits={"this": Unicode(), "that": Dict(per_key_traits={"that": Unicode()})})
foo = Foo()
# key that should be a Dict()...
foo.bar = {"this": "valid", "that": False}
The error raised is:
traitlets.traitlets.TraitError: Values of the 'bar' trait of a Foo instance must be a dict, but a value of False <class 'bool'> was specified.
It would be better if it specified the offending chain of keys in the error... Example:
traitlets.traitlets.TraitError: Value of bar['that'] for a Foo instance must be a dict, but the specified value at bar['that'] was False <class 'bool'>.
- Vorherrschende Sprache
- Python
- Sterne
- 653
- Forks
- 221
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
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 ipython/traitlets
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Add Deprecation of Trait Declarations via Classes to Migration NotesEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offengood first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
documentation
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
-
traitlets.Set should support generic type annotations for type safetyEvtl. vergeben @GruffElixir hat das vor 33 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Alle Issues in ipython/traitlets
Ähnliche Issues
-
namespace operations
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
EclipseFdn/open-vsx.org#14043 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feedback simulation workshop
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
githubnext/gh-aw-workshop#4455 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Triage 🩺
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
[BUG] Container scenario crashes without expected_recovery_time, kube DNS example uses retry_waitOffenneeds-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
krkn-chaos/krkn#1627 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
NousResearch/hermes-agent#136483 ·
Maintainer antworten meist innerhalb von 1 Tag