omicron.core.lang
singleton(cls)
Make a class a Singleton class
Examples:
>>> @singleton
... class Foo:
... # this is a singleton class
... pass
Source code in omicron/core/lang.py
def singleton(cls):
"""Make a class a Singleton class
Examples:
>>> @singleton
... class Foo:
... # this is a singleton class
... pass
"""
instances = {}
@functools.wraps(cls)
def get_instance(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return get_instance