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

42 lines
1.2 KiB
ReStructuredText
Raw Normal View History

2015-07-16 00:48:30 +03:00
Callable providers
------------------
2015-09-02 18:48:11 +03:00
``di.Callable`` provider is a provider that wraps particular callable with
2015-07-16 00:48:30 +03:00
some injections. Every call of this provider returns result of call of initial
callable.
Callable providers and injections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2015-09-02 18:48:11 +03:00
``di.Callable`` provider uses keyword argument injections. Keyword argument
injections are done by passing injectable values as keyword arguments during
call time.
2015-07-16 00:48:30 +03:00
2015-09-02 18:48:11 +03:00
Context keyword arguments have higher priority than keyword argument
injections.
2015-07-16 00:48:30 +03:00
Example:
.. image:: /images/providers/callable.png
2015-07-16 00:48:30 +03:00
:width: 100%
:align: center
.. literalinclude:: ../../examples/providers/callable_injections.py
:language: python
Callable providers delegation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2015-09-02 18:48:11 +03:00
``di.Callable`` provider could be delegated to any other provider via any kind
of injection. Delegation of ``di.Callable`` providers is the same as
``di.Factory`` and ``di.Singleton`` providers delegation, please follow
*Factory providers delegation* section for example.
2015-09-02 18:48:11 +03:00
``di.Callable`` delegate could be created obviously using
``di.Delegate(di.Callable())`` or by calling ``di.Callable.delegate()`` method.
Example:
.. literalinclude:: ../../examples/providers/callable_delegation.py
:language: python