Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Pdm
提交
bf3fb38b
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,发现更多精彩内容 >>
未验证
提交
bf3fb38b
编写于
12月 10, 2020
作者:
F
Frost Ming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add a new option `pdm export --pyproject`
Close #190
上级
c2dc2cb4
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
30 addition
and
5 deletion
+30
-5
news/190.feature
news/190.feature
+1
-0
pdm/cli/commands/export.py
pdm/cli/commands/export.py
+21
-4
pdm/formats/requirements.py
pdm/formats/requirements.py
+1
-1
tests/cli/test_cli.py
tests/cli/test_cli.py
+5
-0
tests/fixtures/projects/demo-package/requirements.ini
tests/fixtures/projects/demo-package/requirements.ini
+2
-0
未找到文件。
news/190.feature
0 → 100644
浏览文件 @
bf3fb38b
Provide
an
option to export requirements from pyproject.toml
pdm/cli/commands/export.py
浏览文件 @
bf3fb38b
...
...
@@ -32,18 +32,35 @@ class Command(BaseCommand):
"--output"
,
help
=
"Write output to the given file, or print to stdout if not given"
,
)
parser
.
add_argument
(
"-p"
,
"--pyproject"
,
action
=
"store_true"
,
help
=
"Read the list of packages from pyproject.toml"
,
)
def
handle
(
self
,
project
:
Project
,
options
:
argparse
.
Namespace
)
->
None
:
candidates
=
[]
if
options
.
pyproject
:
options
.
hashes
=
False
if
options
.
default
:
# Don't include self candidate
temp
=
project
.
get_locked_candidates
()
temp
.
pop
(
project
.
meta
.
name
,
None
)
if
options
.
pyproject
:
temp
=
project
.
dependencies
else
:
temp
=
project
.
get_locked_candidates
()
temp
.
pop
(
project
.
meta
.
name
,
None
)
candidates
.
extend
(
temp
.
values
())
if
options
.
dev
:
candidates
.
extend
(
project
.
get_locked_candidates
(
"dev"
).
values
())
if
options
.
pyproject
:
candidates
.
extend
(
project
.
dev_dependencies
.
values
())
else
:
candidates
.
extend
(
project
.
get_locked_candidates
(
"dev"
).
values
())
for
section
in
options
.
sections
:
candidates
.
extend
(
project
.
get_locked_candidates
(
section
).
values
())
if
options
.
pyproject
:
candidates
.
extend
(
project
.
get_dependencies
(
section
).
values
())
else
:
candidates
.
extend
(
project
.
get_locked_candidates
(
section
).
values
())
content
=
FORMATS
[
options
.
format
].
export
(
project
,
candidates
,
options
)
if
options
.
output
:
Path
(
options
.
output
).
write_text
(
content
)
...
...
pdm/formats/requirements.py
浏览文件 @
bf3fb38b
...
...
@@ -100,7 +100,7 @@ def convert(project, filename):
def
export
(
project
,
candidates
,
options
):
lines
=
[]
for
candidate
in
candidates
:
req
=
candidate
.
req
.
as_line
()
req
=
getattr
(
candidate
,
"req"
,
candidate
)
.
as_line
()
lines
.
append
(
req
)
if
options
.
hashes
and
candidate
.
hashes
:
for
item
in
candidate
.
hashes
.
values
():
...
...
tests/cli/test_cli.py
浏览文件 @
bf3fb38b
...
...
@@ -261,6 +261,7 @@ def test_export_to_requirements_txt(invoke, fixture_project):
project
=
fixture_project
(
"demo-package"
)
requirements_txt
=
project
.
root
/
"requirements.txt"
requirements_no_hashes
=
project
.
root
/
"requirements_simple.txt"
requirements_pyproject
=
project
.
root
/
"requirements.ini"
result
=
invoke
([
"export"
],
obj
=
project
)
assert
result
.
exit_code
==
0
...
...
@@ -270,6 +271,10 @@ def test_export_to_requirements_txt(invoke, fixture_project):
assert
result
.
exit_code
==
0
assert
result
.
output
.
strip
()
==
requirements_no_hashes
.
read_text
().
strip
()
result
=
invoke
([
"export"
,
"--pyproject"
],
obj
=
project
)
assert
result
.
exit_code
==
0
assert
result
.
output
.
strip
()
==
requirements_pyproject
.
read_text
().
strip
()
result
=
invoke
(
[
"export"
,
"-o"
,
str
(
project
.
root
/
"requirements_output.txt"
)],
obj
=
project
)
...
...
tests/fixtures/projects/demo-package/requirements.ini
0 → 100644
浏览文件 @
bf3fb38b
flask
--extra-index-url
https://test.pypi.org/simple
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录