From 405358bd04b1e31c92020e2b63ab8be96b3258a8 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Mon, 29 Jun 2020 13:12:10 -0400 Subject: [PATCH] Add Selector provider example --- examples/providers/selector.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 examples/providers/selector.py diff --git a/examples/providers/selector.py b/examples/providers/selector.py new file mode 100644 index 00000000..1f0ad5eb --- /dev/null +++ b/examples/providers/selector.py @@ -0,0 +1,28 @@ +"""`Selector` provider example.""" + +from dependency_injector import providers + + +class SomeClass: + ... + + +class SomeOtherClass: + ... + + +config = providers.Configuration() + +selector = providers.Selector( + config.one_or_another, + one=providers.Factory(SomeClass), + another=providers.Factory(SomeOtherClass), +) + +config.override({'one_or_another': 'one'}) +some_instance_1 = selector() +assert isinstance(some_instance_1, SomeClass) + +config.override({'one_or_another': 'another'}) +some_instance_2 = selector() +assert isinstance(some_instance_2, SomeOtherClass)