Source code for quackamollie.core.utils.singleton

# -*- coding: utf-8 -*-
__all__ = ["Singleton"]
__author__ = "QuacktorAI"
__copyright__ = "Copyright 2024, Forge of Absurd Ducks"
__credits__ = ["QuacktorAI", "theheadofabroom", "Ashark", "agf", "danronmoon"]


[docs] class Singleton(type): """ Singleton metaclass (cf. https://stackoverflow.com/questions/6760685/creating-a-singleton-in-python) """ _instances = {} def __call__(cls, *args, **kwargs): """ Returns always the same singleton instance """ if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls]