diff --git a/implementations/python/preserves/schema.py b/implementations/python/preserves/schema.py index 828d637..73b0b4b 100644 --- a/implementations/python/preserves/schema.py +++ b/implementations/python/preserves/schema.py @@ -279,7 +279,15 @@ class Definition(SchemaObject): def __setitem__(self, name, value): return safesetattr(self, name, value) +class escape: + def __init__(self, escaped): + self.escaped = escaped + def __escape_schema__(self): + return self.escaped + def encode(p, v): + if hasattr(v, '__escape_schema__'): + return preserve(v.__escape_schema__()) if p == ANY: return v if p.key == NAMED: