Permalink
Fetching contributors…
Cannot retrieve contributors at this time
31 lines (21 sloc) 1.02 KB

Dynamic containers

.. currentmodule:: dependency_injector.containers

: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).

While :py:class:`DeclarativeContainer` acts on class-level, :py:class:`DynamicContainer` does the same on instance-level.

Here is an simple example of defining dynamic container with several factories:

.. literalinclude:: ../../examples/containers/dynamic.py
   :language: python
   :linenos:

Next example demonstrates creation of dynamic container based on some configuration:

.. literalinclude:: ../../examples/containers/dynamic_runtime_creation.py
   :language: python
   :linenos:


.. disqus::