python-dependency-injector/examples/miniapps/asyncio-daemon/monitoringdaemon/containers.py
2020-10-28 22:28:49 -04:00

43 lines
938 B
Python

"""Containers module."""
import logging
import sys
from dependency_injector import containers, providers
from . import http, monitors, dispatcher
class Container(containers.DeclarativeContainer):
config = providers.Configuration()
logging = providers.Resource(
logging.basicConfig,
stream=sys.stdout,
level=config.log.level,
format=config.log.format,
)
http_client = providers.Factory(http.HttpClient)
example_monitor = providers.Factory(
monitors.HttpMonitor,
http_client=http_client,
options=config.monitors.example,
)
httpbin_monitor = providers.Factory(
monitors.HttpMonitor,
http_client=http_client,
options=config.monitors.httpbin,
)
dispatcher = providers.Factory(
dispatcher.Dispatcher,
monitors=providers.List(
example_monitor,
httpbin_monitor,
),
)