PyArg_ParseTuple(args, "u#", ...) generates a deprecation warning, as expected:
$ python3 --versionPython 3.11.0b4
$ python3 -c 'import _testcapi as t; t.getargs_u_hash("")'<string>:1: DeprecationWarning: getargs: The 'u' format is deprecated. Use 'U' instead.
But when I turn warnings into exceptions, something weird happens:
$ python3 -Werror -c 'import _testcapi as t; t.getargs_u_hash("")'Traceback (most recent call last): File "<string>", line 1, in <module>ValueError: character U+b4000360 is not in range [U+0000; U+10ffff]
What's going on here? The code for getargs_u_hash() looks like this:
… "Z" (pythonGH-94902)
It returned 1 (success) when warnings are turned into exceptions.
(cherry picked from commit 107c21c)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
…H-94902)
It returned 1 (success) when warnings are turned into exceptions.
(cherry picked from commit 107c21c)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
PyArg_ParseTuple(args, "u#", ...)
generates a deprecation warning, as expected:But when I turn warnings into exceptions, something weird happens:
What's going on here? The code for
getargs_u_hash()
looks like this:So it looks like
PyArg_ParseTuple()
returns true, but leavesstr
andsize
uninitialized.The text was updated successfully, but these errors were encountered: