From 982d5620e23e337b2a228d4bf8ed379ea632b414 Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Fri, 31 Jul 2015 17:27:56 +0200 Subject: [PATCH] MySlice independant from Manifold package --- myslice/configengine.py | 2 +- myslice/util/singleton.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 myslice/util/singleton.py diff --git a/myslice/configengine.py b/myslice/configengine.py index 4b40cb24..6341ac32 100644 --- a/myslice/configengine.py +++ b/myslice/configengine.py @@ -19,7 +19,7 @@ from myslice.settings import ROOT #api_key=theapikeyasprovidedbygoogle # use a singleton instead of staticmethods -from manifold.util.singleton import Singleton +from myslice.util.singleton import Singleton class ConfigEngine(object): __metaclass__ = Singleton diff --git a/myslice/util/singleton.py b/myslice/util/singleton.py new file mode 100644 index 00000000..b622c135 --- /dev/null +++ b/myslice/util/singleton.py @@ -0,0 +1,19 @@ +#------------------------------------------------------------------------- +# 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 -- 2.43.0