Dependency Injection API Reference

Dependency Injection container plugin for Structum Lab.

DI Plugin Package

Structum Dependency Injection Plugin. Integration with dependency-injector.

class structum_lab.plugins.di.StructumContainer(**overriding_providers)[source]

Bases: DeclarativeContainer

Base Container for Structum Applications (Pure IoC).

This container defines the abstract dependencies required by the application. Implementations (providers) must be injected at runtime.

cls_providers = {'config': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">, 'logger': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">}
config : Dependency = <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">
containers = {}
inherited_providers = {}
logger : Dependency = <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">
providers = {'config': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">, 'logger': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">}
wiring_config = <dependency_injector.containers.WiringConfiguration object>

Container

Dependency Injection Container for Structum.

Provides a declarative IoC container based on dependency-injector. Applications extend this container and inject concrete implementations at runtime.

class structum_lab.plugins.di.container.StructumContainer(**overriding_providers)[source]

Bases: DeclarativeContainer

Base Container for Structum Applications (Pure IoC).

This container defines the abstract dependencies required by the application. Implementations (providers) must be injected at runtime.

config : Dependency = <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">
logger : Dependency = <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">
cls_providers = {'config': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">, 'logger': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">}
containers = {}
inherited_providers = {}
providers = {'config': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab74c0, container name: "StructumContainer.config">, 'logger': <dependency_injector.providers.Dependency(<class 'object'>) at 0x7f50c3ab7520, container name: "StructumContainer.logger">}
wiring_config = <dependency_injector.containers.WiringConfiguration object>

Integrations

FastAPI Integration

Integration helpers for FastAPI.

structum_lab.plugins.di.integrations.fastapi.wire_app(container: Container, modules: list[Any]) None[source]

Wires the container to the specified modules. This enables the use of @inject and Provide markers in FastAPI endpoints.

Parameters:
container: Container

The DI container instance.

modules: list[Any]

List of Python modules (not just names) to wire.