Show More
@@ -356,6 +356,9 b' class TraitType(object):' | |||||
356 | """Create a new instance of the default value.""" |
|
356 | """Create a new instance of the default value.""" | |
357 | return self.default_value |
|
357 | return self.default_value | |
358 |
|
358 | |||
|
359 | def decorate(self, obj): | |||
|
360 | pass | |||
|
361 | ||||
359 | def instance_init(self, obj): |
|
362 | def instance_init(self, obj): | |
360 | """This is called by :meth:`HasTraits.__new__` to finish init'ing. |
|
363 | """This is called by :meth:`HasTraits.__new__` to finish init'ing. | |
361 |
|
364 | |||
@@ -559,7 +562,9 b' class HasTraits(py3compat.with_metaclass(MetaHasTraits, object)):' | |||||
559 | pass |
|
562 | pass | |
560 | else: |
|
563 | else: | |
561 | if isinstance(value, TraitType): |
|
564 | if isinstance(value, TraitType): | |
562 |
value. |
|
565 | value.decorate(inst) | |
|
566 | if key not in kw: | |||
|
567 | value.instance_init(inst) | |||
563 |
|
568 | |||
564 | return inst |
|
569 | return inst | |
565 |
|
570 | |||
@@ -872,9 +877,9 b' class Type(ClassBasedTraitType):' | |||||
872 | return result + ' or None' |
|
877 | return result + ' or None' | |
873 | return result |
|
878 | return result | |
874 |
|
879 | |||
875 |
def |
|
880 | def decorate(self, obj): | |
876 | self._resolve_classes() |
|
881 | self._resolve_classes() | |
877 |
super(Type, self). |
|
882 | super(Type, self).decorate(obj) | |
878 |
|
883 | |||
879 | def _resolve_classes(self): |
|
884 | def _resolve_classes(self): | |
880 | if isinstance(self.klass, py3compat.string_types): |
|
885 | if isinstance(self.klass, py3compat.string_types): | |
@@ -981,9 +986,9 b' class Instance(ClassBasedTraitType):' | |||||
981 |
|
986 | |||
982 | return result |
|
987 | return result | |
983 |
|
988 | |||
984 |
def |
|
989 | def decorate(self, obj): | |
985 | self._resolve_classes() |
|
990 | self._resolve_classes() | |
986 |
super(Instance, self). |
|
991 | super(Instance, self).decorate(obj) | |
987 |
|
992 | |||
988 | def _resolve_classes(self): |
|
993 | def _resolve_classes(self): | |
989 | if isinstance(self.klass, py3compat.string_types): |
|
994 | if isinstance(self.klass, py3compat.string_types): | |
@@ -1078,16 +1083,13 b' class Union(TraitType):' | |||||
1078 | self.default_value = self.trait_types[0].get_default_value() |
|
1083 | self.default_value = self.trait_types[0].get_default_value() | |
1079 | super(Union, self).__init__(**metadata) |
|
1084 | super(Union, self).__init__(**metadata) | |
1080 |
|
1085 | |||
1081 | def _resolve_classes(self): |
|
1086 | def decorate(self, obj): | |
1082 | for trait_type in self.trait_types: |
|
1087 | for trait_type in self.trait_types: | |
1083 | trait_type.name = self.name |
|
1088 | trait_type.name = self.name | |
1084 | trait_type.this_class = self.this_class |
|
1089 | trait_type.this_class = self.this_class | |
1085 | if hasattr(trait_type, '_resolve_classes'): |
|
1090 | if hasattr(trait_type, '_resolve_classes'): | |
1086 | trait_type._resolve_classes() |
|
1091 | trait_type._resolve_classes() | |
1087 |
|
1092 | super(Union, self).decorate(obj) | ||
1088 | def instance_init(self, obj): |
|
|||
1089 | self._resolve_classes() |
|
|||
1090 | super(Union, self).instance_init(obj) |
|
|||
1091 |
|
1093 | |||
1092 | def validate(self, obj, value): |
|
1094 | def validate(self, obj, value): | |
1093 | for trait_type in self.trait_types: |
|
1095 | for trait_type in self.trait_types: | |
@@ -1468,12 +1470,12 b' class Container(Instance):' | |||||
1468 | validated.append(v) |
|
1470 | validated.append(v) | |
1469 | return self.klass(validated) |
|
1471 | return self.klass(validated) | |
1470 |
|
1472 | |||
1471 |
def |
|
1473 | def decorate(self, obj): | |
1472 | if isinstance(self._trait, TraitType): |
|
1474 | if isinstance(self._trait, TraitType): | |
1473 | self._trait.this_class = self.this_class |
|
1475 | self._trait.this_class = self.this_class | |
1474 | if hasattr(self._trait, '_resolve_classes'): |
|
1476 | if hasattr(self._trait, '_resolve_classes'): | |
1475 | self._trait._resolve_classes() |
|
1477 | self._trait._resolve_classes() | |
1476 |
super(Container, self). |
|
1478 | super(Container, self).decorate(obj) | |
1477 |
|
1479 | |||
1478 |
|
1480 | |||
1479 | class List(Container): |
|
1481 | class List(Container): | |
@@ -1639,13 +1641,13 b' class Tuple(Container):' | |||||
1639 | validated.append(v) |
|
1641 | validated.append(v) | |
1640 | return tuple(validated) |
|
1642 | return tuple(validated) | |
1641 |
|
1643 | |||
1642 |
def |
|
1644 | def decorate(self, obj): | |
1643 | for trait in self._traits: |
|
1645 | for trait in self._traits: | |
1644 | if isinstance(trait, TraitType): |
|
1646 | if isinstance(trait, TraitType): | |
1645 | trait.this_class = self.this_class |
|
1647 | trait.this_class = self.this_class | |
1646 | if hasattr(trait, '_resolve_classes'): |
|
1648 | if hasattr(trait, '_resolve_classes'): | |
1647 | trait._resolve_classes() |
|
1649 | trait._resolve_classes() | |
1648 |
super(Container, self). |
|
1650 | super(Container, self).decorate(obj) | |
1649 |
|
1651 | |||
1650 |
|
1652 | |||
1651 | class Dict(Instance): |
|
1653 | class Dict(Instance): |
General Comments 0
You need to be logged in to leave comments.
Login now