File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,14 @@ Method ``.reset_singletons()`` also resets singletons in sub-containers: ``provi
1818 :lines: 3-
1919 :emphasize-lines: 21
2020
21+ You can use ``.reset_singletons() `` method with a context manager. Singletons will be reset on
22+ both entering and exiting a context.
23+
24+ .. literalinclude :: ../../examples/containers/reset_singletons_with.py
25+ :language: python
26+ :lines: 3-
27+ :emphasize-lines: 14-15
28+
2129See also: :ref: `singleton-provider `.
2230
2331.. disqus ::
Original file line number Diff line number Diff line change 1+ """Container reset singletons context manager example."""
2+
3+ from dependency_injector import containers , providers
4+
5+
6+ class Container (containers .DeclarativeContainer ):
7+
8+ service = providers .Singleton (object )
9+
10+
11+ if __name__ == '__main__' :
12+ container = Container ()
13+
14+ service1 = container .service ()
15+
16+ with container .reset_singletons ():
17+ service2 = container .service ()
18+
19+ service3 = container .service ()
20+
21+ assert service1 is not service2
22+ assert service2 is not service3
23+ assert service3 is not service1
You can’t perform that action at this time.
0 commit comments