diff --git a/implementations/python/preserves/schema.py b/implementations/python/preserves/schema.py index ebfd2e4..becdb23 100644 --- a/implementations/python/preserves/schema.py +++ b/implementations/python/preserves/schema.py @@ -132,7 +132,11 @@ class SchemaObject: if k not in v: return None if cls.parse(pp, v[k], args) is None: return None return () - raise ValueError('Bad schema') + if p.key == AND: + for pp in p[0]: + if cls.parse(pp, v, args) is None: return None + return () + raise ValueError(f'Bad schema {p}') def __preserve__(self): raise NotImplementedError('Subclass responsibility')