Example #1
0
 def format_datetime(self, data):
     """
     A hook to control how datetimes are formatted RESPECTING TIMEZONES.
     """
     if self.datetime_formatting == 'rfc-2822':
         return format_datetime(data)
     return data.isoformat()
Example #2
0
 def format_datetime(self, value):
     from tastypie.utils import format_datetime
     if self.datetime_formatting == 'rfc-2822':
         return format_datetime(value)
     if self.datetime_formatting == 'iso-8601-strict':
         # Remove microseconds to strictly adhere to iso-8601
         value = value - datetime.timedelta(microseconds=value.microsecond)
     tz = getattr(settings, "TASTYCAKE_USE_TZ", None)
     if tz:
         if isinstance(tz, basestring):
             tz = timezone.pytz.timezone(tz)
         value = timezone.make_naive(timezone.localtime(value, tz))
     return value.isoformat()
Example #3
0
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.
        
        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).
        
        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)

        return data.isoformat()
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)

        return data.isoformat()
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        data = make_naive(data)
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)
        if self.datetime_formatting == 'iso-8601-strict':
            # Remove microseconds to strictly adhere to iso-8601
            data = data - datetime.timedelta(microseconds = data.microsecond)

        return data.isoformat()
Example #6
0
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        data = make_naive(data)
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)
        if self.datetime_formatting == 'iso-8601-strict':
            # Remove microseconds to strictly adhere to iso-8601
            data = data - datetime.timedelta(microseconds=data.microsecond)

        return data.isoformat()
Example #7
0
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        data = make_naive(data)
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)
        
        if self.tzinfo:
        	data = datetime.datetime(data.year, data.month, data.day, data.hour, data.minute, data.second, data.microsecond, self.tzinfo)

        return data.isoformat()
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14+00:00".
        """
        data = make_naive(data)
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)

        if self.tzinfo:
            data = datetime.datetime(data.year, data.month, data.day,
                                     data.hour, data.minute, data.second,
                                     data.microsecond, self.tzinfo)

        return data.isoformat()
Example #9
0
 def to_simple(self, data, options):
     """
     For a piece of data, attempts to recognize it and provide a simplified
     form of something complex.
     
     This brings complex Python data structures down to native types of the
     serialization format(s).
     """
     if isinstance(data, (list, tuple)):
         return [self.to_simple(item, options) for item in data]
     if isinstance(data, dict):
         return dict((key, self.to_simple(val, options)) for (key, val) in data.iteritems())
     elif isinstance(data, Bundle):
         return dict((key, self.to_simple(val, options)) for (key, val) in data.data.iteritems())
     elif isinstance(data, ApiField):
         if isinstance(data, ToOneField):
             if data.full:
                 return self.to_simple(data.fk_resource, options)
             else:
                 return self.to_simple(data.value, options)
         elif isinstance(data, ToManyField):
             if data.full:
                 return [self.to_simple(bundle, options) for bundle in data.m2m_bundles]
             else:
                 return [self.to_simple(val, options) for val in data.value]
         else:
             return self.to_simple(data.value, options)
     elif isinstance(data, datetime.datetime):
         return format_datetime(data)
     elif isinstance(data, datetime.date):
         return format_date(data)
     elif isinstance(data, datetime.time):
         return format_time(data)
     elif isinstance(data, bool):
         return data
     elif type(data) in (long, int, float):
         return data
     elif data is None:
         return None
     else:
         return force_unicode(data)
Example #10
0
    def format_datetime(self, data):
        """
        A hook to control how datetimes are formatted.

        Can be overridden at the ``Serializer`` level (``datetime_formatting``)
        or globally (via ``settings.TASTYPIE_DATETIME_FORMATTING``).

        Default is ``iso-8601``, which looks like "2010-12-16T03:02:14".
        """
        data = make_naive(data)
        if self.datetime_formatting == 'rfc-2822':
            return format_datetime(data)

        r = data.isoformat()
        if data.microsecond:
            r = r[:23] + r[26:]
        if r.endswith('+00:00'):
            r = r[:-6] + 'Z'
        if not '+' in r:
            r = r+'Z'
        return r
Example #11
0
 def to_simple(self, data, options):
     if type(data) in (list, tuple) or isinstance(data, RepresentationSet):
         return [self.to_simple(item, options) for item in data]
     elif isinstance(data, dict):
         return dict((key, self.to_simple(val, options)) for (key, val) in data.iteritems())
     elif isinstance(data, Representation):
         object = {}
         for field_name, field_object in data.fields.items():
             object[field_name] = self.to_simple(field_object, options)
         return object
     elif isinstance(data, ApiField):
         if isinstance(data, ToOneField):
             if data.full_repr:
                 return self.to_simple(data.fk_repr, options)
             else:
                 return self.to_simple(data.value, options)
         elif isinstance(data, ToManyField):
             if data.full_repr:
                 return [self.to_simple(repr, options) for repr in data.m2m_reprs]
             else:
                 return [self.to_simple(val, options) for val in data.value]
         else:
             return self.to_simple(data.value, options)
     elif isinstance(data, datetime.datetime):
         return format_datetime(data)
     elif isinstance(data, datetime.date):
         return format_date(data)
     elif isinstance(data, datetime.time):
         return format_time(data)
     elif isinstance(data, bool):
         return data
     elif type(data) in (long, int, float):
         return data
     elif data is None:
         return None
     else:
         return force_unicode(data)