From 61ef91a958dc2bc61aba1f819a0a0b6b870f28df Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 12 Jan 2022 14:07:32 +0100 Subject: [PATCH] Allow schema encoding (auto-)escapes --- implementations/python/preserves/schema.py | 8 ++++++++ 1 file changed, 8 insertions(+) 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: