diff --git a/app/utils/singleton.py b/app/utils/singleton.py index a6bf423d..908b2ffd 100644 --- a/app/utils/singleton.py +++ b/app/utils/singleton.py @@ -9,9 +9,10 @@ class Singleton(abc.ABCMeta, type): _instances: dict = {} def __call__(cls, *args, **kwargs): - if cls not in cls._instances: - cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) - return cls._instances[cls] + key = (cls, args, frozenset(kwargs.items())) + if key not in cls._instances: + cls._instances[key] = super().__call__(*args, **kwargs) + return cls._instances[key] class AbstractSingleton(abc.ABC, metaclass=Singleton):