initialize_data.py 465 B

12345678910111213141516171819202122
  1. from typing import Type, TypeVar
  2. import dataclasses
  3. from ..types import Context
  4. from ..injection import Data
  5. from .on_event import on_startup
  6. T = TypeVar("T")
  7. def initialize_data(cls: Type[T]) -> Type[T]:
  8. if not dataclasses.is_dataclass(cls):
  9. cls = dataclasses.dataclass(cls)
  10. @on_startup
  11. async def setup_my_counter(context: Context):
  12. async with context.database() as db:
  13. await Data.initialize(cls, db)
  14. return cls