.. _dependency-provider:
Dependency provider
.. currentmodule:: dependency_injector.providers
:py:class:Dependency provider is a placeholder for a dependency of a certain type.
To specify a type of the dependency use instance_of argument: Dependency(instance_of=SomeClass).
Dependency provider will control that returned object is an instance of instance_of type.
.. literalinclude:: ../../examples/providers/dependency.py :language: python :lines: 3- :emphasize-lines: 26,35-36
To provide a dependency you need to override the Dependency provider. You can call
provider .override() method or provide an overriding provider when creating a container.
See :ref:provider-overriding. If you don't provide a dependency, Dependency provider
will raise an error:
.. literalinclude:: ../../examples/providers/dependency_undefined_error.py :language: python :lines: 18-
You also can provide a default for the dependency. To provide a default use default argument:
Dependency(..., default=...). Default can be a value or a provider. If default is not a provider,
dependency provider will wrap it into the Object provider.
.. literalinclude:: ../../examples/providers/dependency_default.py :language: python :lines: 16-23 :emphasize-lines: 3
See also: :ref:check-container-dependencies.
.. disqus::