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

28 lines
1.0 KiB
ReStructuredText
Raw Normal View History

Dynamic containers
------------------
2015-11-16 14:28:27 +03:00
.. currentmodule:: dependency_injector.containers
2015-11-26 14:39:42 +03:00
:py:class:`DynamicContainer` is an inversion of control container with dynamic
structure. It should cover most of the cases when list of providers that
would be included in container is non-deterministic and depends on
application's flow or its configuration (container's structure could be
determined just after application will be started and will do some initial
work, like parsing list of container's providers from the configuration).
2015-11-26 14:39:42 +03:00
While :py:class:`DeclarativeContainer` acts on class-level,
:py:class:`DynamicContainer` does the same on instance-level.
2015-11-26 14:39:42 +03:00
Here is an simple example of defining dynamic container with several factories:
2015-11-26 14:39:42 +03:00
.. literalinclude:: ../../examples/containers/dynamic.py
2015-11-26 14:39:42 +03:00
:language: python
:linenos:
2015-11-26 14:39:42 +03:00
Next example demonstrates creation of dynamic container based on some
configuration:
2015-11-26 14:39:42 +03:00
.. literalinclude:: ../../examples/containers/dynamic_runtime_creation.py
2015-11-26 14:39:42 +03:00
:language: python
:linenos: