diff --git a/geomagio/Util.py b/geomagio/Util.py index e9d8ca5c3364125b920f54fd6696c38a2919bc1f..8efbeda304bb4cfcafcbfee94cec1064d17517a8 100644 --- a/geomagio/Util.py +++ b/geomagio/Util.py @@ -70,6 +70,7 @@ def get_intervals(starttime, endtime, size=86400, align=True, trim=False): end of time interval to divide size : int size of each interval in seconds. + when <= 0, returns one interval from start to end. align : bool align intervals to unix epoch. (works best when size evenly divides a day) @@ -82,6 +83,11 @@ def get_intervals(starttime, endtime, size=86400, align=True, trim=False): each dictionary has the keys "starttime" and "endtime" which represent [intervalstart, intervalend). """ + if size <= 0: + return [{ + 'start': starttime, + 'end': endtime + }] if align: # align based on size time = starttime - (starttime.timestamp % size) diff --git a/test/Util_test.py b/test/Util_test.py index 01618de6a0473e0246a3e007c3bc0b5a0b287fe3..b84748a32080acc332a999b4eab6642fc10b5c62 100644 --- a/test/Util_test.py +++ b/test/Util_test.py @@ -57,6 +57,17 @@ def test_get_interval__custom_size(): assert_equals(len(intervals), 24) +def test_get_interval__negative_size(): + """Util_test.test_get_interval__negative_size() + """ + starttime = UTCDateTime('2015-01-01T00:00:00Z') + endtime = UTCDateTime('2015-01-02T00:00:00Z') + intervals = Util.get_intervals(starttime, endtime, size=-1) + assert_equals(len(intervals), 1) + assert_equals(intervals[0]['start'], starttime) + assert_equals(intervals[0]['end'], endtime) + + def test_get_interval__trim(): """Util_test.test_get_interval__trim() """