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.