Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Pdm
提交
35dc9f7b
P
Pdm
项目概览
后端镜像
/
Pdm
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Pdm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
35dc9f7b
编写于
7月 14, 2022
作者:
F
Frost Ming
提交者:
GitHub
7月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: removing package shouldn't break TOML (#1222)
上级
e76ca551
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
23 addition
and
4 deletion
+23
-4
.github/workflows/ci.yml
.github/workflows/ci.yml
+4
-4
news/1221.bugfix.md
news/1221.bugfix.md
+1
-0
pdm/cli/actions.py
pdm/cli/actions.py
+2
-0
tests/cli/test_remove.py
tests/cli/test_remove.py
+16
-0
未找到文件。
.github/workflows/ci.yml
浏览文件 @
35dc9f7b
...
...
@@ -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 .
...
...
news/1221.bugfix.md
0 → 100644
浏览文件 @
35dc9f7b
Fix a bug when removing packages, TOML document might become invalid.
pdm/cli/actions.py
浏览文件 @
35dc9f7b
...
...
@@ -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
()
...
...
tests/cli/test_remove.py
浏览文件 @
35dc9f7b
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录