"""`Singleton` providers resetting example."""

import collections

import dependency_injector.providers as providers


UsersService = collections.namedtuple('UsersService', [])

# Users service singleton provider:
users_service_provider = providers.Singleton(UsersService)

# Retrieving several UsersService objects:
users_service1 = users_service_provider()
users_service2 = users_service_provider()

# Making some asserts:
assert users_service1 is users_service2

# Resetting of memorized instance:
users_service_provider.reset()

# Retrieving one more UserService object:
users_service3 = users_service_provider()

# Making some asserts:
assert users_service3 is not users_service1