Description
app/repository/user.py:160: error: Signature of "delete" incompatible with supertype "AbstractRepository" [override]
app/repository/user.py:160: note: Superclass:
app/repository/user.py:160: note: def delete(cls, session: AsyncSession, id_: int, to_schema: type[S] | None = ...) -> Coroutine[Any, Any, UserOrm | S | None]
app/repository/user.py:160: note: Subclass:
app/repository/user.py:160: note: @overload
app/repository/user.py:160: note: @classmethod
app/repository/user.py:160: note: def delete(cls, session: AsyncSession, user_id: int, to_schema: None = ...) -> Coroutine[Any, Any, UserOrm | None]
app/repository/user.py:160: note: @overload
app/repository/user.py:160: note: @classmethod
app/repository/user.py:160: note: def delete(cls, session: AsyncSession, user_id: int, to_schema: type[S]) -> Coroutine[Any, Any, S | None]
@classmethod
@abstractmethod
async def delete(cls, session: AsyncSession, id_: int, to_schema: type[S] | None = None) -> M | S | None:
raise NotImplementedError()
@classmethod
@overload
async def delete(cls, session: AsyncSession, user_id: int, to_schema: None = None) -> UserOrm | None: ...
@classmethod
@overload
async def delete(cls, session: AsyncSession, user_id: int, to_schema: type[S]) -> S | None: ...
@classmethod
async def delete(
cls,
session: AsyncSession,
user_id: int,
to_schema: type[S] | None = None,
) -> UserOrm | S | None:
stmt = delete(UserOrm).where(UserOrm.id == user_id).returning(UserOrm)
deleted_user_orm = (await session.scalars(stmt)).first()
if deleted_user_orm is None:
return None
await session.commit()
return cls._to_schema_or_orm(orm_obj=deleted_user_orm, to_schema=to_schema)