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()