PYPI.ECLASS
章节: eclass-manpages (5)更新时间: 2024年11月
索引 返回主内容
名称
pypi.eclass - 用于生成 PyPI 源 URI 的辅助 eclass描述
pypi.eclass 可以用来轻松获取上传到 PyPI.org 的工件的 URL。当继承时,eclass 会默认设置 SRC_URI 和 S 以获取 .tar.gz sdist。项目文件名默认情况下会被规范化(除非在继承 eclass 之前设置了 PYPI_NO_NORMALIZE),版本会使用 pypi_translate_version 进行转换。如果需要,ebuild 可以覆盖 SRC_URI 和 S。提供了两个辅助函数 pypi_sdist_url 和 pypi_wheel_url 来生成指定类型工件的 URL,并可以自定义 URL 组件。此外,pypi_wheel_name 可用于生成 wheel 文件名。
pypi_normalize_name 可用于根据 sdist/wheel 规范化规则规范化任意项目名称。pypi_translate_version 可用于将 Gentoo 版本字符串转换为其 PEP 440 等效版本。
支持的 EAPIS
7 8示例
inherit pypi SRC_URI="$(pypi_sdist_url "${PN^}" "${PV}")" S=${WORKDIR}/${P^}
函数
- pypi_normalize_name <name>
- 根据 sdist/wheel 规范化规则规范化项目名称。也就是说,转换为小写并将 [._-] 的连续运行替换为单个下划线。
基于规范,截至 2023 年 2 月 10 日:https://packaging.pythonlang.cn/en/latest/specifications/#package-distribution-file-formats
- _pypi_translate_version <version>
- 内部版本转换函数,通过 _PYPI_TRANSLATED_VERSION 变量返回结果。
- pypi_translate_version <version>
- 将指定的 Gentoo 版本转换为常用的 Python 版本。假设 PEP 440 版本。
请注意,我们没有 epoch 段或开发版本段的明确对应版本。
- pypi_sdist_url [--no-normalize] [<project> [<version> [<suffix>]]]
- 输出指定项目/版本元组的 PyPI sdist 的 URL。
`--no-normalize` 选项禁用 sdist 文件名的项目名称规范化。在处理使用未遵循 PEP 625 的构建系统生成的 distfile 时,这可能很有必要(例如,sdist 名称包含大写字母、连字符或点)。
如果未指定 <package>,则默认为 ${PYPI_PN}。除非传递了 `--no-normalize`,否则软件包名称会根据规范进行规范化。
如果未指定 <version>,则默认为 ${PV},并通过 pypi_translate_version 进行转换。如果指定了它,则按字面意思使用它(可以显式调用该函数来转换自定义版本号)。
如果未指定 <format>,则默认为“.tar.gz”。另一个有效值为“.zip”(请记住添加对 app-arch/unzip 的 BDEPEND)。
- pypi_wheel_name [<project> [<version> [<python-tag> [<abi-platform-tag>]]]]
- 输出指定项目/版本元组的 wheel 文件名。
如果未指定 <package>,则默认为 ${PYPI_PN}。软件包名称会根据 wheel 规范进行规范化。
如果未指定 <version>,则默认为 ${PV},并通过 pypi_translate_version 进行转换。如果指定了它,则按字面意思使用它(可以显式调用该函数来转换自定义版本号)。
如果未指定 <python-tag>,则默认为“py3”。它也可以是“py2.py3”,或者在非纯 wheel 的情况下为特定版本。
如果未指定 <abi-platform-tag>,则默认为“none-any”。对于非纯 wheel,您需要指定正确的值,例如“abi3-linux_x86_64”。
- pypi_wheel_url [--unpack] [<project> [<version> [<python-tag> [<abi-platform-tag>]]]]
- 输出指定项目/版本元组的 PyPI wheel 的 URL。
`--unpack` 选项会导致生成带有箭头运算符的 SRC_URI,该运算符会将 .zip 后缀添加到获取的 distfile,以便在默认的 src_unpack() 中解压缩它。请注意,wheel 内容将直接解压缩到 ${WORKDIR} 中。您需要添加对 app-arch/unzip 的 BDEPEND。
如果未指定 <package>,则默认为 ${PYPI_PN}。
如果未指定 <version>,则默认为 ${PV},并通过 pypi_translate_version 进行转换。如果指定了它,则按字面意思使用它(可以显式调用该函数来转换自定义版本号)。
如果未指定 <python-tag>,则默认为“py3”。它也可以是“py2.py3”,或者在非纯 wheel 的情况下为特定版本。
如果未指定 <abi-platform-tag>,则默认为“none-any”。对于非纯 wheel,您需要指定正确的值,例如“abi3-linux_x86_64”。
ECLASS 变量
- PYPI_NO_NORMALIZE (在继承之前设置)
- 当设置为非空值时,会禁用默认 SRC_URI 和 S 值的项目名称规范化。
- PYPI_PN ?= ${PN} (在继承之前设置)
- PyPI 项目名称。这应该很少被覆盖,通常是在上游项目名称不符合 Gentoo 命名规则时,例如当它包含点或大写字母时。
使用示例
PYPI_PN=${PN/-/.}
作者
Michał Górny <[email protected]>维护者
Michał Górny <[email protected]>报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug。文件
pypi.eclass另请参阅
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/pypi.eclass
索引
此文档由 man2html 使用手册页创建。
时间: 2024 年 11 月 12 日格林威治标准时间 03:27:01