util: Add a singleton metaclass

This commit is contained in:
Fatih Aşıcı
2010-05-18 12:15:51 +00:00
parent 4b650f2c3d
commit ffe4620ded
+11
View File
@@ -32,6 +32,17 @@ import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __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
import pisi
import pisi.context as ctx