From 336a4ad9a1ad9cbe48141ac1e0e41b6a7caa0c45 Mon Sep 17 00:00:00 2001 From: giles Date: Wed, 4 Mar 2026 08:51:11 +0000 Subject: [PATCH] Lazy-import Like model in SqlLikesService The module-level import of likes.models.like.Like caused ImportError in non-likes services that register SqlLikesService. Move the import into a lazy helper called per-method. Co-Authored-By: Claude Opus 4.6 --- shared/services/likes_impl.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/shared/services/likes_impl.py b/shared/services/likes_impl.py index 35d7983..9ad71bd 100644 --- a/shared/services/likes_impl.py +++ b/shared/services/likes_impl.py @@ -8,7 +8,10 @@ from __future__ import annotations from sqlalchemy import select, update, func from sqlalchemy.ext.asyncio import AsyncSession -from likes.models.like import Like + +def _Like(): + from likes.models.like import Like + return Like class SqlLikesService: @@ -18,6 +21,7 @@ class SqlLikesService: user_id: int, target_type: str, target_slug: str | None = None, target_id: int | None = None, ) -> bool: + Like = _Like() if not user_id or not target_type: return False filters = [ @@ -38,6 +42,7 @@ class SqlLikesService: self, session: AsyncSession, *, user_id: int, target_type: str, ) -> list[str]: + Like = _Like() if not user_id or not target_type: return [] result = await session.execute( @@ -54,6 +59,7 @@ class SqlLikesService: self, session: AsyncSession, *, user_id: int, target_type: str, ) -> list[int]: + Like = _Like() if not user_id or not target_type: return [] result = await session.execute( @@ -72,6 +78,7 @@ class SqlLikesService: target_slug: str | None = None, target_id: int | None = None, ) -> bool: """Toggle a like. Returns True if now liked, False if unliked.""" + Like = _Like() filters = [ Like.user_id == user_id, Like.target_type == target_type,