python-dependency-injector/examples/providers/dependency_default.py
Roman Mogylatov 478ca18ae3
336 Dependency provider default (#382)
* Add implementation and tests

* Refactor dependency provider docs

* Update docs

* Update changelog
2021-01-29 13:49:40 -05:00

26 lines
486 B
Python

"""`Dependency` provider default example."""
import abc
from dependency_injector import containers, providers
class Cache(metaclass=abc.ABCMeta):
...
class InMemoryCache(Cache):
...
class Container(containers.DeclarativeContainer):
cache = providers.Dependency(instance_of=Cache, default=InMemoryCache())
if __name__ == '__main__':
container = Container()
cache = container.cache() # provides InMemoryCache()
assert isinstance(cache, InMemoryCache)