Singleton fixed
[myslice.git] / myslice / configengine.py
index 6341ac3..c8ff197 100644 (file)
@@ -19,7 +19,25 @@ from myslice.settings import ROOT
 #api_key=theapikeyasprovidedbygoogle
 
 # use a singleton instead of staticmethods
-from myslice.util.singleton    import Singleton
+#-------------------------------------------------------------------------
+# Class Singleton
+#
+# Classes that inherit from Singleton can be instanciated only once 
+#-------------------------------------------------------------------------
+
+class Singleton(type):
+    def __init__(cls, name, bases, dic):
+        super(Singleton,cls).__init__(name,bases,dic)
+        cls.instance=None
+
+    def __call__(cls, *args, **kw):
+        if cls.instance is None:
+            cls.instance=super(Singleton,cls).__call__(*args,**kw)
+        return cls.instance
+
+
+# See also
+# http://stackoverflow.com/questions/6760685/creating-a-singleton-in-python
 
 class ConfigEngine(object):
     __metaclass__ = Singleton