Skip to content

Commit

Permalink
gh-106789: avoid importing pprint from sysconfig (#106790)
Browse files Browse the repository at this point in the history
  • Loading branch information
iritkatriel committed Jul 17, 2023
1 parent 7aa89e5 commit 5ecedbd
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 21 deletions.
26 changes: 7 additions & 19 deletions Lib/opcode.py
Expand Up @@ -6,26 +6,14 @@

__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 = ('<', '<=', '==', '!=', '>', '>=')

Expand Down
8 changes: 6 additions & 2 deletions Lib/sysconfig.py
Expand Up @@ -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()
Expand Down Expand Up @@ -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:
Expand Down
@@ -0,0 +1 @@
Remove import of :mod:``pprint`` from :mod:``sysconfig``.

0 comments on commit 5ecedbd

Please sign in to comment.