From b9ee4626d35da22392504e1c0198bc83c862eb29 Mon Sep 17 00:00:00 2001 From: Donkie Date: Mon, 10 Jul 2023 11:45:46 +0200 Subject: [PATCH] Moved version to the FastAPI app instead --- spoolman/env.py | 10 ++++++++++ spoolman/main.py | 12 ++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/spoolman/env.py b/spoolman/env.py index 0b17486..e62c792 100644 --- a/spoolman/env.py +++ b/spoolman/env.py @@ -7,6 +7,7 @@ from pathlib import Path from typing import Optional from urllib import parse +import pkg_resources from platformdirs import user_data_dir @@ -235,3 +236,12 @@ def get_backups_dir() -> Path: backups_dir = data_dir.joinpath("backups") backups_dir.mkdir(parents=True, exist_ok=True) return backups_dir + + +def get_version() -> str: + """Get the version of the package. + + Returns: + str: The version. + """ + return pkg_resources.get_distribution("spoolman").version diff --git a/spoolman/main.py b/spoolman/main.py index 9855477..2eecd3c 100644 --- a/spoolman/main.py +++ b/spoolman/main.py @@ -7,7 +7,6 @@ from logging.handlers import TimedRotatingFileHandler from pathlib import Path from typing import Union -import pkg_resources import uvicorn from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware @@ -18,9 +17,6 @@ from spoolman import env from spoolman.api.v1.router import app as v1_app from spoolman.database import database -# Get version from package metadata -version = pkg_resources.get_distribution("spoolman").version - # Define a file logger with log rotation log_file = env.get_data_dir().joinpath("spoolman.log") file_handler = TimedRotatingFileHandler(log_file, when="midnight", backupCount=5) @@ -58,7 +54,11 @@ class SinglePageApplication(StaticFiles): return (full_path, stat_result) -app = FastAPI(debug=env.is_debug_mode()) +app = FastAPI( + debug=env.is_debug_mode(), + title="Spoolman", + version=env.get_version(), +) app.mount("/api/v1", v1_app) app.mount("/", app=SinglePageApplication(directory="client/dist"), name="client") @@ -79,7 +79,7 @@ if env.is_debug_mode(): @app.on_event("startup") async def startup() -> None: """Run the service's startup sequence.""" - logger.info("Starting Spoolman v%s...", version) + logger.info("Starting Spoolman v%s...", app.version) logger.info("Setting up database...") database.setup_db(database.get_connection_url())