"""`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)