From ac3addf813138460d53c058a8e9e78b030d2bea5 Mon Sep 17 00:00:00 2001 From: Stefano Rivera Date: Thu, 21 May 2026 21:04:50 -0400 Subject: [PATCH] gh-150208: Avoid double-quoting string values in sysconfigdata String values from ``pyconfig.h`` were rendered into ``sysconfigdata`` variables, retaining the quotes. --- Lib/sysconfig/__init__.py | 3 +++ Lib/test/test_sysconfig.py | 6 ++++++ .../2026-05-21-21-04-43.gh-issue-150208.VOkxRG.rst | 2 ++ 3 files changed, 11 insertions(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-05-21-21-04-43.gh-issue-150208.VOkxRG.rst diff --git a/Lib/sysconfig/__init__.py b/Lib/sysconfig/__init__.py index 298256a5b23a9c7..719b306b02b6e38 100644 --- a/Lib/sysconfig/__init__.py +++ b/Lib/sysconfig/__init__.py @@ -437,6 +437,7 @@ def parse_config_h(fp, vars=None): import re define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") + quoted_re = re.compile('^"(.*)"$') while True: line = fp.readline() @@ -445,6 +446,8 @@ def parse_config_h(fp, vars=None): m = define_rx.match(line) if m: n, v = m.group(1, 2) + if mq := quoted_re.match(v): + v = mq.group(1) try: if n in _ALWAYS_STR: raise ValueError diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index e6433f76a977b3b..e6f99581f0b7a66 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -576,6 +576,12 @@ def test_linux_ext_suffix(self): expected_suffixes = 'x86_64-linux-gnu.so', 'x86_64-linux-musl.so' self.assertEndsWith(suffix, expected_suffixes) + @unittest.skipIf(sysconfig.get_config_var('PY_BUILTIN_HASHLIB_HASHES') is None, + 'PY_BUILTIN_HASHLIB_HASHES required for this test') + def test_PY_BUILTIN_HASHLIB_HASHES_in_vars(self): + vars = sysconfig.get_config_vars() + self.assertFalse(vars['PY_BUILTIN_HASHLIB_HASHES'].startswith('"')) + @unittest.skipUnless(sys.platform == 'android', 'Android-specific test') def test_android_ext_suffix(self): machine = platform.machine() diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-21-21-04-43.gh-issue-150208.VOkxRG.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-21-21-04-43.gh-issue-150208.VOkxRG.rst new file mode 100644 index 000000000000000..e9bc1d9e976523b --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-21-21-04-43.gh-issue-150208.VOkxRG.rst @@ -0,0 +1,2 @@ +Avoid double-quoting string values from ``pyconfig.h`` in ``sysconfigdata`` +variables.