Source code for structum_lab.plugins.di.container

# src/structum_lab/plugins/di/container.py
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: 2025 PythonWoods

"""Dependency Injection Container for Structum.

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

from dependency_injector import containers, providers  # type: ignore[import-not-found]


[docs] class StructumContainer(containers.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. """ # Core Dependencies # Usage: # container = StructumContainer( # config=providers.Singleton(get_config), # logger=providers.Factory(get_logger) # ) config: providers.Dependency = providers.Dependency() logger: providers.Dependency = providers.Dependency()