diff --git a/app/utils/singleton.py b/app/utils/singleton.py index 0c94176..85df17e 100644 --- a/app/utils/singleton.py +++ b/app/utils/singleton.py @@ -16,3 +16,21 @@ class SingletonMeta(type): instance = super().__call__(*args, **kwargs) cls._instances[cls] = instance return cls._instances[cls] + + +class SingletonMetaNoArgs(type): + """ + Singleton metaclass for classes without parameters on constructor, + for compatibility with FastApi Depends() function. + """ + + _instances = {} + + _lock: Lock = Lock() + + def __call__(cls): + with cls._lock: + if cls not in cls._instances: + instance = super().__call__() + cls._instances[cls] = instance + return cls._instances[cls] \ No newline at end of file