From f2b98aa259271adb4b86d517e761b9e27a44b65e Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Fri, 26 Jun 2026 18:21:00 +0800 Subject: [PATCH] fix(P2-4): Add return type annotations to dependencies.py --- apps/api/app/dependencies.py | 45 +++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/apps/api/app/dependencies.py b/apps/api/app/dependencies.py index e0c0d57ac..68ffd8e25 100644 --- a/apps/api/app/dependencies.py +++ b/apps/api/app/dependencies.py @@ -1,9 +1,9 @@ import redis -from app.config import settings +from app.config import get_settings from fastapi import Depends from sqlalchemy.orm import Session -from packages.adapters.redis import NoopSessionStore, SessionStore +from packages.adapters.redis import NoopSessionStore, SessionStore, get_session_store from packages.adapters.smtp import EmailConfig, NoopEmailService, get_email_service from packages.adapters.sqlalchemy_impl.asset_library_repository import ( SQLAlchemyAssetLibraryRepository, @@ -29,18 +29,25 @@ from packages.adapters.sqlalchemy_impl.project_title_repository import ( ) from packages.adapters.sqlalchemy_impl.session import build_session_factory from packages.adapters.sqlalchemy_impl.user_repository import SQLAlchemyUserRepository -from packages.adapters.sqlalchemy_impl.workspace_invitation_repository import SQLAlchemyWorkspaceInvitationRepository -from packages.adapters.sqlalchemy_impl.workspace_member_repository import SQLAlchemyWorkspaceMemberRepository -from packages.adapters.sqlalchemy_impl.workspace_repository import SQLAlchemyWorkspaceRepository +from packages.adapters.sqlalchemy_impl.workspace_invitation_repository import ( + SQLAlchemyWorkspaceInvitationRepository, +) +from packages.adapters.sqlalchemy_impl.workspace_member_repository import ( + SQLAlchemyWorkspaceMemberRepository, +) +from packages.adapters.sqlalchemy_impl.workspace_repository import ( + SQLAlchemyWorkspaceRepository, +) from packages.ports.user_repository import UserRepository from packages.ports.workspace_invitation_repository import WorkspaceInvitationRepository from packages.ports.workspace_member_repository import WorkspaceMemberRepository from packages.ports.workspace_repository import WorkspaceRepository -_engine, _SessionLocal = build_session_factory(settings.DATABASE_URL) +_engine, _SessionLocal = build_session_factory(get_settings().DATABASE_URL) -def get_db_session(): +def get_db_session() -> Session: + """Get database session with automatic cleanup.""" session: Session = _SessionLocal() try: yield session @@ -120,24 +127,24 @@ def get_workspace_invitation_repository( return SQLAlchemyWorkspaceInvitationRepository(session) -def get_auth_session_store(): - if not settings.ENABLE_REDIS_SESSIONS: +def get_auth_session_store() -> SessionStore: + if not get_settings().ENABLE_REDIS_SESSIONS: return NoopSessionStore() - return SessionStore(redis_client=redis.from_url(settings.REDIS_URL, decode_responses=True)) + return SessionStore(redis_client=redis.from_url(get_settings().REDIS_URL, decode_responses=True)) -def get_auth_email_service(): - if not settings.ENABLE_EMAIL_DELIVERY: +def get_auth_email_service() -> EmailConfig: + if not get_settings().ENABLE_EMAIL_DELIVERY: return NoopEmailService() return get_email_service( EmailConfig( - smtp_host=settings.SMTP_HOST, - smtp_port=settings.SMTP_PORT, - smtp_user=settings.SMTP_USER, - smtp_password=settings.SMTP_PASSWORD, - from_email=settings.SMTP_FROM_EMAIL, - from_name=settings.SMTP_FROM_NAME, - use_tls=settings.SMTP_USE_TLS, + smtp_host=get_settings().SMTP_HOST, + smtp_port=get_settings().SMTP_PORT, + smtp_user=get_settings().SMTP_USER, + smtp_password=get_settings().SMTP_PASSWORD, + from_email=get_settings().SMTP_FROM_EMAIL, + from_name=get_settings().SMTP_FROM_NAME, + use_tls=get_settings().SMTP_USE_TLS, ), enabled=True, )