示例#1
0
 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
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 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
示例#5
0
    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
示例#6
0
    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()
示例#8
0
 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)
示例#9
0
 def format(self, value: uuid.UUID) -> str:
     try:
         return str(value)
     except ValueError as ve:
         raise fields.MarshallingError(ve)
示例#10
0
 def validate(self, value):
     if value != 'correct':
         raise fields.MarshallingError('Invalid Value')
     return True