mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
[3.11] gh-104018: disallow "z" format specifier in %-format of byte strings (GH-104033) (#104058)
gh-104018: disallow "z" format specifier in %-format of byte strings (GH-104033)
PEP-0682 specified that %-formatting would not support the "z" specifier,
but it was unintentionally allowed for bytes. This PR makes use of the "z"
flag an error for %-formatting in a bytestring.
Issue: GH-104018
---------
(cherry picked from commit 3ed8c88290)
Co-authored-by: John Belmonte <john@neggie.net>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
This commit is contained in:
parent
723aacb7d5
commit
10db28bfcf
3 changed files with 3 additions and 1 deletions
|
|
@ -619,6 +619,8 @@ def test_specifier_z_error(self):
|
||||||
error_msg = re.escape("unsupported format character 'z'")
|
error_msg = re.escape("unsupported format character 'z'")
|
||||||
with self.assertRaisesRegex(ValueError, error_msg):
|
with self.assertRaisesRegex(ValueError, error_msg):
|
||||||
"%z.1f" % 0 # not allowed in old style string interpolation
|
"%z.1f" % 0 # not allowed in old style string interpolation
|
||||||
|
with self.assertRaisesRegex(ValueError, error_msg):
|
||||||
|
b"%z.1f" % 0
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Disallow the "z" format specifier in %-format of bytes objects.
|
||||||
|
|
@ -714,7 +714,6 @@ _PyBytes_FormatEx(const char *format, Py_ssize_t format_len,
|
||||||
case ' ': flags |= F_BLANK; continue;
|
case ' ': flags |= F_BLANK; continue;
|
||||||
case '#': flags |= F_ALT; continue;
|
case '#': flags |= F_ALT; continue;
|
||||||
case '0': flags |= F_ZERO; continue;
|
case '0': flags |= F_ZERO; continue;
|
||||||
case 'z': flags |= F_NO_NEG_0; continue;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue