Files
Matt Davis 87dffe0aa5 fix: don't mutate cached parsed_pipfile when locking deps (#6657)
* fix: don't mutate cached parsed_pipfile when locking deps

get_locked_dep popped ``version`` and ``ref`` directly off the entry it
received from ``pipfile_section``.  Since #6649 made ``parsed_pipfile``
return a cached TOMLDocument by reference, those pops persisted across
the rest of the pipenv invocation — a subsequent ``write_toml`` (e.g.
``add_pipfile_entry_to_pipfile`` for the newly installed package) would
emit ``six = {}`` instead of ``six = {version = "*"}`` and strip the
version from any inline-table or outline-table siblings.

Copy the dict before scrubbing those keys.  Add a unit regression test
that asserts get_locked_dep leaves the section untouched.

Fixes the integration regression hit by ``test_rewrite_outline_table``
and ``test_rewrite_outline_table_ooo`` on main since the pip 26.1
vendoring run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Fix recursive pipenv test bootstrap dependency

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 07:42:39 -04:00

44 lines
954 B
TOML

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[dev-packages]
urllib3 = ">=2.6.0"
requests = ">=2.32.4"
sphinx = "*"
sphinx-click = "==4.*"
sphinxcontrib-spelling = "==7.*"
click = "==8.0.3"
stdeb = {version="*", sys_platform = "== 'linux'"}
pre-commit = "==2.*"
atomicwrites = {version = "*", sys_platform = "== 'win32'"}
pytest-cov = "==4.*"
typing-extensions = "==4.*"
waitress = {version = "3.*", sys_platform = "== 'win32'"}
gunicorn = {version = "23.0.*", sys_platform = "== 'linux'"}
parse = "*"
myst-parser = {extras = ["linkify"], version = "*"}
invoke = "*"
exceptiongroup = "==1.1.0"
pyyaml = "==6.0.1"
build = "*"
twine = "*"
semver = "*"
pypiserver = "*"
tomli = "*"
bottle = "*"
legacy-cgi = {version = "*", markers = "python_version >= '3.13'"}
pytest-rerunfailures = "*"
[packages]
pytz = "*"
[scripts]
tests = "bash ./run-tests.sh"
test = "pytest -vvs"
[pipenv]
allow_prereleases = true
use_pylock = true