Skip to content

Commit 02dea7b

Browse files
committed
Merge branch 'release/4.22.0' into master
2 parents 2127e3c + 22bc447 commit 02dea7b

File tree

16 files changed

+7987
-7030
lines changed

16 files changed

+7987
-7030
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. _check-container-dependencies:
2+
3+
Check container dependencies
4+
----------------------------
5+
6+
To check container dependencies use method ``.check_dependencies()``.
7+
8+
.. literalinclude:: ../../examples/containers/check_dependencies.py
9+
:language: python
10+
:lines: 3-
11+
:emphasize-lines: 12
12+
13+
Method ``.check_dependencies()`` raises an error if container has any undefined dependencies.
14+
If all dependencies are provided or have defaults, no error is raised.
15+
16+
See also: :ref:`dependency-provider`.
17+
18+
.. disqus::

docs/containers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ Containers module API docs - :py:mod:`dependency_injector.containers`.
2424
specialization
2525
overriding
2626
reset_singletons
27+
check_dependencies
2728
traversal

docs/containers/reset_singletons.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _reset-container-singletons:
2+
13
Reset container singletons
24
--------------------------
35

@@ -16,4 +18,6 @@ Method ``.reset_singletons()`` also resets singletons in sub-containers: ``provi
1618
:lines: 3-
1719
:emphasize-lines: 21
1820

21+
See also: :ref:`singleton-provider`.
22+
1923
.. disqus::

docs/main/changelog.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ that were made in every particular version.
77
From version 0.7.6 *Dependency Injector* framework strictly
88
follows `Semantic versioning`_
99

10+
4.22.0
11+
------
12+
- Add method ``container.check_dependencies()`` to check if all container dependencies
13+
are defined.
14+
See issue: `#383 <https://github.com/ets-labs/python-dependency-injector/issues/383>`_.
15+
Thanks to `@shaunc <https://github.com/shaunc>`_ for suggesting the feature.
16+
- Add container name to the representation of the ``Dependency`` provider.
17+
- Add docs cross-links between ``Singleton`` provider and "Reset container singletons"
18+
pages.
19+
1020
4.21.0
1121
------
1222
- Improve ``Dependency`` provider error message: when dependency is undefined,

docs/providers/dependency.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _dependency-provider:
2+
13
Dependency provider
24
===================
35

@@ -31,4 +33,6 @@ dependency provider will wrap it into the ``Object`` provider.
3133
:lines: 16-23
3234
:emphasize-lines: 3
3335

36+
See also: :ref:`check-container-dependencies`.
37+
3438
.. disqus::

docs/providers/singleton.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _singleton-provider:
2+
13
Singleton provider
24
==================
35

@@ -62,6 +64,8 @@ call ``.full_reset()`` method.
6264
:lines: 3-
6365
:emphasize-lines: 25
6466

67+
See also: :ref:`reset-container-singletons`.
68+
6569
Using singleton with multiple threads
6670
-------------------------------------
6771

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""Container dependencies check example."""
2+
3+
from dependency_injector import containers, providers
4+
5+
6+
class Container(containers.DeclarativeContainer):
7+
8+
service1 = providers.Dependency()
9+
service2 = providers.Dependency()
10+
11+
12+
if __name__ == '__main__':
13+
container = Container()
14+
container.check_dependencies() # <-- raises error:
15+
# Container has undefined dependencies: "Container.service1", "Container.service2"

src/dependency_injector/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Top-level package."""
22

3-
__version__ = '4.21.0'
3+
__version__ = '4.22.0'
44
"""Version number.
55
66
:type: str

0 commit comments

Comments
 (0)