Skip to content

Commit

Permalink
Add container docs
Browse files Browse the repository at this point in the history
  • Loading branch information
rmk135 committed Mar 3, 2021
1 parent b3b44f6 commit f52ef6f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
8 changes: 8 additions & 0 deletions docs/containers/reset_singletons.rst
Expand Up @@ -18,6 +18,14 @@ Method ``.reset_singletons()`` also resets singletons in sub-containers: ``provi
:lines: 3-
:emphasize-lines: 21

You can use ``.reset_singletons()`` method with a context manager. Singletons will be reset on
both entering and exiting a context.

.. literalinclude:: ../../examples/containers/reset_singletons_with.py
:language: python
:lines: 3-
:emphasize-lines: 14-15

See also: :ref:`singleton-provider`.

.. disqus::
23 changes: 23 additions & 0 deletions examples/containers/reset_singletons_with.py
@@ -0,0 +1,23 @@
"""Container reset singletons context manager example."""

from dependency_injector import containers, providers


class Container(containers.DeclarativeContainer):

service = providers.Singleton(object)


if __name__ == '__main__':
container = Container()

service1 = container.service()

with container.reset_singletons():
service2 = container.service()

service3 = container.service()

assert service1 is not service2
assert service2 is not service3
assert service3 is not service1

0 comments on commit f52ef6f

Please sign in to comment.