Source code for app.domain.tags.dependencies
from __future__ import annotations
from typing import TYPE_CHECKING
from sqlalchemy.orm import selectinload
from app.db.models import Tag
from app.domain.tags.services import TagService
if TYPE_CHECKING:
from collections.abc import AsyncGenerator
from sqlalchemy.ext.asyncio import AsyncSession
__all__ = ["provide_tags_service"]
[docs]
async def provide_tags_service(
db_session: AsyncSession | None = None,
) -> AsyncGenerator[TagService, None]:
"""Provide Tags service.
Args:
db_session (AsyncSession | None, optional): current database session. Defaults to None.
Returns:
TagService: An Tags service object
"""
async with TagService.new(
session=db_session,
load=selectinload(Tag.teams, recursion_depth=2),
) as service:
yield service