List provider

List provider provides a list of values.

importdataclasses
fromtypingimport List
fromdependency_injectorimport containers, providers
@dataclasses.dataclass
classModule:
 name: str
@dataclasses.dataclass
classDispatcher:
 modules: List[Module]
classContainer(containers.DeclarativeContainer):
 dispatcher_factory = providers.Factory(
 Dispatcher,
 modules=providers.List(
 providers.Factory(Module, name="m1"),
 providers.Factory(Module, name="m2"),
 ),
 )
if __name__ == "__main__":
 container = Container()
 dispatcher = container.dispatcher_factory()
 assert isinstance(dispatcher.modules, list)
 assert dispatcher.modules[0].name == "m1"
 assert dispatcher.modules[1].name == "m2"
 # Call "dispatcher = container.dispatcher_factory()" is equivalent to:
 # dispatcher = Dispatcher(
 # modules=[
 # Module(name="m1"),
 # Module(name="m2"),
 # ],
 # )

List provider handles positional arguments the same way as a Factory provider.

Note

Keyword argument are not supported.