Skip to content

Error: Dependency is not defined #198

@j4zzcat

Description

@j4zzcat

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions