Issue #29193: A format string argument for string.Formatter.format()
is now positional-only.
diff --git a/Lib/string.py b/Lib/string.py
index c902007..bc9508c 100644
--- a/Lib/string.py
+++ b/Lib/string.py
@@ -175,14 +175,8 @@
try:
format_string, *args = args # allow the "format_string" keyword be passed
except ValueError:
- if 'format_string' in kwargs:
- format_string = kwargs.pop('format_string')
- import warnings
- warnings.warn("Passing 'format_string' as keyword argument is "
- "deprecated", DeprecationWarning, stacklevel=2)
- else:
- raise TypeError("format() missing 1 required positional "
- "argument: 'format_string'") from None
+ raise TypeError("format() missing 1 required positional "
+ "argument: 'format_string'") from None
return self.vformat(format_string, args, kwargs)
def vformat(self, format_string, args, kwargs):
diff --git a/Lib/test/test_string.py b/Lib/test/test_string.py
index 70439f8..a7b8aad 100644
--- a/Lib/test/test_string.py
+++ b/Lib/test/test_string.py
@@ -48,9 +48,8 @@
self.assertEqual(fmt.format("-{format_string}-", format_string='test'),
'-test-')
self.assertRaises(KeyError, fmt.format, "-{format_string}-")
- with self.assertWarnsRegex(DeprecationWarning, "format_string"):
- self.assertEqual(fmt.format(arg='test', format_string="-{arg}-"),
- '-test-')
+ with self.assertRaisesRegex(TypeError, "format_string"):
+ fmt.format(format_string="-{arg}-", arg='test')
def test_auto_numbering(self):
fmt = string.Formatter()