diff --git a/python/sdist/amici/numpy.py b/python/sdist/amici/numpy.py index 1566b7654c..b84e52cc2b 100644 --- a/python/sdist/amici/numpy.py +++ b/python/sdist/amici/numpy.py @@ -310,6 +310,10 @@ def __getitem__( return super().__getitem__(item) + def __repr__(self): + status = amici.simulation_status_to_str(self._swigptr.status) + return f"<{self.__class__.__name__}(id={self._swigptr.id!r}, status={status})>" + def by_id( self, entity_id: str, field: str = None, model: Model = None ) -> np.array: @@ -359,6 +363,7 @@ class ExpDataView(SwigPtrView): """ _field_names = [ + "ts", "observedData", "observedDataStdDev", "observedEvents", @@ -379,7 +384,9 @@ def __init__(self, edata: Union[ExpDataPtr, ExpData]): f"Unsupported pointer {type(edata)}, must be" f"amici.ExpDataPtr!" ) - self._field_dimensions = { # observables + self._field_dimensions = { + "ts": [edata.nt()], + # observables "observedData": [edata.nt(), edata.nytrue()], "observedDataStdDev": [edata.nt(), edata.nytrue()], # event observables @@ -394,6 +401,7 @@ def __init__(self, edata: Union[ExpDataPtr, ExpData]): len(edata.fixedParametersPreequilibration) ], } + edata.ts = edata.ts_ edata.observedData = edata.getObservedData() edata.observedDataStdDev = edata.getObservedDataStdDev() edata.observedEvents = edata.getObservedEvents() diff --git a/swig/edata.i b/swig/edata.i index 86f2df1365..f2f7d0da8a 100644 --- a/swig/edata.i +++ b/swig/edata.i @@ -76,11 +76,12 @@ def __repr__(self): return _edata_repr(self) def __eq__(self, other): - return isinstance(other, self.__class__) and __eq__(self, other) + return other.__class__ == self.__class__ and __eq__(self, other) def __deepcopy__(self, memo): # invoke copy constructor return type(self)(self) + %} }; %extend std::unique_ptr {