Source code for sphinx_uml.singleton

[docs] class Singleton(type): """ The :py:class:`Singleton` allows to define singleton classes, i.e. classes that can be instantiated at most once. >>> class MyClass(metaclass=Singleton): pass >>> x = MyClass() >>> y = MyClass() >>> x is y True Based on this `thread <https://stackoverflow.com/questions/6760685/creating-a-singleton-in-python>`__. """ s_instances = dict() def __call__(cls, *args, **kwargs) -> type: if cls not in cls.s_instances: cls.s_instances[cls] = ( super(Singleton, cls).__call__(*args, **kwargs) ) return cls.s_instances[cls]