Skip to content

Commit b1157b0

Browse files
committed
Cache _Rprofs and _Tseries EXTRA computations
1 parent a61ebf5 commit b1157b0

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

stagpy/_step.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ class _Rprofs:
394394
def __init__(self, step):
395395
self.step = step
396396
self._data = UNDETERMINED
397+
self._cached_extra = {}
397398
self._centers = UNDETERMINED
398399
self._walls = UNDETERMINED
399400
self._bounds = UNDETERMINED
@@ -417,11 +418,14 @@ def __getitem__(self, name):
417418
meta = phyvars.RPROF[name]
418419
else:
419420
meta = phyvars.Varr(name, None, '1')
421+
elif name in self._cached_extra:
422+
rprof, rad, meta = self._cached_extra[name]
420423
elif name in phyvars.RPROF_EXTRA:
421424
meta = phyvars.RPROF_EXTRA[name]
422425
rprof, rad = meta.description(step)
423426
meta = phyvars.Varr(misc.baredoc(meta.description),
424427
meta.kind, meta.dim)
428+
self._cached_extra[name] = rprof, rad, meta
425429
else:
426430
raise error.UnknownRprofVarError(name)
427431
rprof, _ = step.sdat.scale(rprof, meta.dim)

stagpy/stagyydata.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ class _Tseries:
180180
def __init__(self, sdat):
181181
self.sdat = sdat
182182
self._data = UNDETERMINED
183+
self._cached_extra = {}
183184

184185
@property
185186
def _tseries(self):
@@ -208,11 +209,14 @@ def __getitem__(self, name):
208209
meta = phyvars.TIME[name]
209210
else:
210211
meta = phyvars.Vart(name, None, '1')
212+
elif name in self._cached_extra:
213+
series, time, meta = self._cached_extra[name]
211214
elif name in phyvars.TIME_EXTRA:
212215
meta = phyvars.TIME_EXTRA[name]
213216
series, time = meta.description(self.sdat)
214217
meta = phyvars.Vart(misc.baredoc(meta.description),
215218
meta.kind, meta.dim)
219+
self._cached_extra[name] = series, time, meta
216220
else:
217221
raise error.UnknownTimeVarError(name)
218222
series, _ = self.sdat.scale(series, meta.dim)

stagpy/time_series.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ def plot_time_series(sdat, lovs):
3232
conf.time.tstart: the starting time.
3333
conf.time.tend: the ending time.
3434
"""
35-
sovs = misc.set_of_vars(lovs)
36-
tseries = {tvar: sdat.tseries[tvar] for tvar in sovs}
37-
3835
time_marks = _collect_marks(sdat)
3936
for vfig in lovs:
4037
fig, axes = plt.subplots(nrows=len(vfig), sharex=True,
@@ -43,7 +40,7 @@ def plot_time_series(sdat, lovs):
4340
fname = ['time']
4441
for iplt, vplt in enumerate(vfig):
4542
ylabel = None
46-
series_on_plt = (tseries[tvar] for tvar in vplt)
43+
series_on_plt = (sdat.tseries[tvar] for tvar in vplt)
4744
fname.extend(vplt)
4845
for ivar, (series, time, meta) in enumerate(series_on_plt):
4946
axes[iplt].plot(time, series, conf.time.style,

0 commit comments

Comments
 (0)