IoC Containers
==============

Containers are collections of providers. Main purpose of containers is to group
providers. 

There are, actually, several popular cases of containers usage:

+ Keeping all providers in a single container.
+ Grouping of providers from the same architectural layer (for example, 
  ``Services``, ``Models`` and ``Forms`` containers).
+ Grouping of providers from the same functional groups (for example,
  container ``Users``, that contains all functional parts of ``Users``
  component).

Also, for both of these and some other cases, it might be useful to attach 
some init / shutdown functionality or something else, that deals with group 
of providers.

Containers package API docs - :py:mod:`dependency_injector.containers`.

..  toctree::
    :maxdepth: 2

    declarative
    dynamic
    specialization
    overriding