Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Doc/library/bdb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ The :mod:`bdb` module also defines two classes:
Normally derived classes don't override the following methods, but they may
if they want to redefine the definition of stopping and breakpoints.

.. method:: is_skipped_line(module_name)
.. method:: is_skipped_module(module_name)

Return ``True`` if *module_name* matches any skip pattern.

Expand Down
7 changes: 1 addition & 6 deletions Lib/annotationlib.py
Original file line number Diff line number Diff line change
Expand Up @@ -844,14 +844,9 @@ def call_annotate_function(annotate, format, *, owner=None, _is_evaluate=False):
def _build_closure(annotate, owner, is_class, stringifier_dict, *, allow_evaluation):
if not annotate.__closure__:
return None, None
freevars = annotate.__code__.co_freevars
new_closure = []
cell_dict = {}
for i, cell in enumerate(annotate.__closure__):
if i < len(freevars):
name = freevars[i]
else:
name = "__cell__"
for name, cell in zip(annotate.__code__.co_freevars, annotate.__closure__, strict=True):
cell_dict[name] = cell
new_cell = None
if allow_evaluation:
Expand Down
4 changes: 2 additions & 2 deletions Lib/pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,8 @@ def __init__(self, completekey='tab', stdin=None, stdout=None, skip=None,
bdb.Bdb.__init__(self, skip=skip, backend=backend if backend else get_default_backend())
cmd.Cmd.__init__(self, completekey, stdin, stdout)
sys.audit("pdb.Pdb")
if stdout:
self.use_rawinput = 0
if stdin:
self.use_rawinput = False
self.prompt = '(Pdb) '
self.aliases = {}
self.displaying = {}
Expand Down
13 changes: 13 additions & 0 deletions Lib/test/test_pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -4744,6 +4744,19 @@ def test_readline_not_imported(self):
self.assertNotIn("readline imported", stdout)
self.assertEqual(stderr, "")

def test_alternate_stdin(self):
script = textwrap.dedent("""
import pdb
import io

input_data = io.StringIO("p 40 + 2\\nc\\n")
pdb.Pdb(stdin=input_data).set_trace()
""")
commands = ""
stdout, stderr = self._run_script(script, commands)
self.assertIn("42", stdout)
self.assertEqual(stderr, "")


@support.force_colorized_test_class
class PdbTestColorize(unittest.TestCase):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Check ``stdin`` instead of ``stdout`` for ``use_rawinput`` in :mod:`pdb`.
33 changes: 16 additions & 17 deletions Tools/wasm/wasi/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
import sysconfig
import tempfile

CHECKOUT = pathlib.Path(__file__).parent.parent.parent.parent
HERE = pathlib.Path(__file__).parent

CHECKOUT = HERE.parent.parent.parent
assert (CHECKOUT / "configure").is_file(), (
"Please update the location of the file"
)
Expand Down Expand Up @@ -304,9 +306,7 @@ def configure_wasi_python(context, working_dir):
"specify via $WASI_SDK_PATH or --wasi-sdk"
)

config_site = os.fsdecode(
CHECKOUT / "Tools" / "wasm" / "wasi" / "config.site-wasm32-wasi"
)
config_site = os.fsdecode(HERE / "config.site-wasm32-wasi")

wasi_build_dir = working_dir.relative_to(CHECKOUT)

Expand All @@ -324,10 +324,7 @@ def configure_wasi_python(context, working_dir):
# Use PYTHONPATH to include sysconfig data which must be anchored to the
# WASI guest's `/` directory.
args = {
"GUEST_DIR": "/",
"HOST_DIR": CHECKOUT,
"ENV_VAR_NAME": "PYTHONPATH",
"ENV_VAR_VALUE": f"/{sysconfig_data_dir}",
"PYTHONPATH": f"/{sysconfig_data_dir}",
"PYTHON_WASM": working_dir / "python.wasm",
}
# Check dynamically for wasmtime in case it was specified manually via
Expand Down Expand Up @@ -417,16 +414,18 @@ def main():
default_wasi_sdk = find_wasi_sdk()
default_host_runner = (
f"{WASMTIME_HOST_RUNNER_VAR} run "
# Make sure the stack size will work for a pydebug
# build.
# Use 32 MiB stack.
"--wasm max-wasm-stack=33554432 "
# Enable thread support; causes use of preview1.
# "--wasm threads=y --wasi threads=y "
# For setting PYTHONPATH to the sysconfig data directory.
"--env PYTHONPATH={PYTHONPATH} "
# Map the checkout to / to load the stdlib from /Lib.
"--dir {HOST_DIR}::{GUEST_DIR} "
# Set PYTHONPATH to the sysconfig data.
"--env {ENV_VAR_NAME}={ENV_VAR_VALUE}"
f"--dir {os.fsdecode(CHECKOUT)}::/ "
# Flags involving --optimize, --codegen, --debug, --wasm, and --wasi can be kept
# in a config file.
# We are using such a file to act as defaults in case a user wants to override
# only some of the settings themselves, make it easy to modify settings
# post-build so that they immediately apply to the Makefile instead of having to
# regenerate it, and allow for easy copying of the settings for anyone else who
# may want to use them.
f"--config {os.fsdecode(HERE / 'wasmtime.toml')}"
)
default_logdir = pathlib.Path(tempfile.gettempdir())

Expand Down
5 changes: 5 additions & 0 deletions Tools/wasm/wasi/wasmtime.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# https://docs.wasmtime.dev/cli-options.html#cli-options-using-toml-file

[wasm]
# 32 MiB; big enough for the test suite to pass under a debug build.
max-wasm-stack = 33_554_432
Loading