Source code for zsl.application.modules.error_handler_module

from injector import Binder, Module, provides, singleton

from zsl import Config, inject
from zsl.application.error_handler import register
from zsl.errors import ERROR_CONFIG_NAME, ErrorConfiguration


[docs] class ErrorHandlerModule(Module):
[docs] @provides(interface=ErrorConfiguration, scope=singleton) @inject(config=Config) def provide_error_config(self, config): # type: (Config)->ErrorConfiguration return config.get(ERROR_CONFIG_NAME, ErrorConfiguration())
[docs] def configure(self, binder): # type: (Binder)->None @inject(error_config=ErrorConfiguration) def get_error_config(error_config): # type: (ErrorConfiguration)->ErrorConfiguration return error_config super().configure(binder) for handler in get_error_config().handlers: register(handler)