跳转到主要内容

Setuptools Rust Tomlgen 扩展插件

项目描述

用于生成Rust Cargo.toml文件的Setuptools插件

github actions pypi package code style: black

setuptools-rust-tomlgensetuptoolssetuptools-rust 的插件。它添加了 tomlgen_rust 命令,可以从 setup.py 的内容生成Rust Cargo.toml 文件。

用法

从pip安装

$ pip install setuptools-rust-tomlgen

创建一个包含 setup.py 文件和一些Rust .rs 文件的项目,例如 示例项目

通过 setup.py 生成 Cargo.toml 文件

$ python setup.py tomlgen_rust

元数据

包名将从Python包中扩展的位置生成。使用与 setup.pysetup.cfg 中声明相同的版本。

作者列表是在 setup.py / setup.cfg 中的 authorauthor_email 选项之后生成的,但也可以通过在 setup.cfg[tomlgen_rust] 部分的 authors 键中覆盖。

[tomlgen_rust]
authors =
  Jane Doe <jane@doe.name>
  John Doe <john@doe.name>

库名称是扩展包名的slugified变体,以避免在构建目录中的名称冲突。

为了安全起见,publish = false 被添加到 [package] 部分(您不会发布一个自动生成的包,对吧?)。

选项

使用--force(或向setup.cfg中的[tomlgen_rust]部分添加force = true)来强制生成清单,即使已经存在一个也是如此。

使用--create-workspace在项目根目录(位于setup.py文件旁边)创建一个虚拟清单,该清单注册所有扩展。这样,就可以在项目根目录中运行通用的cargo命令,而无需离开项目根目录。

如果启用了--create-workspace,还会创建一个.cargo/config文件来强制cargo构建到临时构建目录。使用--no-config来禁用。

依赖关系

要为所有扩展指定依赖关系,请将它们添加到您的setuptools配置文件(setup.cfg)中的[tomlgen_rust.dependencies]部分,就像在您的Cargo.toml文件中那样。这里可能是添加pyo3作为依赖关系的好地方。

要指定每个扩展的依赖关系,为每个扩展创建一个部分([tomlgen_rust.dependencies.<DOTTEDPATH>],其中<DOTTEDPATH>是扩展的完整Python路径(例如hello-english)。特定于扩展的依赖关系添加在全局依赖关系之后。

注意,由于所有项目都在同一个目录中构建,您也可以在[tomlgen_rust.dependencies]中声明所有依赖关系,因为它们无论如何都只会构建一次。

每次构建时的自动生成

如果您打算每次构建库时都重新生成清单,请将Cargo.tomlCargo.lock添加到您的.gitignore文件中。

然后,确保在每次构建前运行tomlgen_rust之前,通过向您的setup.cfg文件添加别名来确保。

[aliases]
build_rust = tomlgen_rust -f build_rust
clean_rust = tomlgen_rust -f clean_rust
build = tomlgen_rust -f build
clean = clean_rust -f clean

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

setuptools-rust-tomlgen-1.0.0.tar.gz (11.1 kB 查看哈希值)

上传时间

构建分布

setuptools_rust_tomlgen-1.0.0-py3-none-any.whl (7.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面