# author_repo_protocol.py
from typing import Protocol
class GetAuthorRepo(Protocol):
async def get(self, author_id: int, /) -> Author:
...
class DeleteAuthorRepo(Protocol):
async def delete(self, author_id: int, /) -> None:
...
class AuthorRepo(GetAuthorRepo, DeleteAuthorRepo):
pass
# author_repo_impl.py
from litestar.contrib.sqlalchemy.repository import SQLAlchemyAsyncRepository
class AuthorRepository(SQLAlchemyAsyncRepository[Author]):
model_type = Author
Если все ссылаются на ваш "правильный" протокол, а реализация подмешивается не из
litestar модуля, а вашего, собственного!!!, то никто и не узнает, что вы ничего и не писали, а взяли грязь из Litestar и выдали ее за свою. И никто даже не заметит, когда вы ее замените на нормальную реализацию#программирование