parent observer now static and always last

This commit is contained in:
Max Zwiessele 2014-02-27 08:07:00 +00:00
parent f1487c6935
commit 023203dc3a
3 changed files with 5 additions and 3 deletions

View file

@ -161,6 +161,8 @@ class Param(Constrainable, ObservableArray, Gradcheckable):
return new_arr
def __setitem__(self, s, val):
super(Param, self).__setitem__(s, val)
if self.has_parent():
self._direct_parent_._notify_parameters_changed()
#self._notify_observers()
#===========================================================================

View file

@ -391,8 +391,7 @@ class Parameterizable(Constrainable, Observable):
# don't overwrite this anymore!
import itertools
[p._set_params(params[s]) for p, s in itertools.izip(self._parameters_, self._param_slices_)]
self.parameters_changed()
self._notify_observers()
self._notify_parameters_changed()
def copy(self):
"""Returns a (deep) copy of the current model"""
@ -428,6 +427,8 @@ class Parameterizable(Constrainable, Observable):
def _notify_parameters_changed(self, which):
self.parameters_changed()
self._notify_observers()
if self.has_parent():
self._direct_parent_._notify_parameters_changed()
def parameters_changed(self):
"""

View file

@ -92,7 +92,6 @@ class Parameterized(Parameterizable, Pickleable, Gradcheckable):
self.constraints.update(param.constraints, start)
self.priors.update(param.priors, start)
self._parameters_.insert(index, param)
param.add_observer(self, self._notify_parameters_changed)
self.size += param.size
else:
raise RuntimeError, """Parameter exists already added and no copy made"""