traitlets Dict with per_key_traits should be more specific in a TraitError
还没有人认领这个 Issue。
评估
调研方向
首先复现 issue 中的嵌套 Dict(per_key_traits) 示例,并跟踪 per_key_traits 的 Dict 验证入口。TraitError 能够识别出错的键或嵌套键路径,并清楚地报告实际的无效值时,此更改即完成;如果现有测试布局允许,请为所示案例添加回归测试覆盖。
由索引模型根据 Issue 内容生成。
描述
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'>.
- 主要语言
- Python
- 星标
- 653
- 派生
- 217
- 平均合并
- 2 天 21 小时
- 30 天内合并 PR
- 2
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ipython/traitlets 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 65/100
-
难度 1/5 1-3 小时 新手友好度 65/100
-
good first issue
难度 1/5 1 小时以内 新手友好度 85/100
-
documentation
难度 1/5 1 小时以内 新手友好度 65/100
-
难度 3/5 1-2 天 新手友好度 45/100
查看 ipython/traitlets 的全部 Issue
相似的 Issue
-
bug confirmed issue
难度 2/5 1-3 小时 新手友好度 75/100
open-webui/open-webui#30750 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
enhancement
难度 2/5 1-3 小时 新手友好度 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
-
good first issue
难度 1/5 1 小时以内 新手友好度 90/100