Ai
1 Star 1 Fork 3

incoding/jimuflow

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
generate_version_info.py 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
# generate_version_info.py
import subprocess
from pathlib import Path
import tomli
PROJECT_DIR = Path(__file__).parent
PKG_DIR = PROJECT_DIR / "jimuflow"
VERSION_FILE = PKG_DIR / "version_info.py"
def get_version():
with open(PROJECT_DIR / "pyproject.toml", "rb") as f:
data = tomli.load(f)
return data["project"]["version"]
def get_git_info():
def run_git(cmd):
try:
return subprocess.check_output(cmd, stderr=subprocess.DEVNULL).decode("utf-8").strip()
except (subprocess.CalledProcessError, FileNotFoundError):
return "unknown"
return {
"commit_hash": run_git(["git", "rev-parse", "HEAD"]),
"branch": run_git(["git", "rev-parse", "--abbrev-ref", "HEAD"]),
"tag": run_git(["git", "describe", "--tags", "--always"]),
"commit_date": run_git(["git", "show", "-s", "--format=%ci", "HEAD"]),
}
def main():
version = get_version()
git_info = get_git_info()
content = f'''# Auto-generated during packaging, do not edit this file manually.
__version__ = "{version}"
__git_commit__ = "{git_info['commit_hash']}"
__git_branch__ = "{git_info['branch']}"
__git_tag__ = "{git_info['tag']}"
__git_commit_date__ = "{git_info['commit_date']}"
'''
VERSION_FILE.parent.mkdir(exist_ok=True)
VERSION_FILE.write_text(content)
if __name__ == "__main__":
main()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/incoding/jimuflow.git
git@gitee.com:incoding/jimuflow.git
incoding
jimuflow
jimuflow
main

搜索帮助