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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions