mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-05 12:53:30 +03:00
Add List provider example
This commit is contained in:
parent
7ac747fea6
commit
2bc34d9dc9
36
examples/providers/list.py
Normal file
36
examples/providers/list.py
Normal file
|
@ -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'
|
Loading…
Reference in New Issue
Block a user