python-dependency-injector/docs/containers/overriding.rst

25 lines
863 B
ReStructuredText
Raw Normal View History

Container overriding
--------------------
2015-10-11 15:34:21 +03:00
.. currentmodule:: dependency_injector.containers
2015-11-20 19:52:19 +03:00
2020-08-16 08:10:08 +03:00
The container can be overridden by the other container. All of the providers from the overriding
container will override the providers with the same names in the overridden container.
2015-10-11 15:34:21 +03:00
2020-08-16 08:10:08 +03:00
.. literalinclude:: ../../examples/containers/override.py
2015-10-11 15:34:21 +03:00
:language: python
2020-08-16 08:10:08 +03:00
:lines: 3-
2015-10-11 15:34:21 +03:00
2020-08-16 08:10:08 +03:00
It helps in a testing. Also you can use it for configuring project for the different
environments: replace an API client with a stub on the dev or stage.
2015-11-20 19:52:19 +03:00
2020-08-16 08:10:08 +03:00
The container also has:
2015-11-20 19:52:19 +03:00
2020-08-16 08:10:08 +03:00
- ``container.overridden`` - tuple of all overriding containers.
- ``container.reset_last_overriding()`` - reset last overriding for each provider in the container.
- ``container.reset_override()`` - reset all overriding in the container.
2020-08-16 08:10:08 +03:00
:py:class:`DynamicContainer` has the same functionality.
.. disqus::