traitlets
traitlets copied to clipboard
Container default_values are None, other traits default values are Undefined.
Is that on purpose ?
Specific trait types like List and Dict have [] and {} as default values. I am not sure we have much to put in the Container base class at all in fact.
Specific trait types like List and Dict have [] and {} as default values. I am not sure we have much to put in the Container base class at all in fact.
That in the signature:
traitlets.DottedObjectName(default_value=traitlets.Undefined,...
traitlets.ObjectName(default_value=traitlets.Undefined...
traitlets.Bytes(default_value=traitlets.Undefined...
traitlets.Complex(default_value=traitlets.Undefined...
traitlets.Type(default_value=traitlets.Undefined,...
class traitlets.ForwardDeclaredType(default_value=traitlets.Undefined...
While all container have None
:
traitlets.List(trait=None, default_value=None,...
traitlets.Set(trait=None, default_value=None...
...
Basically 18 Constructor have a signature which default_value
is traitlets.Undefined
, 4 have None
. I think the 4 containers have None as default kwarg by mistake.
(Updated title to add underscore between default & values
Yeah it is just that None
seems to stand for unspecified parameter but the constructed default value is actually not None. (We used to have an Unspecified sentinel...) Indeed we should use Undefined.