fix '{…!j}' for otherwise non-serializable types (##2624)

like 'datetime'
pull/2719/head
Mike Fährmann 2 years ago
parent 7fe1f4489e
commit 42525cfe8d
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -14,6 +14,7 @@ import string
import _string
import datetime
import operator
import functools
from . import text, util
_CACHE = {}
@ -257,7 +258,7 @@ def parse_format_spec(format_spec, conversion):
"u": str.upper,
"c": str.capitalize,
"C": string.capwords,
"j": json.dumps,
"j": functools.partial(json.dumps, default=str),
"t": str.strip,
"T": util.datetime_to_timestamp_string,
"d": text.parse_timestamp,

@ -56,6 +56,7 @@ class TestFormatter(unittest.TestCase):
self._run_test("{t!d:%Y-%m-%d}", "2010-01-01")
self._run_test("{dt!T}", "1262304000")
self._run_test("{l!j}", '["a", "b", "c"]')
self._run_test("{dt!j}", '"2010-01-01 00:00:00"')
with self.assertRaises(KeyError):
self._run_test("{a!q}", "hello world")

Loading…
Cancel
Save