-
Notifications
You must be signed in to change notification settings - Fork 89
Open
Labels
component: coreIssues related to the core libraryIssues related to the core librarycomponent: documentationIssues related to the Sphinx documentationIssues related to the Sphinx documentation
Description
Given the following code, one might expect the getter _get_bar to cause a TraitError, since the returned value (a string) is incompatible with the type declared in the Property (Int()). However, no TraitError is issued (or at least, not visibly).
The docs suggest that the intent is to validate:
you can define a Property trait by simply passing another trait. For example:
source = Property( Code )
This line defines a trait whose value is validated by the Code trait, and whose getter and setter methods are defined elsewhere on the same class.
I doubt that we could change the behaviour now without breaking lots of code, but we could at least update the documentation to be accurate.
Example code:
from traits.api import HasStrictTraits, Int, Property
class A(HasStrictTraits):
foo = Int()
bar = Property(Int(), observe="foo")
def _get_bar(self):
return "definitely not an integer"
a = A(foo=43)
print(a.bar)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
component: coreIssues related to the core libraryIssues related to the core librarycomponent: documentationIssues related to the Sphinx documentationIssues related to the Sphinx documentation