def serialize(self, obj, valid=True): if obj is None: value = self.empty_value elif dict in self.types: value = {} if self.additional_properties: iterator = obj.keys() else: iterator = self._attributes.keys() for key in iterator: if key.startswith("$"): try: val = data_types.for_key(key).serialize(obj) except NotImplementedError: val = obj.get(key, None) else: val = obj.get(key, None) if key in self._attributes: val = self._attributes[key].serialize(val) if val is not None: value[key] = val else: value = self.types[0](obj) if valid: utils.validate(value, self.definition) return value
def resolve(self, obj, client): if obj is None: return self.empty_value if PROPERTIES in self.definition: key = list(self.definition[PROPERTIES].keys())[0] obj = data_types.for_key(key).resolve(obj, client) return obj