我的工作流在包的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
有没有更好的方法,我错过了,因为钩似乎有点'笨重'。
1条答案
按热度按时间4c8rllxm1#
已经有一种使用
pyproject.toml
的有用方法,它使用动态元数据,如From setuptools guide