Source code for yankee.json.schema.schema

from yankee.base import schema
import ujson as json
from .mixin import JsonMixin
from .fields import List

[docs]class Schema(JsonMixin, schema.Schema):
[docs] def load(self, obj): if self.name is not None or isinstance(obj, dict): return super().load(obj) elif isinstance(obj, str): return super().load(json.loads(obj)) elif isinstance(obj, bytes): return super().load(json.loads(obj.decode()))
[docs] def load_batch(self, obj): if self.name is not None or isinstance(obj, list): return super().load_batch(obj) elif isinstance(obj, str): return super().load_batch(json.loads(obj)) elif isinstance(obj, bytes): return super().load_batch(json.loads(obj.decode()))
[docs]class PolymorphicSchema(JsonMixin, schema.PolymorphicSchema): pass
[docs]class RegexSchema(JsonMixin, schema.RegexSchema): pass
[docs]class ZipSchema(JsonMixin, schema.ZipSchema): pass