diff --git a/python_src/lasp/lasp_measurementset.py b/python_src/lasp/lasp_measurementset.py index 9249c34..6973868 100644 --- a/python_src/lasp/lasp_measurementset.py +++ b/python_src/lasp/lasp_measurementset.py @@ -3,7 +3,8 @@ Provides class MeasurementSet, a class used to perform checks and adjustments on a group of measurements at the same time. """ -__all__ = ['MeasurementSet'] + +__all__ = ["MeasurementSet"] from .lasp_measurement import Measurement, MeasurementType from typing import List import time @@ -16,7 +17,7 @@ class MeasurementSet(list): """ - def __init__(self, mlist: List[Measurement]=[]): + def __init__(self, mlist: List[Measurement] = []): """ Initialize a measurement set @@ -25,8 +26,10 @@ class MeasurementSet(list): """ if any([not isinstance(i, Measurement) for i in mlist]): - raise TypeError('Object in list should be of Measurement type') + raise TypeError("Object in list should be of Measurement type") + # Sort by time stamp, otherwise the order is random + mlist.sort(key=lambda x: x.time, reverse=True) super().__init__(mlist) def getNewestReferenceMeasurement(self, mtype: MeasurementType): @@ -46,7 +49,8 @@ class MeasurementSet(list): return mnewest def getReferenceMeasurements(self, mtype: MeasurementType): - """Get all reference measurements of a certain type + """Get all available reference measurements of a certain type in the + current set. Args: mtype (MeasurementType): The type of which to list @@ -55,7 +59,7 @@ class MeasurementSet(list): a new measurement set including all measurements of a certain type """ return [m for m in self if m.measurementType() == mtype] - + def getNewestReferenceMeasurements(self): """Returns a dictionary with newest measurement of each type that is not specific returns None in case no measurement is found.""" newest = {} @@ -72,16 +76,15 @@ class MeasurementSet(list): def newestReferenceOlderThan(self, secs): """Returns a dictionary of references with the newest reference, that is still - older than `secs` seconds. """ + older than `secs` seconds.""" curtime = time.time() newest = self.getNewestReferenceMeasurements() - newest_older_than = {} + newest_older_than = {} for key, m in newest.items(): if curtime - m.time >= secs: newest_older_than[key] = m return newest_older_than - def measTimeSame(self): """ Returns True if all measurements have the same measurement @@ -117,4 +120,3 @@ class MeasurementSet(list): return all([first == meas.channelConfig for meas in self]) else: return False -