From 2bc34d9dc9c112764c4c012c4a4c0d0ff184eb12 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Fri, 12 Jun 2020 21:55:00 -0400 Subject: [PATCH] Add List provider example --- examples/providers/list.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 examples/providers/list.py diff --git a/examples/providers/list.py b/examples/providers/list.py new file mode 100644 index 00000000..a82cc9d7 --- /dev/null +++ b/examples/providers/list.py @@ -0,0 +1,36 @@ +"""`List` provider example.""" + +import dataclasses +from typing import List + +from dependency_injector import providers + + +@dataclasses.dataclass +class Module: + """Example module.""" + + name: str + + +@dataclasses.dataclass +class Dispatcher: + """Example dispatcher.""" + + modules: List[Module] + + +dispatcher_factory = providers.Factory( + Dispatcher, + modules=providers.List( + providers.Factory(Module, name='m1'), + providers.Factory(Module, name='m2'), + ), +) + +if __name__ == '__main__': + dispatcher = dispatcher_factory() + + assert isinstance(dispatcher.modules, list) + assert dispatcher.modules[0].name == 'm1' + assert dispatcher.modules[1].name == 'm2'