未提供项目描述
项目描述
packse
Python打包场景。
安装
从PyPI安装
uv pip install packse
安装完成后,将可用packse
命令行界面。
用法
场景
场景是依赖树的一个JSON描述。
每个场景文件可以包含一个或多个场景。
列出场景
可以使用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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7db3ac867a7eacd3684e56d5451f1deed6ff7b4918da5688325044b025a8ca14 |
|
MD5 | b70e6d90623d4109aa3b5738e972fc4f |
|
BLAKE2b-256 | 52392b2b8c13e983c347e63ca77ed7fc788b260a8ee9a8357b449da15f546aa6 |
packse-0.3.37-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 816e5400abdc1261870413d2680f16e3bd4d2c43e3684d79396b4774aa91970c |
|
MD5 | c4cf511e81c6995daa9df979c91cb2ce |
|
BLAKE2b-256 | 7f8b09c337d26444b4c45d64da3a814aa4ae25f74cf955fb81095daa2932065e |