From 2c6fdc03a884f80b30d62bd83becd0b6b77cfb30 Mon Sep 17 00:00:00 2001 From: zwitschi Date: Mon, 27 Apr 2026 21:12:10 +0200 Subject: [PATCH] Refactor import statements across multiple modules to use relative paths for better organization and maintainability. Co-authored-by: Copilot --- backend/app/dependencies.py | 2 +- backend/app/main.py | 12 ++++++------ backend/app/routers/admin.py | 4 ++-- backend/app/routers/ai.py | 6 +++--- backend/app/routers/auth.py | 6 +++--- backend/app/routers/generate.py | 6 +++--- backend/app/routers/users.py | 6 +++--- backend/app/services/auth.py | 2 +- backend/app/services/users.py | 4 ++-- backend/tests/test_admin.py | 4 ++-- backend/tests/test_ai.py | 4 ++-- backend/tests/test_auth.py | 4 ++-- backend/tests/test_db.py | 2 +- backend/tests/test_generate.py | 4 ++-- backend/tests/test_users.py | 4 ++-- 15 files changed, 35 insertions(+), 35 deletions(-) diff --git a/backend/app/dependencies.py b/backend/app/dependencies.py index 56d316a..74419e6 100644 --- a/backend/app/dependencies.py +++ b/backend/app/dependencies.py @@ -3,7 +3,7 @@ from fastapi import Depends, HTTPException, status from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from jose import JWTError -from backend.app.services.auth import decode_token +from .services.auth import decode_token _bearer = HTTPBearer() diff --git a/backend/app/main.py b/backend/app/main.py index ac9e79e..2094998 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,9 +1,9 @@ -from backend.app.routers import auth as auth_router -from backend.app.routers import users as users_router -from backend.app.routers import admin as admin_router -from backend.app.routers import ai as ai_router -from backend.app.routers import generate as generate_router -from backend.app.db import close_db, init_db +from .routers import auth as auth_router +from .routers import users as users_router +from .routers import admin as admin_router +from .routers import ai as ai_router +from .routers import generate as generate_router +from .db import close_db, init_db import os from contextlib import asynccontextmanager diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py index 4694d4a..e085907 100644 --- a/backend/app/routers/admin.py +++ b/backend/app/routers/admin.py @@ -3,8 +3,8 @@ from datetime import datetime, timezone from fastapi import APIRouter, Depends -from backend.app.db import get_conn, get_write_lock -from backend.app.dependencies import require_admin +from ..db import get_conn, get_write_lock +from ..dependencies import require_admin router = APIRouter(prefix="/admin", tags=["admin"]) diff --git a/backend/app/routers/ai.py b/backend/app/routers/ai.py index fe52967..f887712 100644 --- a/backend/app/routers/ai.py +++ b/backend/app/routers/ai.py @@ -1,9 +1,9 @@ """AI router: model listing and chat completions via OpenRouter.""" from fastapi import APIRouter, Depends, HTTPException, status -from backend.app.dependencies import get_current_user -from backend.app.models.ai import ChatRequest, ChatResponse, ModelInfo -from backend.app.services import openrouter +from ..dependencies import get_current_user +from ..models.ai import ChatRequest, ChatResponse, ModelInfo +from ..services import openrouter router = APIRouter(prefix="/ai", tags=["ai"]) diff --git a/backend/app/routers/auth.py b/backend/app/routers/auth.py index a975e93..f8907cc 100644 --- a/backend/app/routers/auth.py +++ b/backend/app/routers/auth.py @@ -4,8 +4,8 @@ import uuid from fastapi import APIRouter, HTTPException, status from jose import JWTError -from backend.app.models.auth import LoginRequest, RefreshRequest, RegisterRequest, TokenResponse -from backend.app.services.auth import ( +from ..models.auth import LoginRequest, RefreshRequest, RegisterRequest, TokenResponse +from ..services.auth import ( authenticate_user, create_access_token, create_refresh_token, @@ -71,7 +71,7 @@ async def refresh(body: RefreshRequest) -> TokenResponse: new_jti = str(uuid.uuid4()) await store_refresh_token(user_id, new_jti) - from backend.app.db import get_conn + from ..db import get_conn conn = get_conn() row = conn.execute( "SELECT email, role FROM users WHERE id = ?", [user_id] diff --git a/backend/app/routers/generate.py b/backend/app/routers/generate.py index 94c2abc..3661d33 100644 --- a/backend/app/routers/generate.py +++ b/backend/app/routers/generate.py @@ -1,8 +1,8 @@ """Generate router: text, image, video, and image-to-video generation.""" from fastapi import APIRouter, Depends, HTTPException, status -from backend.app.dependencies import get_current_user -from backend.app.models.ai import ( +from ..dependencies import get_current_user +from ..models.ai import ( ImageRequest, ImageResponse, ImageResult, @@ -12,7 +12,7 @@ from backend.app.models.ai import ( VideoRequest, VideoResponse, ) -from backend.app.services import openrouter +from ..services import openrouter router = APIRouter(prefix="/generate", tags=["generate"]) diff --git a/backend/app/routers/users.py b/backend/app/routers/users.py index 212d61f..155fe53 100644 --- a/backend/app/routers/users.py +++ b/backend/app/routers/users.py @@ -1,9 +1,9 @@ """Users router: self-service profile and admin user management.""" from fastapi import APIRouter, Depends, HTTPException, status -from backend.app.dependencies import get_current_user, require_admin -from backend.app.models.users import SetRoleRequest, UpdateUserRequest, UserResponse -from backend.app.services.users import ( +from ..dependencies import get_current_user, require_admin +from ..models.users import SetRoleRequest, UpdateUserRequest, UserResponse +from ..services.users import ( delete_user, get_user, list_users, diff --git a/backend/app/services/auth.py b/backend/app/services/auth.py index f26f360..c1e5ac0 100644 --- a/backend/app/services/auth.py +++ b/backend/app/services/auth.py @@ -6,7 +6,7 @@ from typing import Any from jose import JWTError, jwt from passlib.context import CryptContext -from backend.app.db import get_conn, get_write_lock +from ..db import get_conn, get_write_lock _pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") diff --git a/backend/app/services/users.py b/backend/app/services/users.py index 3d201b4..e88b9a2 100644 --- a/backend/app/services/users.py +++ b/backend/app/services/users.py @@ -1,8 +1,8 @@ """User management service: CRUD helpers against DuckDB.""" from typing import Any -from backend.app.db import get_conn, get_write_lock -from backend.app.services.auth import hash_password +from ..db import get_conn, get_write_lock +from .auth import hash_password async def get_user(user_id: str) -> dict[str, Any] | None: diff --git a/backend/tests/test_admin.py b/backend/tests/test_admin.py index c273dff..9861b96 100644 --- a/backend/tests/test_admin.py +++ b/backend/tests/test_admin.py @@ -4,8 +4,8 @@ import pytest import pytest_asyncio from httpx import AsyncClient, ASGITransport -from backend.app.main import app -from backend.app import db as db_module +from app.main import app +from app import db as db_module os.environ.setdefault("JWT_SECRET", "test-secret-key-for-testing-only") diff --git a/backend/tests/test_ai.py b/backend/tests/test_ai.py index 40d91bb..3c098db 100644 --- a/backend/tests/test_ai.py +++ b/backend/tests/test_ai.py @@ -5,8 +5,8 @@ import pytest_asyncio from unittest.mock import AsyncMock, patch from httpx import AsyncClient, ASGITransport -from backend.app.main import app -from backend.app import db as db_module +from app.main import app +from app import db as db_module os.environ.setdefault("JWT_SECRET", "test-secret-key-for-testing-only") os.environ.setdefault("OPENROUTER_API_KEY", "test-key") diff --git a/backend/tests/test_auth.py b/backend/tests/test_auth.py index 4e74cb0..5051e5c 100644 --- a/backend/tests/test_auth.py +++ b/backend/tests/test_auth.py @@ -1,6 +1,6 @@ """Integration tests for auth endpoints using in-memory DuckDB.""" -from backend.app.main import app -from backend.app import db as db_module +from app.main import app +from app import db as db_module from httpx import AsyncClient, ASGITransport import os import pytest diff --git a/backend/tests/test_db.py b/backend/tests/test_db.py index ea89658..d8555c0 100644 --- a/backend/tests/test_db.py +++ b/backend/tests/test_db.py @@ -3,7 +3,7 @@ import asyncio import pytest import duckdb -from backend.app import db as db_module +from app import db as db_module @pytest.fixture(autouse=True) diff --git a/backend/tests/test_generate.py b/backend/tests/test_generate.py index 1f717c7..2d92d5c 100644 --- a/backend/tests/test_generate.py +++ b/backend/tests/test_generate.py @@ -5,8 +5,8 @@ import pytest_asyncio from unittest.mock import AsyncMock, patch from httpx import AsyncClient, ASGITransport -from backend.app.main import app -from backend.app import db as db_module +from app.main import app +from app import db as db_module os.environ.setdefault("JWT_SECRET", "test-secret-key-for-testing-only") os.environ.setdefault("OPENROUTER_API_KEY", "test-key") diff --git a/backend/tests/test_users.py b/backend/tests/test_users.py index 5c6e3c5..bc5f4af 100644 --- a/backend/tests/test_users.py +++ b/backend/tests/test_users.py @@ -4,8 +4,8 @@ import pytest import pytest_asyncio from httpx import AsyncClient, ASGITransport -from backend.app.main import app -from backend.app import db as db_module +from app.main import app +from app import db as db_module os.environ.setdefault("JWT_SECRET", "test-secret-key-for-testing-only")