Skip to content
Snippets Groups Projects

update interval no longer shrinks with recursion

All threads resolved!
2 files
+ 47
5
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 26
4
@@ -426,11 +426,10 @@ class Controller(object):
# check for fillable gap at start
if output_gap[0] == starttime:
# found fillable gap at start, recurse to previous interval
delta = TimeseriesUtility.get_delta_from_interval(output_interval)
recurse_starttime = (
starttime - (endtime - starttime) - delta * bool(update_count)
recurse_starttime, recurse_endtime = get_previous_interval(
start=starttime,
end=endtime,
)
recurse_endtime = starttime - delta
self.run_as_update(
algorithm=algorithm,
observatory=observatory,
@@ -638,6 +637,29 @@ def get_output_factory(args):
return output_factory
def get_previous_interval(
start: UTCDateTime,
end: UTCDateTime,
) -> Tuple[UTCDateTime, UTCDateTime]:
"""Get previous interval for given interval.
Parameters
----------
start
start of interval
end
end of interval
Returns
-------
Previous interval of approximately the same size.
Interval is rounded to nearest second, and ends one microsecond earlier.
"""
# round to nearest second to recover removed microsecond from repeated calls
interval_size = round(end - start)
return (start - interval_size, start - 1e-6)
def get_realtime_interval(interval_seconds: int) -> Tuple[UTCDateTime, UTCDateTime]:
# calculate endtime/starttime
now = UTCDateTime()
Loading