def __init__(self, cls_or_instance, **kwargs): super(Wildcard, self).__init__(**kwargs) error_msg = 'The type of the wildcard elements must be a subclass of fields.Raw' if isinstance(cls_or_instance, type): if not issubclass(cls_or_instance, fields.Raw): raise fields.MarshallingError(error_msg) self.container = cls_or_instance() else: if not isinstance(cls_or_instance, fields.Raw): raise fields.MarshallingError(error_msg) self.container = cls_or_instance
def format(self, value): try: value = self.parse(value) now = datetime.now(pytz.UTC) return timeago.format(value, now) except (AttributeError, ValueError) as e: raise fields.MarshallingError(e)
def format(self, value): try: if isinstance(value, ObjectId): return fields.text_type(value) elif isinstance(value, dict) and '$oid' in value: return fields.text_type(value['$oid']) elif isinstance(value, str): return value except ValueError as ve: raise fields.MarshallingError(ve)
def format(self, value): """Format the value""" try: new_value = self.parse(value) if self.dt_format == 'iso8601': return new_value.isoformat(' ') else: return fields.DateTime.format(self, value) except (AttributeError, ValueError) as e: raise fields.MarshallingError(e) except arrow.parser.ParserError as e: return value
def output(self, key, obj, **kwargs): actual_key = key if self.attribute is None else self.attribute firstname = fields.get_value(actual_key + '.firstname', obj) lastname = fields.get_value(actual_key + '.lastname', obj) value = None if firstname is None else firstname + ' ' + lastname if value is None: default = self._v('default') return self.format(default) if default else default try: data = self.format(value) except fields.MarshallingError as event: msg = 'Unable to marshal field "{0}" value "{1}": {2}'.format(key, value, str(event)) raise fields.MarshallingError(msg) return self.mask.apply(data) if self.mask else data
def output(self, key, obj, **kwargs): date = fields.get_value( key if self.attribute is None else self.attribute, obj) duration = fields.get_value( 'duration' if self.duration_attribute is None else self.duration_attribute, obj) if date is None or duration is None: default = self._v('default') return self.format(default) if default else default value = date + timedelta(seconds=duration) try: data = self.format(value) except fields.MarshallingError as error: msg = 'Unable to marshal field "{0}" value "{1}": {2}'.format( key, value, str(error)) raise fields.MarshallingError(msg) return self.mask.apply(data) if self.mask else data
def format(self, value): if isinstance(value, ObjectId): return str(value) else: raise fields.MarshallingError()
def format(self, value): """Format the value""" try: return fields.String.format(self, '{0:07d}'.format(int(value))) except ValueError as e: raise fields.MarshallingError(e)
def format(self, value: uuid.UUID) -> str: try: return str(value) except ValueError as ve: raise fields.MarshallingError(ve)
def validate(self, value): if value != 'correct': raise fields.MarshallingError('Invalid Value') return True