mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-30 05:23:59 +03:00
fe01ad41d9
* Update application-single-container example * Update application-multiple-containers example * Update decoupled-packages example * Update movie lister example * Update CLI tutorial * Update sanic example * Update sanic example with wiring_config * Update fastapi example * Update fastapi-simple example * Update fastapi-sqlalchemy example * Update flask-blueprints example * Update flask example and tutorial * Update aiohttp example and tutorial * Update asyncio-daemon example and tutorial
43 lines
963 B
Python
43 lines
963 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(yaml_files=["config.yml"])
|
|
|
|
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,
|
|
),
|
|
)
|