Author: bugman Date: Mon Apr 14 12:00:36 2014 New Revision: 22728 URL: http://svn.gna.org/viewcvs/relax?rev=22728&view=rev Log: Fixes for the specific analysis parameter list singleton object. These objects are now really singleton objects and are only initialised once. Modified: trunk/specific_analyses/consistency_tests/parameter_object.py trunk/specific_analyses/frame_order/parameter_object.py trunk/specific_analyses/jw_mapping/parameter_object.py trunk/specific_analyses/model_free/parameter_object.py trunk/specific_analyses/n_state_model/parameter_object.py trunk/specific_analyses/noe/parameter_object.py trunk/specific_analyses/parameter_object.py trunk/specific_analyses/relax_disp/parameter_object.py trunk/specific_analyses/relax_fit/parameter_object.py Modified: trunk/specific_analyses/consistency_tests/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/consistency_tests/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/consistency_tests/parameter_object.py (original) +++ trunk/specific_analyses/consistency_tests/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -37,6 +37,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/frame_order/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/frame_order/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/frame_order/parameter_object.py (original) +++ trunk/specific_analyses/frame_order/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -35,6 +35,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/jw_mapping/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/jw_mapping/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/jw_mapping/parameter_object.py (original) +++ trunk/specific_analyses/jw_mapping/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -36,6 +36,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/model_free/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/model_free/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/model_free/parameter_object.py (original) +++ trunk/specific_analyses/model_free/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -38,6 +38,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/n_state_model/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/n_state_model/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/n_state_model/parameter_object.py (original) +++ trunk/specific_analyses/n_state_model/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -35,6 +35,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__() method. Param_list.__init__(self) Modified: trunk/specific_analyses/noe/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/noe/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/noe/parameter_object.py (original) +++ trunk/specific_analyses/noe/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -35,6 +35,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/parameter_object.py (original) +++ trunk/specific_analyses/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -36,7 +36,7 @@ from user_functions.objects import Desc_container -class Param_list: +class Param_list(object): """A special object for handling global and spin parameters.""" def __init__(self, spin_data=True): @@ -74,17 +74,23 @@ self._uf_docs = {} self._uf_captions = {} - - def __new__(self, *args, **kargs): + # Set the initialised flag. + self._initialised = True + + + def __new__(cls, *args, **kargs): """Replacement function for implementing the singleton design pattern.""" # First initialisation. - if self.instance is None: + if cls._instance is None: # Create a new instance. - self.instance = object.__new__(self, *args, **kargs) + cls._instance = object.__new__(cls, *args, **kargs) + + # Add an initialisation flag. + cls._instance._initialised = False # Already initialised, so return the instance. - return self.instance + return cls._instance def _add(self, name, scope=None, string=None, default=None, units=None, desc=None, py_type=None, set='all', conv_factor=None, grace_string=None, err=False, sim=False): Modified: trunk/specific_analyses/relax_disp/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/relax_disp/parameter_object.py (original) +++ trunk/specific_analyses/relax_disp/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -34,6 +34,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + + # The object is already initialised. + if self._initialised: return # Execute the base class __init__ method. Param_list.__init__(self) Modified: trunk/specific_analyses/relax_fit/parameter_object.py URL: http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_fit/parameter_object.py?rev=22728&r1=22727&r2=22728&view=diff ============================================================================== --- trunk/specific_analyses/relax_fit/parameter_object.py (original) +++ trunk/specific_analyses/relax_fit/parameter_object.py Mon Apr 14 12:00:36 2014 @@ -35,6 +35,9 @@ def __init__(self): """Define all the parameters of the analysis.""" + # The object is already initialised. + if self._initialised: return + # Execute the base class __init__() method. Param_list.__init__(self)