def validate(self, obj, value):
if self.allow_undefined and value is undefined:
return value
# Should validate against only one of the trait types
valid_count = 0
with obj.cross_validation_lock:
for trait_type in self.trait_types:
try:
v = trait_type._validate(obj, value)
except T.TraitError:
continue
valid_count += 1
if valid_count == 1:
# In the case of an element trait, the name is None
if self.name is not None:
setattr(obj, '_' + self.name + '_metadata',
trait_type.metadata)
return v
self.error(obj, value)
评论列表
文章目录