-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathioc.py
More file actions
28 lines (24 loc) · 1014 Bytes
/
ioc.py
File metadata and controls
28 lines (24 loc) · 1014 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from modern_di import Group, Scope, providers
from app.repositories import CardsRepository, DecksRepository
from app.resources.db import close_sa_engine, close_session, create_sa_engine, create_session
class Dependencies(Group):
database_engine = providers.Factory(
creator=create_sa_engine, cache_settings=providers.CacheSettings(finalizer=close_sa_engine)
)
session = providers.Factory(
scope=Scope.REQUEST, creator=create_session, cache_settings=providers.CacheSettings(finalizer=close_session)
)
decks_repository = providers.Factory(
scope=Scope.REQUEST,
creator=DecksRepository,
bound_type=DecksRepository,
kwargs={"session": session, "auto_commit": True},
skip_creator_parsing=True,
)
cards_repository = providers.Factory(
scope=Scope.REQUEST,
creator=CardsRepository,
bound_type=CardsRepository,
kwargs={"session": session, "auto_commit": True},
skip_creator_parsing=True,
)