24 lines
519 B
Python
24 lines
519 B
Python
from typing import TYPE_CHECKING, Any, Protocol
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
if TYPE_CHECKING:
|
|
from src.repository.tasks import TasksRepo
|
|
from src.repository.users import UsersRepo
|
|
|
|
|
|
class HasId(Protocol):
|
|
id: Any
|
|
|
|
|
|
class IUOWDB(Protocol):
|
|
session: AsyncSession
|
|
user: 'UsersRepo'
|
|
task: 'TasksRepo'
|
|
|
|
async def __aenter__(self) -> "IUOWDB": ...
|
|
|
|
async def __aexit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: ...
|
|
|
|
async def commit(self) -> None: ...
|