From 5dfba7416b395467194a6cb6490e17a8146dc035 Mon Sep 17 00:00:00 2001 From: Pascal Scheiben Date: Thu, 18 Sep 2025 15:00:03 +0200 Subject: [PATCH] Refactoring config to config_upload, making important vars global --- src/config/__init__.py | 3 --- src/config/service.py | 2 -- src/config_upload/__init__.py | 3 +++ src/{config => config_upload}/config.http | 0 src/{config => config_upload}/router.py | 5 ++++- src/{config => config_upload}/schema.py | 2 +- src/config_upload/service.py | 2 ++ src/main.py | 11 ++++++++--- 8 files changed, 18 insertions(+), 10 deletions(-) delete mode 100644 src/config/__init__.py delete mode 100644 src/config/service.py create mode 100644 src/config_upload/__init__.py rename src/{config => config_upload}/config.http (100%) rename src/{config => config_upload}/router.py (80%) rename src/{config => config_upload}/schema.py (84%) create mode 100644 src/config_upload/service.py diff --git a/src/config/__init__.py b/src/config/__init__.py deleted file mode 100644 index c97d2ea..0000000 --- a/src/config/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from src.config.router import router as config_router - -__all__ = ["config_router"] diff --git a/src/config/service.py b/src/config/service.py deleted file mode 100644 index fcdf606..0000000 --- a/src/config/service.py +++ /dev/null @@ -1,2 +0,0 @@ -# contains the business logic for the config service -async def save_config() -> None: ... diff --git a/src/config_upload/__init__.py b/src/config_upload/__init__.py new file mode 100644 index 0000000..a39f85c --- /dev/null +++ b/src/config_upload/__init__.py @@ -0,0 +1,3 @@ +from src.config_upload.router import router as config_router + +__all__ = ["config_router"] diff --git a/src/config/config.http b/src/config_upload/config.http similarity index 100% rename from src/config/config.http rename to src/config_upload/config.http diff --git a/src/config/router.py b/src/config_upload/router.py similarity index 80% rename from src/config/router.py rename to src/config_upload/router.py index f9abe76..3f17183 100644 --- a/src/config/router.py +++ b/src/config_upload/router.py @@ -3,10 +3,12 @@ import logging from fastapi import APIRouter from .schema import ConfigReturnSchema, ConfigSchema +from src.database import get_config_from_db +from src.main import shared_redis_conn logger = logging.getLogger("uvicorn") -router = APIRouter(tags=["config"]) +router = APIRouter(tags=["config_upload"]) @router.post( @@ -20,3 +22,4 @@ async def create_config(config: ConfigSchema) -> ConfigSchema: """ logger.info("Received configuration data") return config + diff --git a/src/config/schema.py b/src/config_upload/schema.py similarity index 84% rename from src/config/schema.py rename to src/config_upload/schema.py index fb6e2f1..57c49c6 100644 --- a/src/config/schema.py +++ b/src/config_upload/schema.py @@ -1,4 +1,4 @@ -# contains the schema definitions for the config service +# contains the schema definitions for the config_upload service from pydantic import BaseModel diff --git a/src/config_upload/service.py b/src/config_upload/service.py new file mode 100644 index 0000000..88b459e --- /dev/null +++ b/src/config_upload/service.py @@ -0,0 +1,2 @@ +# contains the business logic for the config_upload service +async def save_config() -> None: ... diff --git a/src/main.py b/src/main.py index a942769..1ee061a 100644 --- a/src/main.py +++ b/src/main.py @@ -3,8 +3,11 @@ import logging import httpx from fastapi import FastAPI +shared_redis_conn = None +requests_client = None + from src.aggregate import aggregate_router -from src.config import config_router +from src.config_upload import config_router from contextlib import asynccontextmanager @@ -17,9 +20,11 @@ logger.setLevel("DEBUG") logger.info("Starting application") + @asynccontextmanager async def lifespan(app: FastAPI): """make loading it async""" + global shared_redis_conn, requests_client log = logging.getLogger("uvicorn") cfg_init_result = initialize_config() @@ -33,9 +38,9 @@ async def lifespan(app: FastAPI): if not cfg_init_result: log.error("Configuration initialization failed. Exiting...") # exit(1) - app.requests_client = httpx.AsyncClient(verify=False) + requests_client = httpx.AsyncClient(verify=False) yield - await app.requests_client.aclose() + await requests_client.aclose() log.info("Shutting down FastAPI app...")