Victor Stinner
65ce228d63
gh-125096: Don't import _pyrepl in site if PYTHON_BASIC_REPL ( #125097 )
...
If the PYTHON_BASIC_REPL environment variable is set, the site module
no longer imports the _pyrepl module.
Moreover, the site module now respects -E and -I command line
options: ignore PYTHON_BASIC_REPL in this case.
2024-10-08 15:48:40 +02:00
Jelle Zijlstra
365dffbaad
gh-119180: No longer set `__annotations__` in `__main__` ( #124634 )
2024-09-27 05:49:43 -07:00
Emily Morehouse
c1600c78e4
gh-123856: Fix PyREPL failure when a keyboard interrupt is triggered after using a history search ( #124396 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-09-25 20:22:03 +02:00
Łukasz Langa
033510e11d
gh-120221: Support KeyboardInterrupt in asyncio REPL ( #123795 )
...
This switches the main pyrepl event loop to always be non-blocking so that it
can listen to incoming interruptions from other threads.
This also resolves invalid display of exceptions from other threads
(gh-123178).
This also fixes freezes with pasting and an active input hook.
2024-09-06 21:28:29 +02:00
aorcajo
e95984826e
gh-119310: Fix encoding when reading old history file ( #121779 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-09-06 15:40:29 +02:00
Victor Stinner
8311b11800
gh-119034, REPL: Change page up/down keys to search in history ( #123607 )
...
Change <page up> and <page down> keys of the Python REPL to history
search forward/backward.
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-09-06 13:15:00 +02:00
Arnon Yaari
d683f49a7b
gh-111201: fix auto-indent in pyrepl for muliple pound comments ( #123196 )
2024-09-06 07:33:40 +00:00
Matt Wozniski
602fcf97df
gh-123177: Fix prompt for wrapped lines in pyrepl ( #123324 )
...
When display lines above the cursor come from the cache, the first line
to not come from the cache may be a wrapped line, starting half way
through a logical line in the buffer. Detect and handle this case to
avoid accidentally drawing a stray prompt in the middle of a logical
line.
2024-08-25 22:54:06 +00:00
CF Bolz-Tereick
aa905925e1
gh-123228: don't leak file descriptors in pyrepl test ( #123302 )
2024-08-25 15:52:51 +01:00
Sergey B Kirpichev
ca18ff2a34
gh-123228: fix return type for _ReadlineWrapper.get_line_buffer() ( #123281 )
...
Co-authored-by: Carl Friedrich Bolz-Tereick <cfbolz@gmx.de>
2024-08-24 17:46:05 +02:00
Sergey B Kirpichev
4c3f0cbeae
gh-122546: Relax SyntaxError check when raising errors on the new REPL ( #123233 )
2024-08-23 00:25:33 +01:00
Sergey B Kirpichev
3d7b1a526d
gh-122546: use same filename for different exceptions in new repl ( #123217 )
...
* gh-122546: use same filename for different exceptions in new repl
* +1
2024-08-22 12:55:30 +01:00
Sergey B Kirpichev
354d55eb1f
gh-121804: Always show error location for SyntaxError's in new repl ( #121886 )
2024-08-19 15:19:23 +01:00
CF Bolz-Tereick
63603bca35
gh-82378 fix sys.tracebacklimit in pyrepl, approach 2 ( #123062 )
...
Make sure that pyrepl uses the same logic for sys.tracebacklimit as both
the basic repl and the standard sys.excepthook
2024-08-18 13:28:23 +02:00
CF Bolz-Tereick
bd3d31f380
gh-87320: In the code module, handle exceptions raised in sys.excepthook (GH-122456)
...
Before, the exception caused by calling non-default sys.excepthook
in code.InteractiveInterpreter bubbled up to the caller, ending the REPL.
2024-07-31 10:33:29 +00:00
Sam Gross
2c1b1e7a07
gh-121973: Fix flaky test_pyrepl tests (GH-122140)
...
This fixes the flakiness in:
* test_inspect_keeps_globals_from_inspected_file
* test_inspect_keeps_globals_from_inspected_module
The output already includes newlines. Adding newlines for every entry in
the output list introduces non-determinism because it added '\n' in
places where stdout is flushed or some buffer becomes full.
The regex also needed to be updated because pyrepl includes control
characters -- the visible output on each line doesn't immediately follow
a newline character.
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-07-23 15:17:13 +02:00
Sam Gross
a09e215abf
gh-121988: Fix test hang when pyrepl is not available ( #121990 )
...
Also explicitly fail the test if we timeout while waiting for output so
that this failure mode is caught earlier.
2024-07-20 16:04:14 +02:00
Łukasz Langa
19cbf8fd63
gh-120678: Guard against stdin.fileno() being unavailable ( #121924 )
2024-07-17 16:05:34 +00:00
Alex Waygood
ac07451116
gh-120678: pyrepl: Include globals from modules passed with `-i` (GH-120904)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-07-17 16:18:42 +02:00
saucoide
7d111dac16
gh-121610: pyrepl - handle extending blocks when multi-statement blocks are pasted (GH-121757)
...
console.compile with the "single" param throws an exception when
there are multiple statements, never allowing to adding newlines
to a pasted code block (gh-121610)
This add a few extra checks to allow extending when in an indented
block, and tests for a few examples
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-07-16 01:33:57 +02:00
Sam Gross
4134261ab8
gh-121605: Fix test hang when pyrepl is not available (GH-121820)
...
The fallback repl does not support "exit" without parentheses, so the
test would hang until the timeout expired.
2024-07-16 00:50:16 +02:00
Sergey B Kirpichev
fd085a411e
gh-121359: make clean environment (no PYTHON* vars) for test_pyrepl.TestMain (GH-121672)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-07-15 21:21:49 +02:00
Sam Gross
abc3aeebdb
gh-121605: Increase timeout in test_pyrepl.run_repl ( #121606 )
...
We also need to close the `slave_fd` earlier so that reading from
`master_fd` won't block forever when the subprocess finishes.
2024-07-13 15:54:28 +02:00
Pablo Galindo Salgado
4b9e10d0ea
gh-121499: Fix multi-line history rendering in the REPL ( #121531 )
...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
2024-07-13 12:54:10 +02:00
Marta Gómez Macías
e745996b2d
gh-121609: Fix pasting of characters containing unicode character joiner ( #121667 )
2024-07-13 10:44:18 +00:00
Sergey B Kirpichev
68e279b37a
gh-121351: Skip test_not_wiping_history_file() if no readline ( #121422 )
2024-07-07 00:53:54 +02:00
Victor Stinner
6239d41527
gh-121359: Run test_pyrepl in isolated mode ( #121414 )
...
run_repl() now pass the -I option (isolated mode) to Python if the
'env' parameter is not set.
2024-07-05 22:30:08 +02:00
Sergey B Kirpichev
afee76b6eb
gh-121245: a regression test for site.register_readline() ( #121259 )
2024-07-03 11:45:43 +01:00
Łukasz Langa
d611c4c8e9
gh-118908: Use __main__ for the default PyREPL namespace ( #121054 )
2024-06-26 15:01:10 -04:00
devdanzin
9e45fd9858
gh-121016: Add test for `PYTHON_BASIC_REPL` envioronment variable ( #121017 )
2024-06-26 10:39:07 +00:00
Victor Stinner
0f3e36454d
gh-120635: Avoid leaking processes in test_pyrepl ( #120676 )
...
If the child process takes longer than SHORT_TIMEOUT seconds to
complete, kill the process but then wait until it completes with no
timeout to not leak child processes.
2024-06-19 15:14:29 +02:00
Victor Stinner
f4d301d8b9
gh-120417: Remove unused imports in tests (part 4) ( #120632 )
2024-06-17 17:35:20 +02:00
Pablo Galindo Salgado
3453362183
gh-118908: Protect the REPL subprocess with a timeout in tests ( #120408 )
2024-06-12 19:09:25 +00:00
Eugene Triguba
86a8a1c57a
gh-118908: Limit exposed globals from internal imports and definitions on new REPL startup ( #119547 )
2024-06-11 17:40:31 +00:00
Jelle Zijlstra
9b8611eeea
gh-119180: PEP 649 compiler changes ( #119361 )
2024-06-11 13:06:49 +00:00
Pablo Galindo Salgado
d9095194dd
gh-119842: Honor PyOS_InputHook in the new REPL (GH-119843)
...
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Michael Droettboom <mdboom@gmail.com>
2024-06-04 20:32:43 +02:00
Lysandros Nikolaou
010ea93b2b
gh-119553: Clear reader on Ctrl-C command (GH-119801)
2024-06-04 19:46:33 +02:00
Lysandros Nikolaou
8fc7653766
gh-120041: Do not use append_to_screen when completions are visible (GH-120042)
2024-06-04 18:09:31 +02:00
Daniel Hollas
2e0aa731ae
gh-118835: pyrepl: Fix prompt length computation for custom prompts containing ANSI escape codes ( #119942 )
2024-06-03 18:07:06 +01:00
Łukasz Langa
6acb32fac3
Use Cirrus M1 macOS runners for CI (GH-119979)
...
Co-authored-by: Ee Durbin <ee@python.org>
2024-06-03 17:32:40 +02:00
Łukasz Langa
2237946af0
gh-118894: Make asyncio REPL use pyrepl (GH-119433)
2024-05-31 22:26:02 +02:00
Victor Stinner
91601a5596
gh-111201: Skip pyrepl Windows tests earlier ( #119848 )
...
Don't attempt to load pyrepl Windows console if platforms others than
Windows. For example, the import can fail if ctypes is missing.
2024-05-31 14:06:10 +00:00
Łukasz Langa
4c387a76f3
gh-111201: [pyrepl] Ensure optional platform-specific imports are optional (GH-119834)
2024-05-31 14:41:26 +02:00
Arnon Yaari
dae0375bd9
gh-111201: Improve pyrepl auto indentation ( #119606 )
...
- auto-indent when editing multi-line block
- ignore comments
2024-05-31 11:02:54 +02:00
Dino Viehland
0d07182821
gh-111201: Support pyrepl on Windows ( #119559 )
...
Co-authored-by: Anthony Shaw <anthony.p.shaw@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-05-31 09:49:03 +02:00
Sergey B Kirpichev
86d1a1aa88
gh-119555: catch SyntaxError from compile() in the InteractiveColoredConsole ( #119557 )
2024-05-29 07:57:50 +01:00
Jelle Zijlstra
a8e35e8eba
gh-119443: Turn off from __future__ import annotations in REPL ( #119493 )
2024-05-28 17:05:18 -07:00
Łukasz Langa
6e012ced6c
gh-119469: Fix _pyrepl reference leaks ( #119470 )
2024-05-23 19:28:31 +02:00
Aya Elsayed
5091c4400c
gh-118911: Trailing whitespace in a block shouldn't prevent the user from terminating the code block ( #119355 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-05-22 07:56:35 +02:00
Pablo Galindo Salgado
e6572e8f98
gh-111201: Speed up paste mode in the REPL ( #119341 )
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-05-22 07:28:32 +02:00