diff --git a/pisi/util.py b/pisi/util.py index 22a34d58..30ff5af1 100644 --- a/pisi/util.py +++ b/pisi/util.py @@ -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