-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathbootstrap.py
More file actions
35 lines (27 loc) · 907 Bytes
/
bootstrap.py
File metadata and controls
35 lines (27 loc) · 907 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
29
30
31
32
33
34
35
from typing import cast
from dependency_injector.containers import DynamicContainer
from dependency_injector.providers import Object
from pydantic import BaseModel, ConfigDict
from .asyncapi import init_asyncapi_info
from .config import AppConfig
from .di_container import Container
from .dramatiq import init_dramatiq
from .logs import init_logger
from .storage import init_storage
class InitReference(BaseModel):
di_container: DynamicContainer
model_config = ConfigDict(arbitrary_types_allowed=True)
def application_init(app_config: AppConfig) -> InitReference:
container = cast(
DynamicContainer, # Make mypy happy
Container(
config=Object(app_config),
),
)
init_logger(app_config)
init_storage()
init_dramatiq(app_config)
init_asyncapi_info(app_config.APP_NAME)
return InitReference(
di_container=container,
)