"""`Selector` provider example.""" from dependency_injector import containers, providers class SomeClass: ... class SomeOtherClass: ... class Container(containers.DeclarativeContainer): config = providers.Configuration() selector = providers.Selector( config.one_or_another, one=providers.Factory(SomeClass), another=providers.Factory(SomeOtherClass), ) if __name__ == '__main__': container = Container() container.config.override({'one_or_another': 'one'}) instance_1 = container.selector() assert isinstance(instance_1, SomeClass) container.config.override({'one_or_another': 'another'}) instance_2 = container.selector() assert isinstance(instance_2, SomeOtherClass)