From 96530620036d9e7a5a6bb8deb32b7fff5e6de311 Mon Sep 17 00:00:00 2001 From: JSC Date: Tue, 19 Aug 2025 22:32:19 +0200 Subject: [PATCH] refactor: Move imports to avoid circular dependencies in socket and VLCPlayerService --- app/services/socket.py | 6 ++++-- app/services/vlc_player.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/services/socket.py b/app/services/socket.py index 83c5c06..c364fbd 100644 --- a/app/services/socket.py +++ b/app/services/socket.py @@ -5,8 +5,6 @@ import logging import socketio from app.core.config import settings -from app.core.database import get_session_factory -from app.services.vlc_player import get_vlc_player_service from app.utils.auth import JWTUtils from app.utils.cookies import extract_access_token_from_cookies @@ -123,6 +121,10 @@ class SocketManager: return try: + # Import here to avoid circular imports + from app.core.database import get_session_factory # noqa: PLC0415 + from app.services.vlc_player import get_vlc_player_service # noqa: PLC0415 + # Get VLC player service with database factory vlc_player = get_vlc_player_service(get_session_factory()) diff --git a/app/services/vlc_player.py b/app/services/vlc_player.py index 063cab8..2c7aac9 100644 --- a/app/services/vlc_player.py +++ b/app/services/vlc_player.py @@ -6,7 +6,6 @@ from collections.abc import Callable from pathlib import Path from typing import Any -from fastapi import HTTPException, status from sqlmodel.ext.asyncio.session import AsyncSession from app.core.logging import get_logger @@ -15,7 +14,6 @@ from app.models.sound import Sound from app.models.sound_played import SoundPlayed from app.repositories.sound import SoundRepository from app.repositories.user import UserRepository -from app.services.credit import CreditService, InsufficientCreditsError from app.services.socket import socket_manager from app.utils.audio import get_sound_file_path @@ -332,6 +330,9 @@ class VLCPlayerService: insufficient credits, VLC failure) """ + from fastapi import HTTPException, status # noqa: PLC0415, I001 + from app.services.credit import CreditService, InsufficientCreditsError # noqa: PLC0415 + if not self.db_session_factory: raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,