def value_to_string(self, obj): val = self._get_val_from_obj(obj) if val is None: data = '' else: data = datetime_safe.new_date(val).strftime("%Y-%m-%d") return data
def default(self, o): # if isinstance(o, GEOSGeometry): # return o.wkt if(hasattr(o, "__iter__")): iterable = iter(o) return list(iterable) elif(hasattr(o, "__add__") and hasattr(o, "__sub__") and hasattr(o, "__mul__")): return float(o) elif isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.isoformat() elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) elif isinstance(o, Promise): return force_unicode(o) elif isinstance(o, Pelicula): the_dict = o.__dict__ the_dict['titulo'] = unicode(o) return the_dict elif(hasattr(o, "__class__")): return o.__dict__ else: return str(o)
def render(self, value): if not value: return "" try: return value.strftime(self.formats[0]) except: return datetime_safe.new_date(value).strftime(self.formats[0])
def render(self, name, value, attrs=None): if value is None: value = '' elif hasattr(value, 'strftime'): value = datetime_safe.new_date(value) value = value.strftime(self.format) return super(DateInput, self).render(name, value, attrs)
def flatten_data(self, follow, obj=None): val = self._get_val_from_obj(obj) if val is None: data = '' else: data = datetime_safe.new_date(val).strftime("%Y-%m-%d") return {self.attname: data}
def _format_value(self, value): if value is None: return '' elif hasattr(value, 'strftime'): value = datetime_safe.new_date(value) return value.strftime(self.format) return value
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) elif isinstance(o, decimal.Decimal): return str(o) elif isinstance(o, Respuesta): return o.__dict__ elif isinstance(o, models.Model): aux = o.__dict__ return aux elif isinstance(o, ModelState): return "x" elif isinstance(o, QuerySet): data = [] for item in o: data.append(item.__dict__) return data else: return super(MyDjangoJSONEncoder, self).default(o)
def construct(self, thing): """ Dispatch, all types are routed through here. """ ret = None if isinstance(thing, str): ret = thing elif isinstance(thing, QuerySet): ret = self._qs(thing) elif isinstance(thing, (tuple, list)): ret = self._list(thing) elif isinstance(thing, dict): ret = self._dict(thing) elif isinstance(thing, decimal.Decimal): ret = str(thing) elif isinstance(thing, Model): ret = self._model(thing) elif isinstance(thing, datetime.datetime): o2 = thing.replace(tzinfo=dateutil.tz.tzutc()) return datetime.datetime.strftime(o2, self.DATETIME_FORMAT) elif isinstance(thing, datetime.date): d = datetime_safe.new_date(thing) return d.strftime(self.DATE_FORMAT) elif isinstance(thing, datetime.time): return thing.strftime(self.TIME_FORMAT) else: ret = smart_unicode(thing, strings_only=True) return ret
def _format_value(self, value): if self.is_localized and not self.manual_format: return formats.localize_input(value) elif hasattr(value, 'strftime'): value = datetime_safe.new_date(value) return value.strftime(self.format) return value
def get_db_prep_lookup(self, lookup_type, value): if lookup_type in ('range', 'in'): value = [smart_unicode(v) for v in value] elif lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte') and hasattr(value, 'strftime'): value = datetime_safe.new_date(value).strftime('%Y-%m-%d') else: value = smart_unicode(value) return Field.get_db_prep_lookup(self, lookup_type, value)
def value_to_db_date(self, value): """ Transform a date value to an object compatible with what is expected by the backend driver for date columns. """ if value is None: return None return datetime_safe.new_date(value).strftime('%Y-%m-%d')
def urls(self, plugin_name, easy_instance_field): if isinstance(easy_instance_field.field, models.DateField): d = easy_instance_field.raw_value return [mark_safe(u'%s%s/%s/%s/%s/%s/' % ( easy_instance_field.model.url(), plugin_name, easy_instance_field.field.name, str(d.year), datetime_safe.new_date(d).strftime('%b').lower(), d.day))]
def get_db_prep_save(self, value): # Casts dates into string format for entry into database. if value is not None: try: value = datetime_safe.new_date(value).strftime('%Y-%m-%d') except AttributeError: # If value is already a string it won't have a strftime method, # so we'll just let it pass through. pass return Field.get_db_prep_save(self, value)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%sT%sZ" % (self.DATE_FORMAT, self.TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) else: return super(SolrJSONEncoder, self).default(o)
def format_date(self, data): if self.datetime_formatting != 'rfc-2822': return super(DatastreamSerializer, self).format_date(data) # We can't use strftime() because it produces locale-dependant results, so # we have to map english month and day names manually months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',) # Support datetime objects older than 1900 date = datetime_safe.new_date(data) # We do this ourselves to be timezone aware, email.Utils is not tz aware month = months[date.month - 1] return date.strftime('%%d %s %%Y' % month)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return rfc3339(d) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) elif isinstance(o, decimal.Decimal): return str(o) else: return super(RESTfulJSONEncoder, self).default(o)
def encode_type(o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%s %s" % (DATE_FORMAT, TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(TIME_FORMAT) elif isinstance(o, decimal.Decimal): return str(o) else: return o
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return defaultfilters.date(d, "SHORT_DATE_FORMAT") elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return defaultfilters.date(d, "SHORT_DATE_FORMAT") elif isinstance(o, datetime.time): return defaultfilters.time(o, "H:i") elif isinstance(o, decimal.Decimal): return str(o) else: return super(JSONEncoder, self).default(o)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) elif isinstance(o, decimal.Decimal): return str(o) else: return super(DjangoJSONEncoder, self).default(o)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return int(time.mktime(d.timetuple())) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return int(time.mktime(d.timetuple())) elif isinstance(o, datetime.time): return int(time.mktime(o.timetuple())) elif isinstance(o, decimal.Decimal): return str(o) elif isinstance(o, FieldFile): return unicode(o.url) else: return super(DjangoExtJSONEncoder, self).default(o)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) output = d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT)) return "%s.%s" % (output, d.microsecond) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): output = o.strftime(self.TIME_FORMAT) return "%s.%s" % (output, o.microsecond) elif isinstance(o, decimal.Decimal): return str(o) else: return super(DjangoJSONEncoder, self).default(o)
def render(self, name, value, attrs=None): if value is None: value = "" elif hasattr(value, "strftime"): value = datetime_safe.new_date(value) value = value.strftime(self.format) if attrs is None: attrs = {} dev = get_current_device() istyle_key, istyle_value = switch_istyle(dev.short_carrier, "numeric") if istyle_key and istyle_value: attrs[istyle_key] = istyle_value return super(MobileDateInput, self).render(name, value, attrs)
def default(self, o): if isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) elif isinstance(o, decimal.Decimal): return str(o) else: try: return super(ResilientJSONEncoder, self).default(o) except Exception: return repr(o)
def localize_input(value, default=None): """ Checks if an input value is a localizable type and returns it formatted with the appropriate formatting string of the current locale. """ if isinstance(value, datetime.datetime): value = datetime_safe.new_datetime(value) format = smart_str(default or get_format('DATETIME_INPUT_FORMATS')[0]) return value.strftime(format) elif isinstance(value, datetime.date): value = datetime_safe.new_date(value) format = smart_str(default or get_format('DATE_INPUT_FORMATS')[0]) return value.strftime(format) elif isinstance(value, datetime.time): format = smart_str(default or get_format('TIME_INPUT_FORMATS')[0]) return value.strftime(format) return value
def value_from_datadict(self, data, files, name): y,m,d = self.parse_date_from_datadict(data, files, name) hr,min,sec = self.parse_time_from_datadict(data, files, name) if y == m == d == "0": return None if y and m and d: if settings.USE_L10N: input_format = get_format('DATE_INPUT_FORMATS')[0] try: date_value = datetime.datetime(int(y), int(m), int(d), int(hr), int(min), int(sec)) except ValueError, ve: logger.error("Value Error: %s", ve) pass else: date_value = datetime_safe.new_date(date_value) return date_value.strftime(input_format) else: return '%s-%s-%s %s:%s:%s' % (y, m, d, hr, min, sec)
def value_from_datadict(self, data, files, name): y = data.get(self.year_field % name) m = data.get(self.month_field % name) if y == m == "0": return None if y and m: if settings.USE_L10N: input_format = get_format('DATE_INPUT_FORMATS')[0] try: date_value = datetime.date(int(y), int(m), 1) except ValueError: return '%s-%s-%s' % (y, m, 1) else: date_value = datetime_safe.new_date(date_value) return date_value.strftime(input_format) else: return '%s-%s-%s' % (y, m, 1) return data.get(name, None)
def localize_input(value, default=None): """ Checks if an input value is a localizable type and returns it formatted with the appropriate formatting string of the current locale. """ if isinstance(value, (decimal.Decimal, float) + six.integer_types): return number_format(value) elif isinstance(value, datetime.datetime): value = datetime_safe.new_datetime(value) format = force_str(default or get_format("DATETIME_INPUT_FORMATS")[0]) return value.strftime(format) elif isinstance(value, datetime.date): value = datetime_safe.new_date(value) format = force_str(default or get_format("DATE_INPUT_FORMATS")[0]) return value.strftime(format) elif isinstance(value, datetime.time): format = force_str(default or get_format("TIME_INPUT_FORMATS")[0]) return value.strftime(format) return value
def value_from_datadict(self, data, files, name): y = data.get(self.year_field % name) m = data.get(self.month_field % name) d = data.get(self.day_field % name) if y == m == d == '': return None if y is not None and m is not None and d is not None: if settings.USE_L10N: input_format = get_format('DATE_INPUT_FORMATS')[0] try: date_value = datetime.date(int(y), int(m), int(d)) except ValueError: pass else: date_value = datetime_safe.new_date(date_value) return date_value.strftime(input_format) # Return pseudo-ISO dates with zeros for any unselected values, # e.g. '2017-0-23'. return '%s-%s-%s' % (y or 0, m or 0, d or 0) return data.get(name)
def default(self, o): def _call_or_access(x): """Call if callable, otherwise just access.""" return x() if hasattr(x, '__call__') else x if hasattr(o, 'as_dict'): # TODO as_dict circular reference checking fail d = _call_or_access(o.as_dict) if isinstance(d, dict): return d else: raise TypeError("as_dict method did not return a dict") elif hasattr(o, 'as_list'): # TODO as_list circular reference checking fail l = _call_or_access(o.as_list) if isinstance(l, list): return l else: raise TypeError("as_list method did not return a list") elif isinstance(o, QuerySet): # treat as list return list(o) elif isinstance(o, Model): return self._model_as_dict(o) elif isinstance(o, Promise): # see http://code.djangoproject.com/ticket/5868 return force_unicode(o) elif isinstance(o, Decimal): # json.dumps() cant handle Decimal return str(o) elif isinstance(o, datetime.datetime): d = datetime_safe.new_datetime(o) return d.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT)) elif isinstance(o, datetime.date): d = datetime_safe.new_date(o) return d.strftime(self.DATE_FORMAT) elif isinstance(o, datetime.time): return o.strftime(self.TIME_FORMAT) else: return super(ExtendedJSONEncoder, self).default(o)
def localize_input(value, default=None): """ Checks if an input value is a localizable type and returns it formatted with the appropriate formatting string of the current locale. """ if isinstance(value, six.string_types): # Handle strings first for performance reasons. return value elif isinstance(value, bool): # Don't treat booleans as numbers. return six.text_type(value) elif isinstance(value, (decimal.Decimal, float) + six.integer_types): return number_format(value) elif isinstance(value, datetime.datetime): value = datetime_safe.new_datetime(value) format = force_str(default or get_format('DATETIME_INPUT_FORMATS')[0]) return value.strftime(format) elif isinstance(value, datetime.date): value = datetime_safe.new_date(value) format = force_str(default or get_format('DATE_INPUT_FORMATS')[0]) return value.strftime(format) elif isinstance(value, datetime.time): format = force_str(default or get_format('TIME_INPUT_FORMATS')[0]) return value.strftime(format) return value
def _format_value(self, value): if hasattr(value, 'strftime'): value = datetime_safe.new_date(value) return value.strftime(self.format) return value
def fmt_date(o): d = datetime_safe.new_date(o) return d.strftime(DATE_FORMAT)