From 395b575e8e258321985d2b83e84de41b2678a2fe Mon Sep 17 00:00:00 2001 From: mmckerns Date: Thu, 23 Jan 2025 21:16:48 -0500 Subject: [PATCH] handle np.float in logfile, getitem preserves settings --- mystic/monitors.py | 30 ++++++++++++++++++++++++++++++ mystic/munge.py | 3 ++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mystic/monitors.py b/mystic/monitors.py index bdd2819f..ce5aab6e 100644 --- a/mystic/monitors.py +++ b/mystic/monitors.py @@ -193,6 +193,10 @@ def __getitem__(self, y): m._x = self._x[y] m._y = self._y[y] m._id = self._id[y] + # copy other internals + m.k = self.k + m.label = self.label + m._npts = self._npts return m def __setitem__(self, i, y): @@ -415,6 +419,13 @@ def __call__(self, x, y, id=None, best=0, k=False): if id is not None: msg = "[id: %s] " % (id) + msg print(msg) return + def __getitem__(self, y): + """x.__getitem__(y) <==> x[y]""" + m = super(VerboseMonitor,self).__getitem__(y) + if hasattr(m, '_yinterval'): m._yinterval = self._yinterval + if hasattr(m, '_xinterval'): m._xinterval = self._xinterval + if hasattr(m, '_all'): m._all = self._all + return m pass class LoggingMonitor(Monitor): @@ -491,6 +502,15 @@ def __reduce__(self): def __setstate__(self, state): self.__dict__.update(state) return + def __getitem__(self, y): + """x.__getitem__(y) <==> x[y]""" + m = super(LoggingMonitor,self).__getitem__(y) + if hasattr(m, '_yinterval'): m._yinterval = self._yinterval + if hasattr(m, '_xinterval'): m._xinterval = self._xinterval + if hasattr(m, '_all'): m._all = self._all + if hasattr(m, '_filename'): m._filename = self._filename + if hasattr(m, '_file'): m._file = self._file + return m pass class VerboseLoggingMonitor(LoggingMonitor): @@ -556,6 +576,16 @@ def __reduce__(self): def __setstate__(self, state): self.__dict__.update(state) return + def __getitem__(self, y): + """x.__getitem__(y) <==> x[y]""" + m = super(VerboseLoggingMonitor,self).__getitem__(y) + if hasattr(m, '_yinterval'): m._yinterval = self._yinterval + if hasattr(m, '_xinterval'): m._xinterval = self._xinterval + if hasattr(m, '_all'): m._all = self._all + if hasattr(m, '_filename'): m._filename = self._filename + if hasattr(m, '_file'): m._file = self._file + if hasattr(m, '_vyinterval'): m._vyinterval = self._vyinterval + if hasattr(m, '_vxinterval'): m._vxinterval = self._vxinterval pass def CustomMonitor(*args,**kwds): diff --git a/mystic/munge.py b/mystic/munge.py index d1ffc267..1a5ff680 100644 --- a/mystic/munge.py +++ b/mystic/munge.py @@ -107,7 +107,8 @@ def logfile_reader(filename, iter=False): If iter=True, returns tuple of (iter, params, energy), as defined above. If iter=False, returns tuple of (params, energy). """ - from numpy import inf, nan + import numpy as np + inf, nan = np.inf, np.nan f = open(filename,"r") file = f.read() f.close()