File size: 513 Bytes
4051191
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
class LanguageSingleton(type):
    _instances = {}
    
    def __call__(cls, *args, **kwargs):
        lang = kwargs.get("language")
        if lang:
            if (cls, lang) not in cls._instances:
                cls._instances[(cls, lang)] = super(LanguageSingleton, cls).__call__(*args, **kwargs)
            return cls._instances[(cls, lang)]
        if cls not in cls._instances:
            cls._instances[cls] = super(LanguageSingleton, cls).__call__(*args, **kwargs)
        return cls._instances[cls]