44 lines
945 B
Python
44 lines
945 B
Python
from ..formatting import Formatter
|
|
|
|
|
|
_formatter = Formatter()
|
|
|
|
|
|
class FormattableMixin(object):
|
|
|
|
_formatter = _formatter
|
|
|
|
def format(self, fmt, locale=None):
|
|
"""
|
|
Formats the instance using the given format.
|
|
|
|
:param fmt: The format to use
|
|
:type fmt: str
|
|
|
|
:param locale: The locale to use
|
|
:type locale: str or None
|
|
|
|
:rtype: str
|
|
"""
|
|
return self._formatter.format(self, fmt, locale)
|
|
|
|
def for_json(self):
|
|
"""
|
|
Methods for automatic json serialization by simplejson
|
|
|
|
:rtype: str
|
|
"""
|
|
return str(self)
|
|
|
|
def __format__(self, format_spec):
|
|
if len(format_spec) > 0:
|
|
if "%" in format_spec:
|
|
return self.strftime(format_spec)
|
|
|
|
return self.format(format_spec)
|
|
|
|
return str(self)
|
|
|
|
def __str__(self):
|
|
return self.isoformat()
|