mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 09:57:37 +03:00 
			
		
		
		
	* Add prototype * Update .pydocstylerc * Add tests * Remove one of the tests * Fix typo in the giphynav-aiohttp * Add README * Fix flake8
		
			
				
	
	
		
			44 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Application containers module."""
 | 
						|
 | 
						|
import logging
 | 
						|
import sys
 | 
						|
 | 
						|
from dependency_injector import containers, providers
 | 
						|
 | 
						|
from . import http, monitors, dispatcher
 | 
						|
 | 
						|
 | 
						|
class ApplicationContainer(containers.DeclarativeContainer):
 | 
						|
    """Application container."""
 | 
						|
 | 
						|
    config = providers.Configuration()
 | 
						|
 | 
						|
    configure_logging = providers.Callable(
 | 
						|
        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,
 | 
						|
        ),
 | 
						|
    )
 |