Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Python_Packaging_Authority
pip
提交
ac26f1bc
P
pip
项目概览
镜像
/
Python_Packaging_Authority
/
pip
12 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pip
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ac26f1bc
编写于
4月 02, 2020
作者:
P
Paul Moore
提交者:
GitHub
4月 02, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #7934 from uranusjr/create_basic_wheel_for_package_improve
Rewrite tests.lib.create_basic_wheel_for_package
上级
4b159c54
09f4d000
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
83 deletion
+34
-83
tests/lib/__init__.py
tests/lib/__init__.py
+34
-83
未找到文件。
tests/lib/__init__.py
浏览文件 @
ac26f1bc
...
...
@@ -15,7 +15,7 @@ from textwrap import dedent
from
zipfile
import
ZipFile
import
pytest
from
pip._vendor.six
import
PY2
,
ensure_binary
,
text_type
from
pip._vendor.six
import
PY2
from
scripttest
import
FoundDir
,
TestFileEnvironment
from
pip._internal.index.collector
import
LinkCollector
...
...
@@ -27,6 +27,7 @@ from pip._internal.network.session import PipSession
from
pip._internal.utils.deprecation
import
DEPRECATION_MSG_PREFIX
from
pip._internal.utils.typing
import
MYPY_CHECK_RUNNING
from
tests.lib.path
import
Path
,
curdir
from
tests.lib.wheel
import
make_wheel
if
MYPY_CHECK_RUNNING
:
from
typing
import
List
,
Optional
...
...
@@ -984,95 +985,45 @@ def create_basic_wheel_for_package(
depends
=
[]
if
extras
is
None
:
extras
=
{}
files
=
{
"{name}/__init__.py"
:
"""
__version__ = {version!r}
def hello():
return "Hello From {name}"
"""
,
"{dist_info}/DESCRIPTION"
:
"""
UNKNOWN
"""
,
"{dist_info}/WHEEL"
:
"""
Wheel-Version: 1.0
Generator: pip-test-suite
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any
if
extra_files
is
None
:
extra_files
=
{}
archive_name
=
"{}-{}-py2.py3-none-any.whl"
.
format
(
name
,
version
)
archive_path
=
script
.
scratch_path
/
archive_name
package_init_py
=
"{name}/__init__.py"
.
format
(
name
=
name
)
assert
package_init_py
not
in
extra_files
extra_files
[
package_init_py
]
=
textwrap
.
dedent
(
"""
__version__ = {version!r}
def hello():
return "Hello From {name}"
"""
,
"{dist_info}/METADATA"
:
"""
Metadata-Version: 2.0
Name: {name}
Version: {version}
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Platform: UNKNOWN
{requires_dist}
UNKNOWN
"""
,
"{dist_info}/top_level.txt"
:
"""
{name}
"""
,
# Have an empty RECORD because we don't want to be checking hashes.
"{dist_info}/RECORD"
:
""
}
).
format
(
version
=
version
,
name
=
name
)
# Some useful shorthands
archive_name
=
"{name}-{version}-py2.py3-none-any.whl"
.
format
(
name
=
name
,
version
=
version
)
dist_info
=
"{name}-{version}.dist-info"
.
format
(
name
=
name
,
version
=
version
)
requires_dist
=
depends
+
[
'{package}; extra == "{extra}"'
.
format
(
package
=
package
,
extra
=
extra
)
for
extra
,
packages
in
extras
.
items
()
for
package
in
packages
]
requires_dist
=
"
\n
"
.
join
([
"Requires-Dist: {}"
.
format
(
pkg
)
for
pkg
in
depends
]
+
[
"Provides-Extra: {}"
.
format
(
pkg
)
for
pkg
in
extras
.
keys
()
]
+
[
"Requires-Dist: {}; extra ==
\"
{}
\"
"
.
format
(
pkg
,
extra
)
for
extra
in
extras
for
pkg
in
extras
[
extra
]
])
# Replace key-values with formatted values
for
key
,
value
in
list
(
files
.
items
()):
del
files
[
key
]
key
=
key
.
format
(
name
=
name
,
dist_info
=
dist_info
)
files
[
key
]
=
textwrap
.
dedent
(
value
).
format
(
name
=
name
,
version
=
version
,
requires_dist
=
requires_dist
).
strip
()
# Add new files after formatting
if
extra_files
:
files
.
update
(
extra_files
)
for
fname
in
files
:
path
=
script
.
temp_path
/
fname
path
.
parent
.
mkdir
(
exist_ok
=
True
,
parents
=
True
)
path
.
write_bytes
(
ensure_binary
(
files
[
fname
]))
# The base_dir cast is required to make `shutil.make_archive()` use
# Unicode paths on Python 2, making it able to properly archive
# files with non-ASCII names.
retval
=
script
.
scratch_path
/
archive_name
generated
=
shutil
.
make_archive
(
retval
,
'zip'
,
root_dir
=
script
.
temp_path
,
base_dir
=
text_type
(
os
.
curdir
),
)
shutil
.
move
(
generated
,
retval
)
wheel_builder
=
make_wheel
(
name
=
name
,
version
=
version
,
wheel_metadata_updates
=
{
"Tag"
:
[
"py2-none-any"
,
"py3-none-any"
]},
metadata_updates
=
{
"Provides-Extra"
:
list
(
extras
),
"Requires-Dist"
:
requires_dist
,
},
extra_metadata_files
=
{
"top_level.txt"
:
name
},
extra_files
=
extra_files
,
shutil
.
rmtree
(
script
.
temp_path
)
script
.
temp_path
.
mkdir
()
# Have an empty RECORD because we don't want to be checking hashes.
record
=
""
,
)
wheel_builder
.
save_to
(
archive_path
)
return
retval
return
archive_path
def
need_executable
(
name
,
check_cmd
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录