Пример #1
0
 def _deserialize(self, value, attr, data):
     if not value:  # Falsy values, e.g. '', None, [] are not valid
         raise self.fail("invalid")
     self.dateformat = self.dateformat or self.DEFAULT_FORMAT
     func = self.DATEFORMAT_DESERIALIZATION_FUNCS.get(self.dateformat)
     if func:
         try:
             return arrow.get(func(value))
         except (TypeError, AttributeError, ValueError):
             raise self.fail("invalid")
     elif self.dateformat:
         try:
             return dt.datetime.strptime(value, self.dateformat)
         except (TypeError, AttributeError, ValueError):
             raise self.fail("invalid")
     elif utils.dateutil_available:
         try:
             return arrow.get(utils.from_datestring(value))
         except TypeError:
             raise self.fail("invalid")
     else:
         warnings.warn(
             "It is recommended that you install python-dateutil "
             "for improved datetime deserialization."
         )
         raise self.fail("invalid")
Пример #2
0
 def _deserialize(self, value):
     msg = 'Could not deserialize {0!r} to a datetime object.'.format(value)
     err = ValidationError(getattr(self, 'error', None) or msg)
     if not value:  # Falsy values, e.g. '', None, [] are not valid
         raise err
     self.dateformat = self.dateformat or self.DEFAULT_FORMAT
     func = self.DATEFORMAT_DESERIALIZATION_FUNCS.get(self.dateformat)
     if func:
         try:
             return func(value)
         except (TypeError, AttributeError, ValueError):
             raise err
     elif self.dateformat:
         try:
             return dt.datetime.strptime(value, self.dateformat)
         except (TypeError, AttributeError, ValueError):
             raise err
     elif utils.dateutil_available:
         try:
             return utils.from_datestring(value)
         except TypeError:
             raise err
     else:
         warnings.warn('It is recommended that you install python-dateutil '
                       'for improved datetime deserialization.')
         raise err
Пример #3
0
 def _deserialize(self, value, attr, data):
     self.dateformat = self.dateformat or self.DEFAULT_FORMAT
     func = self.DATEFORMAT_DESERIALIZATION_FUNCS.get(self.dateformat)
     if func:
         try:
             return func(value)
         except (TypeError, AttributeError, ValueError):
             raise self.fail('invalid')
     elif self.dateformat:
         try:
             return datetime.strptime(value, self.dateformat)
         except (TypeError, AttributeError, ValueError):
             raise self.fail('invalid')
     elif utils.dateutil_available:
         try:
             return utils.from_datestring(value)
         except TypeError:
             raise self.fail('invalid')
     else:
         warnings.warn('It is recommended that you install python-dateutil '
                       'for improved datetime deserialization.')
         raise self.fail('invalid')
Пример #4
0
 def _deserialize(self, value):
     err = UnmarshallingError(
         'Cannot deserialize {0!r} to a datetime'.format(value)
     )
     self.dateformat = self.dateformat or self.DEFAULT_FORMAT
     func = DATEFORMAT_DESERIALIZATION_FUNCS.get(self.dateformat)
     if func:
         try:
             return func(value)
         except TypeError:
             raise err
         except (AttributeError, ValueError) as err:
             msg = 'Could not deserialize {0!r} to a datetime object.'.format(value)
             raise UnmarshallingError(getattr(self, 'error', None) or msg)
     elif utils.dateutil_available:
         try:
             return utils.from_datestring(value)
         except TypeError:
             raise err
     else:
         warnings.warn('It is recommended that you install python-dateutil '
                       'for improved datetime deserialization.')
         raise err
Пример #5
0
 def _deserialize(self, value, attr, data):
     if not value:  # Falsy values, e.g. '', None, [] are not valid
         raise self.fail('invalid')
     self.dateformat = self.dateformat or self.DEFAULT_FORMAT
     func = self.DATEFORMAT_DESERIALIZATION_FUNCS.get(self.dateformat)
     if func:
         try:
             return func(value)
         except (TypeError, AttributeError, ValueError):
             raise self.fail('invalid')
     elif self.dateformat:
         try:
             return dt.datetime.strptime(value, self.dateformat)
         except (TypeError, AttributeError, ValueError):
             raise self.fail('invalid')
     elif utils.dateutil_available:
         try:
             return utils.from_datestring(value)
         except TypeError:
             raise self.fail('invalid')
     else:
         warnings.warn('It is recommended that you install python-dateutil '
                       'for improved datetime deserialization.')
         raise self.fail('invalid')
Пример #6
0
def test_from_datestring():
    d = dt.datetime.now()
    rfc = utils.rfcformat(d)
    iso = d.isoformat()
    assert_date_equal(utils.from_datestring(rfc), d)
    assert_date_equal(utils.from_datestring(iso), d)
Пример #7
0
def test_from_datestring():
    d = dt.datetime.now()
    rfc = utils.rfcformat(d)
    iso = d.isoformat()
    assert_date_equal(utils.from_datestring(rfc), d)
    assert_date_equal(utils.from_datestring(iso), d)