diff --git a/aosstower/frame.py b/aosstower/frame.py index 0878fd2e6f26a31f052e4cc4aa8947f1db0a592a..b2b837988a40c4c0822b28802b03ae186dcda6ed 100644 --- a/aosstower/frame.py +++ b/aosstower/frame.py @@ -1,10 +1,28 @@ +from _abcoll import MutableMapping + from aosstower import station -class Frame(dict): +class Frame(MutableMapping): def __init__(self, width=station.DATA_INTERVAL): + self._data = {} self.width = width def __getattr__(self, name, default=None): return self.get(name, default) + + def __getitem__(self, name): + return self._data[name] + + def __setitem__(self, name, value): + self._data[name] = value + + def __delitem__(self, name): + del self._data[name] + + def __iter__(self): + return iter(self._data) + + def __len__(self): + return len(self._data) diff --git a/aosstower/l00/parser.py b/aosstower/l00/parser.py index 4b58d83551f6e7725705a35a25e3b9949a0ef134..7464a914c69d17ad34b1a118ff67aaf6165fd603 100644 --- a/aosstower/l00/parser.py +++ b/aosstower/l00/parser.py @@ -1,4 +1,5 @@ -""" +"""Code to parse level 00 data. + Data Versions ============= There have so far been 3 changes to the format of the raw ASCII data over the @@ -38,7 +39,6 @@ from datetime import datetime, timedelta from metobs import data as d from aosstower.schema import database -from aosstower.frame import Frame LOG = logging.getLogger(__name__) @@ -57,14 +57,13 @@ class LineParseError(Exception): def _make_frame(data): """Construct a frame from a list of tuples. """ - frame = Frame() for key, value in data: if key == 'stamp': continue if key in database: try: data[key] = database[key].type(data[key]) - except (ValueError, TypeError) as err: + except (ValueError, TypeError): raise LineParseError("error converting '%s' using %s", data[key], database[key].type) return data diff --git a/aosstower/station.py b/aosstower/station.py index 4197d403ed89b5a0a4fdc7cc2bfe1cb07326ca74..400afa81954396956b8edc9feeef3ea8a26fb64e 100644 --- a/aosstower/station.py +++ b/aosstower/station.py @@ -1,3 +1,5 @@ +"""Station metadata. +""" from datetime import timedelta # Time between data samples in seconds