Source code for taurex.cache.singleton
"""Just contains a singleton class. Pretty useful"""
[docs]class Singleton(object):
"""
A singleton for your usage. When inheriting do not implement __init__ instead
override :func:`init`
"""
def __new__(cls, *args, **kwds):
it = cls.__dict__.get("__it__")
if it is not None:
return it
cls.__it__ = it = object.__new__(cls)
it.init(*args, **kwds)
return it