]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106789: avoid importing pprint from sysconfig (#106790)
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>
Mon, 17 Jul 2023 09:28:33 +0000 (10:28 +0100)
committerGitHub <noreply@github.com>
Mon, 17 Jul 2023 09:28:33 +0000 (10:28 +0100)
Lib/opcode.py
Lib/sysconfig.py
Misc/NEWS.d/next/Library/2023-07-16-10-40-34.gh-issue-106789.NvyE3C.rst [new file with mode: 0644]

index bc885051c6454eb2b1c7623b909a1a62727b4604..1b36300785aaeaa9d9925638526f9d74db097092 100644 (file)
@@ -6,26 +6,14 @@ operate on bytecodes (e.g. peephole optimizers).
 
 __all__ = ["cmp_op", "hasarg", "hasconst", "hasname", "hasjrel", "hasjabs",
            "haslocal", "hascompare", "hasfree", "hasexc", "opname", "opmap",
-           "HAVE_ARGUMENT", "EXTENDED_ARG"]
-
-# It's a chicken-and-egg I'm afraid:
-# We're imported before _opcode's made.
-# With exception unheeded
-# (stack_effect is not needed)
-# Both our chickens and eggs are allayed.
-#     --Larry Hastings, 2013/11/23
-
-try:
-    from _opcode import stack_effect
-    __all__.append('stack_effect')
-except ImportError:
-    pass
-
-# _opcode_metadata may not be ready during early stages of the build
-try:
+           "stack_effect", "HAVE_ARGUMENT", "EXTENDED_ARG"]
+
+from _opcode import stack_effect
+
+import sys
+# The build uses older versions of Python which do not have _opcode_metadata
+if sys.version_info[:2] >= (3, 13):
     from _opcode_metadata import _specializations, _specialized_instructions
-except ModuleNotFoundError:
-    pass
 
 cmp_op = ('<', '<=', '==', '!=', '>', '>=')
 
index 122d441bd19f5e803975ff7c42040f489fd5bdf8..a8b5c5f7dfba5ba21c134f93db37137583694071 100644 (file)
@@ -465,10 +465,14 @@ def _get_sysconfigdata_name():
         f'_sysconfigdata_{sys.abiflags}_{sys.platform}_{multiarch}',
     )
 
+def _print_config_dict(d, stream):
+    print ("{", file=stream)
+    for k, v in sorted(d.items()):
+        print(f"    {k!r}: {v!r},", file=stream)
+    print ("}", file=stream)
 
 def _generate_posix_vars():
     """Generate the Python module containing build-time variables."""
-    import pprint
     vars = {}
     # load the installed Makefile:
     makefile = get_makefile_filename()
@@ -523,7 +527,7 @@ def _generate_posix_vars():
         f.write('# system configuration generated and used by'
                 ' the sysconfig module\n')
         f.write('build_time_vars = ')
-        pprint.pprint(vars, stream=f)
+        _print_config_dict(vars, stream=f)
 
     # Create file used for sys.path fixup -- see Modules/getpath.c
     with open('pybuilddir.txt', 'w', encoding='utf8') as f:
diff --git a/Misc/NEWS.d/next/Library/2023-07-16-10-40-34.gh-issue-106789.NvyE3C.rst b/Misc/NEWS.d/next/Library/2023-07-16-10-40-34.gh-issue-106789.NvyE3C.rst
new file mode 100644 (file)
index 0000000..532f805
--- /dev/null
@@ -0,0 +1 @@
+Remove import of :mod:``pprint`` from :mod:``sysconfig``.