diff options
Diffstat (limited to 'pendulum/mixins/default.py')
-rw-r--r-- | pendulum/mixins/default.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/pendulum/mixins/default.py b/pendulum/mixins/default.py new file mode 100644 index 0000000..fdb05b0 --- /dev/null +++ b/pendulum/mixins/default.py @@ -0,0 +1,43 @@ +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() |