Source code for nrv.backend._NRV_Singleton
"""
NRV-:class:`NRV_singleton` handling.
"""
[docs]
class NRV_singleton(type):
"""
Should be used as metaclass to define singleton classes
"""
_instances = {}
def __call__(cls, *args, **kwargs):
# with cls._lock:
if cls not in cls._instances:
instance = super().__call__(*args, **kwargs)
cls._instances[cls] = instance
return cls._instances[cls]