-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontainers.py
More file actions
25 lines (19 loc) · 799 Bytes
/
Copy pathcontainers.py
File metadata and controls
25 lines (19 loc) · 799 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
from dependency_injector import containers, providers
from apps.api.auth.containers import AuthModuleContainer
from apps.api.user.containers import UserModuleContainer
from apps.core.common.config import settings
from apps.core.database.db import Database
class Application(containers.DeclarativeContainer):
config: dict = providers.Configuration()
db: Database = providers.Singleton(
Database,
database_url=config.DATABASE_URL,
debug=config.DEBUG,
)
# Modules
user: UserModuleContainer = providers.Container(UserModuleContainer, db=db)
auth: AuthModuleContainer = providers.Container(
AuthModuleContainer, user_repository=user.repository, config=config
)
root_container = Application()
root_container.config.from_pydantic(settings)