-
-
Notifications
You must be signed in to change notification settings - Fork 337
Closed
Description
I wonder why the following code fails?
from collections import namedtuple
import dependency_injector.containers as containers
import dependency_injector.providers as providers
app_Config = namedtuple( "Config", [ "dir" ] )
app_ExternalConfigAdapter = namedtuple( "ConfigAdapter", [ "config", "starting_point" ] )
external_RestApiClient = namedtuple( "RestApiClient", [ "config", "version" ] )
class CommonServices( containers.DeclarativeContainer ):
config = providers.Singleton( app_Config, dir = "/root/.qrsa" )
class ExternalServices( containers.DeclarativeContainer ):
common_services = providers.DependenciesContainer()
adapted_config = providers.Factory( app_ExternalConfigAdapter,
common_services.config,
"common/nitro"
)
external_rest_client = providers.Dependency( instance_of = external_RestApiClient )
external_rest_client.provided_by(
providers.Singleton( external_RestApiClient,
config = adapted_config,
version = "9.0"
)
)
cs = CommonServices()
qrs = ExternalServices( common_services = cs )
qrs.adapted_config()
# --- fails here ---
qrs.external_rest_client()