util: Add a singleton metaclass
This commit is contained in:
@@ -32,6 +32,17 @@ import gettext
|
|||||||
__trans = gettext.translation('pisi', fallback=True)
|
__trans = gettext.translation('pisi', fallback=True)
|
||||||
_ = __trans.ugettext
|
_ = __trans.ugettext
|
||||||
|
|
||||||
|
class Singleton(type):
|
||||||
|
def __init__(cls, name, bases, dict):
|
||||||
|
super(Singleton, cls).__init__(name, bases, dict)
|
||||||
|
cls.instance = None
|
||||||
|
|
||||||
|
def __call__(cls, *args, **kw):
|
||||||
|
if cls.instance is None:
|
||||||
|
cls.instance = super(Singleton, cls).__call__(*args, **kw)
|
||||||
|
|
||||||
|
return cls.instance
|
||||||
|
|
||||||
# pisi modules
|
# pisi modules
|
||||||
import pisi
|
import pisi
|
||||||
import pisi.context as ctx
|
import pisi.context as ctx
|
||||||
|
|||||||
Reference in New Issue
Block a user