python-3.x 从pyproject.toml文件更新软件包版本的最佳方法

qnakjoqk  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(247)

我的工作流在包的init.py中嵌入了一个__version__包变量。当使用poetry version patch(或类似的)更新包版本时,我希望我的嵌入式__version__变量也更新。
我目前使用的预提交钩子(git)是这样的:

#!/bin/bash

read name version < <(poetry version)

read pversion < <(python -c  "from ${name} import __version__;print(__version__)")

init=${name}/__init__.py

if [[ "${pversion}" != "${version}" ]]; then
    (
cat <<-UPDATEINIT
""" ${name} package"""
__version__ = "${version}"
UPDATEINIT
    ) >$init
    git add $init
fi

有没有更好的方法,我错过了,因为钩似乎有点'笨重'。

4c8rllxm

4c8rllxm1#

已经有一种使用pyproject.toml的有用方法,它使用动态元数据,如

[tool.setuptools.dynamic]
version = {attr = "my_package.__version__"}
readme = {file = "README.md"}

From setuptools guide

相关问题