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