"""`Configuration` provider dynamic item selector.""" import dataclasses from dependency_injector import containers, providers @dataclasses.dataclass class Foo: option1: object option2: object class Container(containers.DeclarativeContainer): config = providers.Configuration(default={ 'target': 'A', 'items': { 'A': { 'option1': 60, 'option2': 80, }, 'B': { 'option1': 10, 'option2': 20, }, }, }) foo_factory = providers.Factory( Foo, option1=config.items[config.target].option1, option2=config.items[config.target].option2, ) if __name__ == '__main__': container = Container() container.config.target.from_env('TARGET') foo = container.foo_factory() print(foo.option1, foo.option2) # $ TARGET=A python configuration_itemselector.py # 60 80 # $ TARGET=B python configuration_itemselector.py # 10 20