summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2023-07-17 09:28:33 (GMT)
committerGitHub <noreply@github.com>2023-07-17 09:28:33 (GMT)
commit5ecedbd26692b9fbdd7aad81b991869bf650f929 (patch)
tree443aec6660dfe3df13bb39cfddc6d24bd20438bc
parent7aa89e505d893cd5e6f33b84d66e5fa769089931 (diff)
downloadcpython-5ecedbd26692b9fbdd7aad81b991869bf650f929.zip
cpython-5ecedbd26692b9fbdd7aad81b991869bf650f929.tar.gz
cpython-5ecedbd26692b9fbdd7aad81b991869bf650f929.tar.bz2
gh-106789: avoid importing pprint from sysconfig (#106790)
-rw-r--r--Lib/opcode.py26
-rw-r--r--Lib/sysconfig.py8
-rw-r--r--Misc/NEWS.d/next/Library/2023-07-16-10-40-34.gh-issue-106789.NvyE3C.rst1
3 files changed, 14 insertions, 21 deletions
diff --git a/Lib/opcode.py b/Lib/opcode.py
index bc88505..1b36300 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -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 = ('<', '<=', '==', '!=', '>', '>=')
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index 122d441..a8b5c5f 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -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
index 0000000..532f805
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-07-16-10-40-34.gh-issue-106789.NvyE3C.rst
@@ -0,0 +1 @@
+Remove import of :mod:``pprint`` from :mod:``sysconfig``.