Skip to content

traitlets Dict does not observe value changes after initial key / value assigments #922

@mpenning

Description

@mpenning

I'm using traitlets version 5.14.3 and Python 3.12.3...

In both cases below, a TraitError is not thrown, even though None is assigned to a Unicode() field after initialization...

from traitlets import HasTraits, Dict, Unicode

class Foo(HasTraits):
    data = Dict(per_key_traits={"a_key": Unicode()})

class Bar(HasTraits):
    data = Dict(key_trait=Unicode(), value_trait=Unicode())

foo = Foo()
foo.data = {"a_key": "a_value"}
# I think this should throw a TraitError...
foo.data["a_key"] = None

bar = Bar()
bar.data = {"a_key": "a_value"}
# I think this should throw a TraitError...
bar.data["a_key"] = None

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions