diff --git a/app.py b/app.py index 5df3657..fa1f4ab 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,6 @@ import os +import tomllib +from pathlib import Path import dotenv from flask import Flask @@ -8,6 +10,21 @@ from storages.factory import StorageFactory dotenv.load_dotenv() + +# 从 pyproject.toml 读取版本号 +def get_version() -> str: + """从 pyproject.toml 读取项目版本号""" + try: + pyproject_path = Path(__file__).parent / "pyproject.toml" + with open(pyproject_path, "rb") as f: + pyproject_data = tomllib.load(f) + return pyproject_data.get("project", {}).get("version", "0.0.0") + except Exception: + return "0.0.0" + + +__version__ = get_version() + app = Flask(__name__) @@ -100,9 +117,7 @@ def format_timestamp(timestamp) -> str: return storage.format_timestamp(timestamp) -def generate_presigned_url( - s3_client, bucket_name: str, key: str, expires: int = None -) -> str: +def generate_presigned_url(s3_client, bucket_name: str, key: str, expires: int = None) -> str: """为指定对象生成 presigned URL(GET)。""" return storage.generate_presigned_url(key, expires) @@ -112,6 +127,13 @@ def get_file_url(key: str) -> str: return f"/file/{key}" +# 注册全局模板变量 +@app.context_processor +def inject_version(): + """向所有模板注入版本号""" + return {"app_version": __version__} + + if __name__ == "__main__": port = int(os.environ.get("PORT", 5000)) host = os.environ.get("HOST", "0.0.0.0") diff --git a/pyproject.toml b/pyproject.toml index e9f850e..3e2f1dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [project] name = "Cloud-Index" -version = "0.1.0" +version = "0.9.0" description = "A cloud storage index system based on a number of cloud storage platforms" authors = [{ name = "RhenCloud", email = "i@rhen.cloud" }] readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" dependencies = [ "flask>=3.1.2", "uvicorn[standard]>=0.38.0", @@ -28,7 +28,7 @@ dev = ["ruff>=0.1.6"] # build-backend = "setuptools.build_meta" [tool.ruff] -line-length = 88 +line-length = 120 select = [ "E", # pycodestyle errors "W", # pycodestyle warnings diff --git a/templates/footer.html b/templates/footer.html index b4d7dad..bbe84f2 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -5,5 +5,7 @@ GitHub · 联系 + · + v{{ app_version }}