pyrit/common/singleton.py (7 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT license. import abc class Singleton(abc.ABCMeta): """ A metaclass for creating singleton classes. A singleton class can only have one instance. If an instance of the class exists, it returns that instance; if not, it creates and returns a new one. """ _instances: dict = {} def __call__(cls, *args, **kwargs): """ Overrides the default __call__ behavior to ensure only one instance of the singleton class is created. Returns the singleton instance if it exists, otherwise creates a new one and returns it. """ if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls]