未验证 提交 35dc9f7b 编写于 作者: F Frost Ming 提交者: GitHub

fix: removing package shouldn't break TOML (#1222)

上级 e76ca551
......@@ -94,13 +94,13 @@ jobs:
with:
path: ${{ steps.set_variables.outputs.PIP_CACHE }}
key: ${{ runner.os }}-pip-${{ steps.set_variables.outputs.PY }}
- name: Cache pypackages
- name: Cache venv
uses: actions/cache@v3
with:
path: __pypackages__
key: pypackages-${{ runner.os }}-${{ matrix.arch }}-${{ matrix.python-version }}-${{ hashFiles('pdm.lock') }}
path: .venv
key: venv-${{ runner.os }}-${{ matrix.arch }}-${{ matrix.python-version }}-${{ hashFiles('pdm.lock') }}
restore-keys: |
pypackages-${{ runner.os }}-${{ matrix.arch }}-${{ matrix.python-version }}-
venv-${{ runner.os }}-${{ matrix.arch }}-${{ matrix.python-version }}-
- name: Install current PDM via pip
if: matrix.install-via == 'pip'
run: python -m pip install -U .
......
Fix a bug when removing packages, TOML document might become invalid.
......@@ -15,6 +15,7 @@ from typing import Collection, Iterable, Mapping, Sequence, cast
import tomlkit
from resolvelib.reporters import BaseReporter
from resolvelib.resolvers import ResolutionImpossible, ResolutionTooDeep, Resolver
from tomlkit.items import Array
from pdm import termui
from pdm.cli.hooks import HookManager
......@@ -434,6 +435,7 @@ def do_remove(
)
for i in matched_indexes:
del deps[i]
cast(Array, deps).multiline(True)
if not dry_run:
project.write_pyproject()
......
......@@ -85,3 +85,19 @@ def test_add_remove_no_package(project):
with pytest.raises(PdmUsageError):
actions.do_remove(project, packages=())
@pytest.mark.usefixtures("repository", "working_set")
def test_remove_package_wont_break_toml(project_no_init):
project_no_init.pyproject_file.write_text(
"""
[project]
dependencies = [
"requests",
# this is a comment
]
"""
)
project_no_init.pyproject = None
actions.do_remove(project_no_init, packages=["requests"])
assert project_no_init.pyproject["project"]["dependencies"] == []
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册