diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-12-17 14:36:26 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-12-17 14:36:33 +0000 |
commit | 665666d6f4213da8db57ebb480947b7caf1fe382 (patch) | |
tree | 0cac5d322dfe861a6de62b04fb916cef6dbe4510 /src/pendulum/mixins | |
parent | Releasing debian version 3.0.0~a1-2. (diff) | |
download | pendulum-665666d6f4213da8db57ebb480947b7caf1fe382.tar.xz pendulum-665666d6f4213da8db57ebb480947b7caf1fe382.zip |
Merging upstream version 3.0.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/pendulum/mixins')
-rw-r--r-- | src/pendulum/mixins/__init__.py | 0 | ||||
-rw-r--r-- | src/pendulum/mixins/default.py | 37 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/pendulum/mixins/__init__.py b/src/pendulum/mixins/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pendulum/mixins/__init__.py diff --git a/src/pendulum/mixins/default.py b/src/pendulum/mixins/default.py new file mode 100644 index 0000000..f2531f3 --- /dev/null +++ b/src/pendulum/mixins/default.py @@ -0,0 +1,37 @@ +from __future__ import annotations + +from pendulum.formatting import Formatter + + +_formatter = Formatter() + + +class FormattableMixin: + _formatter: Formatter = _formatter + + def format(self, fmt: str, locale: str | None = None) -> str: + """ + Formats the instance using the given format. + + :param fmt: The format to use + :param locale: The locale to use + """ + return self._formatter.format(self, fmt, locale) + + def for_json(self) -> str: + """ + Methods for automatic json serialization by simplejson. + """ + return self.isoformat() + + def __format__(self, format_spec: str) -> str: + 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) -> str: + return self.isoformat() |