From c9a755206ec5d34355ecde4eba1850ad6d80dff5 Mon Sep 17 00:00:00 2001 From: Piotr Dec Date: Wed, 3 Dec 2025 20:49:00 +0100 Subject: [PATCH] fix: Imports --- pyproject.toml | 2 +- src/karl/__init__.py | 19 ++++++++++++++++++- src/karl/api/v1.py | 8 ++++---- src/karl/config/settings.py | 2 +- src/karl/core/injects.py | 2 +- src/karl/core/woodpecker.py | 8 ++++---- src/karl/main.py | 24 +++++------------------- src/karl/services/containers.py | 2 +- src/karl/services/mo.py | 2 +- src/karl/services/passwords.py | 2 +- src/karl/services/vcs.py | 2 +- tests/test_mo.py | 4 ++-- 12 files changed, 40 insertions(+), 37 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 338042f..5532749 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,7 @@ dev = [ ] [project.scripts] -karl = "karl:main" +karl = "karl.main:run" [build-system] requires = ["uv_build>=0.8.23,<0.9.0"] diff --git a/src/karl/__init__.py b/src/karl/__init__.py index 862bbe5..5dec085 100644 --- a/src/karl/__init__.py +++ b/src/karl/__init__.py @@ -1,2 +1,19 @@ +from config import get_settings + + def main() -> None: - print("Hello from karl!") + import uvicorn + + settings = get_settings() + uvicorn.run( + "karl.main:run", + factory=True, + host=settings.app.host, + port=settings.app.port, + reload=settings.app.reload, + log_config=None, + ) + + +if __name__ == "__main__": + main() diff --git a/src/karl/api/v1.py b/src/karl/api/v1.py index a012834..9bbbfbc 100644 --- a/src/karl/api/v1.py +++ b/src/karl/api/v1.py @@ -3,10 +3,10 @@ from fastapi import APIRouter, Depends from fastapi_utils.cbv import cbv from starlette.responses import JSONResponse, Response -from app.api.models import Request -from app.core.injects import AutowireSupport -from app.core.woodpecker import Woodpecker -from app.model.webhook import WoodpeckerEvent +from api.models import Request +from core.injects import AutowireSupport +from core.woodpecker import Woodpecker +from model.webhook import WoodpeckerEvent router = APIRouter() diff --git a/src/karl/config/settings.py b/src/karl/config/settings.py index 9374c96..72c4a66 100644 --- a/src/karl/config/settings.py +++ b/src/karl/config/settings.py @@ -37,7 +37,7 @@ class Settings(BaseSettings): kp: KeePassConfig = KeePassConfig() @classmethod - def from_yaml(cls, path: Path | str = "config/config.yaml") -> "Settings": + def from_yaml(cls, path: Path | str = "../../config/config.yaml") -> "Settings": p = Path(path) data = {} if p.exists(): diff --git a/src/karl/core/injects.py b/src/karl/core/injects.py index 115ae95..623fa59 100644 --- a/src/karl/core/injects.py +++ b/src/karl/core/injects.py @@ -1,6 +1,6 @@ from injectable import inject -from app.core.woodpecker import Woodpecker +from core.woodpecker import Woodpecker class AutowireSupport: diff --git a/src/karl/core/woodpecker.py b/src/karl/core/woodpecker.py index 1892c0b..2b66014 100644 --- a/src/karl/core/woodpecker.py +++ b/src/karl/core/woodpecker.py @@ -6,10 +6,10 @@ from typing import Annotated from injectable import injectable, Autowired, autowired -from app.config import get_settings -from app.model.webhook import WoodpeckerEvent -from app.services import GitService, DockerService -from app.services.mo import Mo +from config import get_settings +from model.webhook import WoodpeckerEvent +from services import GitService, DockerService +from services.mo import Mo logger = logging.getLogger(__name__) diff --git a/src/karl/main.py b/src/karl/main.py index 669d2d4..dbd5033 100644 --- a/src/karl/main.py +++ b/src/karl/main.py @@ -3,8 +3,8 @@ import logging from fastapi import FastAPI from injectable import load_injection_container -from app.config import get_settings -from app.util.logging import HandlerFactory +from config import get_settings +from util.logging import HandlerFactory class KarlApplication: @@ -45,13 +45,13 @@ class KarlApplication: logging_logger.propagate = False def _set_middlewares(self, app: FastAPI): - from app.web.middlewares import LoggingMiddleware + from web.middlewares import LoggingMiddleware app.add_middleware(LoggingMiddleware) def _set_routes(self, app: FastAPI): - from app.core.router import router as core_router + from core.router import router as core_router app.include_router(core_router) - from app.api.v1 import router as api_v1_router + from api.v1 import router as api_v1_router app.include_router(api_v1_router, prefix="/api/v1", tags=["v1"]) pass @@ -61,17 +61,3 @@ class KarlApplication: def run(): return KarlApplication() - - -if __name__ == "__main__": - import uvicorn - - settings = get_settings() - uvicorn.run( - "app.main:run", - factory=True, - host=settings.app.host, - port=settings.app.port, - reload=settings.app.reload, - log_config=None, - ) diff --git a/src/karl/services/containers.py b/src/karl/services/containers.py index 3f438f6..8803913 100644 --- a/src/karl/services/containers.py +++ b/src/karl/services/containers.py @@ -5,7 +5,7 @@ import docker from docker.models.containers import Container from injectable import injectable -from app.model.containers import Tree, Compose, SimpleContainer +from model.containers import Tree, Compose, SimpleContainer logger = logging.getLogger(__name__) diff --git a/src/karl/services/mo.py b/src/karl/services/mo.py index 84792f7..9d5756e 100644 --- a/src/karl/services/mo.py +++ b/src/karl/services/mo.py @@ -4,7 +4,7 @@ from typing import Annotated from injectable import injectable, autowired, Autowired -from app.services import Passwords +from services import Passwords class ValueTemplate(Template): diff --git a/src/karl/services/passwords.py b/src/karl/services/passwords.py index e851d4e..19f8128 100644 --- a/src/karl/services/passwords.py +++ b/src/karl/services/passwords.py @@ -34,7 +34,7 @@ class KeyRequest: @injectable(singleton=True) class Passwords: def __init__(self): - from app.config import get_settings + from config import get_settings settings = get_settings() with open(settings.kp.secret, "r") as fh: diff --git a/src/karl/services/vcs.py b/src/karl/services/vcs.py index 0e97ec8..8796787 100644 --- a/src/karl/services/vcs.py +++ b/src/karl/services/vcs.py @@ -1,7 +1,7 @@ from git import Repo, Remote from injectable import injectable -from app.config import GitConfig, get_settings +from config import GitConfig, get_settings @injectable(singleton=True) diff --git a/tests/test_mo.py b/tests/test_mo.py index 01e63c0..b83529a 100644 --- a/tests/test_mo.py +++ b/tests/test_mo.py @@ -3,8 +3,8 @@ from pathlib import Path import pytest import yaml -from app.services import Passwords -from app.services.mo import Mo +from karl.services import Passwords +from karl.services.mo import Mo @pytest.fixture(scope='class')