[formatter] do NOT apply :J to strings (#2833)

This commit is contained in:
Mike Fährmann
2022-08-16 16:41:19 +02:00
parent 590f2e270c
commit 6990ad0ba8
2 changed files with 7 additions and 5 deletions

View File

@@ -296,12 +296,14 @@ def _parse_maxlen(format_spec, default):
def _parse_join(format_spec, default):
separator, _, format_spec = format_spec.partition(_SEPARATOR)
separator = separator[1:]
join = separator[1:].join
fmt = _build_format_func(format_spec, default)
def join(obj):
return fmt(separator.join(obj))
return join
def apply_join(obj):
if isinstance(obj, str):
return fmt(obj)
return fmt(join(obj))
return apply_join
def _parse_replace(format_spec, default):

View File

@@ -177,7 +177,7 @@ class TestFormatter(unittest.TestCase):
self._run_test("{l:J - />20}", " a - b - c")
self._run_test("{a:J/}" , self.kwdict["a"])
self._run_test("{a:J, /}" , ", ".join(self.kwdict["a"]))
self._run_test("{a:J, /}" , self.kwdict["a"])
def test_replace(self):
self._run_test("{a:Rh/C/}" , "CElLo wOrLd")