MCPcopy Create free account
hub / github.com/dbunt1tled/python-fast-api / Container

Class Container

src/core/di/container.py:24–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22
23
24class Container(containers.DeclarativeContainer):
25 config = providers.Configuration()
26 app_config = providers.Singleton(Settings)
27 db_config = providers.Singleton(MyDatabaseConfig, dsn=app_config.provided.sqlalchemy_database_uri)
28
29 log = providers.Singleton(
30 Log,
31 app_name=app_config().app_name,
32 env=app_config().environment,
33 service_name=app_config().service_name,
34 loki_url=app_config().loki_url,
35 loki_enabled=app_config().loki_enabled,
36 )
37
38 log_request = providers.Singleton(
39 Log,
40 app_name=app_config().app_name,
41 env=app_config().environment,
42 service_name="request",
43 loki_url=app_config().loki_url,
44 loki_enabled=app_config().loki_enabled,
45 )
46
47 log_rm = providers.Singleton(
48 Log,
49 app_name=app_config().app_name,
50 env=app_config().environment,
51 service_name="rabbitmq",
52 loki_url=app_config().loki_url,
53 loki_enabled=app_config().loki_enabled,
54 )
55
56 email_service = providers.Singleton(
57 EmailService,
58 smtp_server=app_config.provided.smtp_server,
59 smtp_port=app_config.provided.smtp_port,
60 app_password=app_config.provided.app_password,
61 from_email=app_config.provided.from_email,
62 )
63
64 rmq_config = providers.Singleton(
65 RabbitMQConfig,
66 url=app_config.provided.rabbitmq_url,
67 )
68
69 rmq_producer = providers.Singleton(AsyncRabbitMQProducer, config=rmq_config, log=log_rm)
70 rmq_consumer = providers.Singleton(AsyncRabbitMQConsumer, config=rmq_config, log=log_rm)
71 rmq_service = providers.Singleton(
72 RMQService,
73 producer=rmq_producer,
74 )
75
76 view_service = providers.Singleton(
77 ViewService,
78 template_dirs="src/core/service/email/templates",
79 app_url=app_config.provided.app_url,
80 )
81

Callers 4

lifespanFunction · 0.90
api.pyFile · 0.90
exception_handlerFunction · 0.90
initialize_containerMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected