Ligare.web.middleware.dependency_injection

Ligare.web’s integration with Injector and Flask Injector.

Functions

_configure_openapi_middleware_dependencies(...)

Bind any Connexion middleware classes whose __call__ member has a __bindings__ attribute.

bind_middleware(app, flask_injector, middleware)

configure_dependencies(app[, ...])

Configures dependency injection and registers all Flask application dependencies.

Classes

AppModule(app, *args)

OpenAPIEndpointDependencyInjectionMiddleware(...)

Enables dependency injection for any blueprint methods.

WebJSONFormatter([fmt_dict, time_format, ...])

WebJSONLoggerModule([name, log_level, ...])

class Ligare.web.middleware.dependency_injection.AppModule(app, *args)[source]
__init__(app, *args)[source]
configure(binder)[source]

Override to configure bindings.

Return type:

None

protocol Ligare.web.middleware.dependency_injection.MiddlewareRoutine[source]

typing.Protocol.

Classes that implement this protocol must have the following methods / attributes:

__call__(scope, receive, send, *args)[source]

Call self as a function.

Return type:

None

class Ligare.web.middleware.dependency_injection.OpenAPIEndpointDependencyInjectionMiddleware(flask_injector: FlaskInjector)[source]

Enables dependency injection for any blueprint methods.

static __new__(cls, flask_injector)[source]
class Ligare.web.middleware.dependency_injection.WebJSONFormatter(fmt_dict=None, time_format='%Y-%m-%dT%H:%M:%S', msec_format='%s.%03dZ')[source]
__init__(fmt_dict=None, time_format='%Y-%m-%dT%H:%M:%S', msec_format='%s.%03dZ')[source]

Initialize the formatter with specified format strings.

Initialize the formatter either with the specified format string, or a default as described above. Allow for specialized date formatting with the optional datefmt argument. If datefmt is omitted, you get an ISO8601-like (or RFC 3339-like) format.

Use a style parameter of ‘%’, ‘{’ or ‘$’ to specify that you want to use one of %-formatting, str.format() ({}) formatting or string.Template formatting in your format string.

Changed in version 3.2: Added the style parameter.

formatMessage(record)[source]

Overwritten to return a dictionary of the relevant LogRecord attributes instead of a string. KeyError is raised if an unknown attribute is provided in the fmt_dict.

Return type:

dict[str, Any]

class Ligare.web.middleware.dependency_injection.WebJSONLoggerModule(name=None, log_level=20, log_to_stdout=False, formatter=None)[source]
__init__(name=None, log_level=20, log_to_stdout=False, formatter=None)[source]
Ligare.web.middleware.dependency_injection.bind_middleware(app, flask_injector, middleware, position=MiddlewarePosition.BEFORE_CONTEXT)[source]
Ligare.web.middleware.dependency_injection.configure_dependencies(app, application_modules=None)[source]

Configures dependency injection and registers all Flask application dependencies. The FlaskInjector instance can be used to bootstrap and start the Flask application.

Return type:

FlaskInjector