Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Pdm
提交
3034f696
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
3034f696
编写于
4月 13, 2020
作者:
F
frostming
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ensure setuptools is installed
上级
4e78bd7c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
10 deletion
+18
-10
pdm/installers/synchronizers.py
pdm/installers/synchronizers.py
+1
-1
pdm/models/environment.py
pdm/models/environment.py
+14
-9
tests/cli/test_actions.py
tests/cli/test_actions.py
+2
-0
tests/conftest.py
tests/conftest.py
+1
-0
未找到文件。
pdm/installers/synchronizers.py
浏览文件 @
3034f696
...
...
@@ -115,7 +115,7 @@ class Synchronizer:
elif
not
is_dist_editable
(
dist
)
and
dist
.
version
!=
can
.
version
:
# XXX: An editable distribution is always considered as consistent.
to_update
.
append
(
key
)
elif
key
not
in
self
.
all_candidates
and
key
!=
"wheel"
:
elif
key
not
in
self
.
all_candidates
and
key
not
in
(
"wheel"
,
"setuptools"
)
:
# Remove package only if it is not required by any section
to_remove
.
append
(
key
)
to_add
=
list
(
...
...
pdm/models/environment.py
浏览文件 @
3034f696
...
...
@@ -85,7 +85,7 @@ class Environment:
"""
self
.
python_requires
=
project
.
python_requires
self
.
project
=
project
self
.
_
wheel_ensur
ed
=
False
self
.
_
essential_install
ed
=
False
@
cached_property
def
python_executable
(
self
)
->
str
:
...
...
@@ -315,11 +315,11 @@ class Environment:
# Now all source is prepared, build it.
if
ireq
.
link
.
is_wheel
:
return
(
self
.
project
.
cache
(
"wheels"
)
/
ireq
.
link
.
filename
).
as_posix
()
self
.
ensure_essential_packages
()
if
ireq
.
editable
:
builder_class
=
EditableBuilder
else
:
builder_class
=
WheelBuilder
self
.
ensure_wheel_package
()
kwargs
[
"finder"
]
=
finder
with
builder_class
(
ireq
)
as
builder
,
self
.
activate
(
True
):
return
builder
.
build
(
**
kwargs
)
...
...
@@ -347,18 +347,23 @@ class Environment:
# Fallback to use shutil.which to find the executable
return
shutil
.
which
(
command
,
path
=
os
.
getenv
(
"PATH"
))
def
ensure_
wheel_package
(
self
)
->
None
:
"""Ensure wheel
package is available and install if it isn't.
"""
def
ensure_
essential_packages
(
self
)
->
None
:
"""Ensure wheel
and setuptools are available and install if not
"""
from
pdm.installers
import
Installer
from
pdm.models.requirements
import
parse_requirement
from
pdm.models.candidates
import
Candidate
if
self
.
_
wheel_ensured
or
"wheel"
in
self
.
get_working_set
()
:
if
self
.
_
essential_installed
:
return
req
=
parse_requirement
(
"wheel"
)
candidate
=
Candidate
(
req
,
self
,
"wheel"
)
Installer
(
self
).
install
(
candidate
)
self
.
_wheel_ensured
=
True
installer
=
Installer
(
self
)
working_set
=
self
.
get_working_set
()
for
package
in
(
"setuptools"
,
"wheel"
):
if
package
in
working_set
:
continue
req
=
parse_requirement
(
package
)
candidate
=
Candidate
(
req
,
self
,
package
)
installer
.
install
(
candidate
)
self
.
_essential_installed
=
True
def
update_shebangs
(
self
,
new_path
:
str
)
->
None
:
"""Update the shebang lines"""
...
...
tests/cli/test_actions.py
浏览文件 @
3034f696
...
...
@@ -29,6 +29,8 @@ def test_sync_only_different(project, repository, working_set, capsys):
assert
"foo"
in
working_set
assert
"test-project"
in
working_set
assert
working_set
[
"chardet"
].
version
==
"3.0.4"
for
package
in
(
"wheel"
,
"setuptools"
):
assert
package
in
working_set
def
test_sync_in_sequential_mode
(
project
,
repository
,
working_set
,
capsys
):
...
...
tests/conftest.py
浏览文件 @
3034f696
...
...
@@ -229,6 +229,7 @@ def working_set(mocker, repository):
installer
.
install
.
side_effect
=
install
installer
.
uninstall
.
side_effect
=
uninstall
mocker
.
patch
(
"pdm.installers.synchronizers.Installer"
,
return_value
=
installer
)
mocker
.
patch
(
"pdm.installers.Installer"
,
return_value
=
installer
)
yield
rv
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录