linear without caching, derivatives done

This commit is contained in:
Max Zwiessele 2014-02-21 09:14:31 +00:00
parent 1d722c4f28
commit 0c92fca31a
7 changed files with 71 additions and 54 deletions

View file

@ -30,12 +30,12 @@ class ObservableArray(np.ndarray, Observable):
def __new__(cls, input_array):
obj = np.atleast_1d(input_array).view(cls)
cls.__name__ = "ObservableArray\n "
obj._observers_ = {}
obj._observer_callables_ = {}
return obj
def __array_finalize__(self, obj):
# see InfoArray.__array_finalize__ for comments
if obj is None: return
self._observers_ = getattr(obj, '_observers_', None)
self._observer_callables_ = getattr(obj, '_observer_callables_', None)
def __array_wrap__(self, out_arr, context=None):
return out_arr.view(np.ndarray)

View file

@ -11,14 +11,14 @@ def adjust_name_for_printing(name):
return ''
class Observable(object):
_observers_ = {}
def add_observer(self, observer, callble):
self._observers_[observer] = callble
_observer_callables_ = {}
def add_observer(self, callble):
self._observer_callables_.append(callble)
#callble(self)
def remove_observer(self, observer):
del self._observers_[observer]
def remove_observer(self, callble):
del self._observer_callables_[callble]
def _notify_observers(self):
[callble(self) for callble in self._observers_.itervalues()]
[callble(self) for callble in self._observer_callables_]
class Pickleable(object):
def _getstate(self):