Repository navigation
Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
19anveshh
force-pushed
the
fix-venv-prompt-expansion
branch
from
October 26, 2026 20:02
9379ef8 to
a49bbbd
Compare
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
19anveshh
force-pushed
the
fix-venv-prompt-expansion
branch
from
October 26, 2026 20:57
a49bbbd to
824f8d4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
gh-160732: protect venv prompts from expansion
Fixes #160732.
The generated Bash activation script now keeps the prompt in
VIRTUAL_ENV_PROMPTand expands that variable when the prompt is displayed,so prompt values containing command substitutions remain literal. The zsh path
uses a
psvarentry for the same reason. Deactivation restores the prior zshprompt variable.
The regression test creates a venv with a
$(touch ...)prompt, starts aninteractive Bash shell, and verifies that the marker is not created and the
prompt remains literal.
Checks:
python -m py_compile Lib/test/test_venv.py Lib/venv/__init__.pybash -non the generated activation scriptgit diff --checkThe full CPython test suite was not run because this environment has no local
CPython build toolchain; the available interpreter is Python 3.13 while this
checkout uses newer CPython-main syntax.
AI tools assisted with issue discovery, code exploration, and drafting. I
reviewed the resulting patch, tests, and PR description manually.