跳转到主要内容

未提供项目描述

项目描述

packse

Python打包场景。

安装

从PyPI安装

uv pip install packse

安装完成后,将可用packse命令行界面。

用法

场景

场景是依赖树的一个JSON描述。

scenarios/examples/

每个场景文件可以包含一个或多个场景。

列出场景

可以使用list命令打印可用场景列表

packse list

默认情况下,packse将在当前树中搜索场景。您也可以传递一个文件进行读取

packse list scenarios/examples/example.json

每个场景将与其唯一标识符一起列出,例如example-cd797223。这是可以安装以运行场景的包名称,一旦构建和发布,即可运行。

每个packse命令都支持读取多个场景文件。例如,使用list

packse list scenarios/examples/example.json scenarios/requires-does-not-exist.json

查看场景

可以使用view命令预览场景的依赖树

$ packse view scenarios/examples/example.json
example-89cac9f1
├── root
│   └── requires a
│       └── satisfied by a-1.0.0
├── a
│   └── a-1.0.0
│       └── requires b>1.0.0
│           ├── satisfied by b-2.0.0
│           └── satisfied by b-3.0.0
└── b
    ├── b-1.0.0
    ├── b-2.0.0
    │   └── requires c
    │       └── unsatisfied: no versions for package
    └── b-3.0.0

注意,默认情况下,view命令将查看文件中的所有场景。可以通过提供--name选项查看单个场景

$ packse view scenarios/examples/example.json --name example
example

This is an example scenario, in which the user depends on a single package `a` which requires `b`

example-89cac9f1
├── root
│   └── requires a
│       └── satisfied by a-1.0.0
├── a
│   └── a-1.0.0
│       └── requires b>1.0.0
│           ├── satisfied by b-2.0.0
│           └── satisfied by b-3.0.0
└── b
    ├── b-1.0.0
    ├── b-2.0.0
    │   └── requires c
    │       └── unsatisfied: no versions for package
    └── b-3.0.0

注意,当指定特定场景时,会显示更多信息。

构建场景

场景可用于生成软件包和构建发行版

packse build scenario/example.json

build/ 目录将包含场景中所有软件包的源代码。 dist/ 目录将包含场景中所有软件包的构建发行版。

当构建场景时,它将根据场景内容的项目模板的哈希值获得一个唯一的标识符。场景中的每个软件包和需求都将以前缀标识符开头。可以使用 --no-hash 参数排除唯一标识符,但这样做将防止多次向不允许覆盖的注册表发布。

可以使用 PACKSE_VERSION_SEED 环境变量来覆盖生成唯一标识符时使用的种子,允许版本根据 packse 以外的信息有所不同。

发布场景

可以使用 publish 命令将构建的场景发布到 Python 包索引

packse publish dist/example-cd797223

默认情况下,软件包会发布到测试 PyPI 服务器。

必须通过 PACKSE_PYPI_PASSWORD 环境变量提供凭证。如果未使用 API 令牌,则可以使用 PACKSE_PYPI_USERNAME 设置用户名。如果使用不需要身份验证的服务器,可以传递 --anonymous 标志。

运行包索引

需要使用 index 额外安装

可以使用 index 命令控制本地包索引。例如,要启动本地包索引

packse index up

可以通过传递 --bg 标志以在后台运行索引。在后台运行索引时,状态将存储在 ~/.packse 目录中。可以使用 PACKSE_STATE_PATH 环境变量更改状态路径。

可以通过将 --index-url 标志传递给安装程序(例如使用 pip)来安装软件包

pip install --index-url http://127.0.0.1:3141 example-0611cb74

可以通过向 publish 命令提供 --index-url--anonymous 标志将软件包发布到索引

packse publish dist/example-cd797223 --index-url http://localhost:3141 --anonymous

还可以通过将软件包的发行版放置在配置的 --dist-dir 中将软件包发布到索引。默认为 ./dist,这是 packse build 使用的默认位置。

默认情况下,索引将回退到 PyPI 以获取缺失的软件包。要单独测试,请使用 --offline 标志。

要停止后台运行的索引,请使用 packse index down

packse index down

托管场景

需要使用 serve 额外安装

可以使用 serve 命令一次性托管、构建和发布场景。

packse serve scenarios

packse 将监视 scenarios 目录的更改,并在每次更改时发布新版本。

请注意,在开发过程中,通常使用 --no-hash 标志来避免确定场景的最新哈希值。

测试场景

然后可以使用您选择的包管理器测试已发布的场景。

例如,使用 pip

pip install -i https://test.pypi.org/simple/ example-cd797223

导出场景

可以使用 packse inspect 导出场景信息。这会创建场景的 JSON 表示,包括根软件包名称和在 packse view 期间显示的树等额外生成的信息。

编写新场景

场景文件可能包含一个或多个用 JSON 编写的场景。有关示例,请参阅现有场景,有关支持的架构的详细信息,请参阅 Scenario 类型。

项目详情


下载文件

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

源分发

packse-0.3.37.tar.gz (5.9 MB 查看哈希值)

上传时间

构建分发

packse-0.3.37-py3-none-any.whl (36.1 kB 查看哈希值)

上传时间 Python 3