python-dependency-injector/docs/providers/index.rst

53 lines
1.3 KiB
ReStructuredText
Raw Normal View History

.. _providers:
2015-06-10 06:53:15 +00:00
Providers
=========
Providers help to assemble the objects. They create objects and inject the dependencies.
2015-06-10 06:53:15 +00:00
Each provider is a callable. You call the provider like a function when you need to create an
object. Provider retrieves the underlying dependencies and inject them into the created object.
2020-09-03 01:15:06 +00:00
It causes the cascade effect that helps to assemble object graphs. See ``Factory``, ``Singleton``,
``Callable`` and other provider docs below.
.. code-block:: bash
2015-06-10 06:53:15 +00:00
provider1()
├──> provider2()
├──> provider3()
│ │
│ └──> provider4()
└──> provider5()
└──> provider6()
2020-09-10 02:23:14 +00:00
Another providers feature is an overriding. You can override any provider with another provider.
2020-09-03 01:15:06 +00:00
This helps in testing. This also helps in overriding API clients with stubs for the development
or staging environment. See the example at :ref:`provider-overriding`.
If you need to inject not the whole object but the parts see :ref:`provided-instance`.
To create a new provider see :ref:`create-provider`.
Providers module API docs - :py:mod:`dependency_injector.providers`
2015-06-10 06:53:15 +00:00
.. toctree::
:maxdepth: 2
2015-06-16 07:37:57 +00:00
factory
singleton
2015-07-15 21:48:30 +00:00
callable
coroutine
2016-06-09 14:49:09 +00:00
object
list
2020-06-25 21:12:16 +00:00
configuration
selector
2017-12-21 20:54:44 +00:00
dependency
2015-07-21 06:57:13 +00:00
overriding
provided_instance
custom
typing_mypy