def clsvisit_AnyOfObject(self, trait, dct, *args, **kwargs):
# TODO: match additional_traits as well?
for subcls in trait._class_defs():
if all(key in subcls.class_traits() for key in dct):
try:
obj = self.clsvisit(subcls, dct)
except (T.TraitError, ValueError):
pass
else:
return trait(**{name: getattr(obj, name)
for name in obj.trait_names()})
else:
raise T.TraitError("{cls}: dict representation not "
"valid in any wrapped classes"
"".format(cls=trait.__name__))
评论列表
文章目录