provide_allΒΆ

provide_all is a helper function which can be used instead of repeating provide call with just class passed and same scope.

These two providers are equal for the container:

from dishka import provide, provide_all, Provider, Scope

class OneByOne(Provider):
    scope = Scope.APP

    register_user = provide(RegisterUserInteractor)
    update_pfp = provide(UpdateProfilePicInteractor)

class AllAtOnce(Provider):
    scope = Scope.APP

    interactors = provide_all(
        RegisterUserInteractor,
        UpdateProfilePicInteractor
    )

It is also available as a method:

provider = Provider(scope=Scope.APP)
provider.provide_all(
    RegisterUserInteractor,
    UpdateProfilePicInteractor
)

You can combine different provide, alias, decorate, from_context, provide_all and others with each other without thinking about the variable names for each of them.

These two providers are equal for the container:

from dishka import alias, decorate, provide, provide_all, Provider, Scope

class OneByOne(Provider):
    scope = Scope.APP

    config = from_context(Config)
    user_dao = provide(UserDAOImpl, provides=UserDAO)
    post_dao = provide(PostDAOImpl, provides=PostDAO)
    post_reader = alias(source=PostDAOImpl, provides=PostReader)
    decorator = decorate(SomeDecorator, provides=SomeClass)

class AllAtOnce(Provider):
    scope = Scope.APP

    provides = (
        provide(UserDAOImpl, provides=UserDAO)
        + provide(PostDAOImpl, provides=PostDAO)
        + alias(source=PostDAOImpl, provides=PostReader)
        + decorate(SomeDecorator, provides=SomeClass)
        + from_context(Config)
    )