diff --git a/aosstower/l00/parser.py b/aosstower/l00/parser.py index 7464a914c69d17ad34b1a118ff67aaf6165fd603..4d0f951a66875c5e4a188aaa0bbc97397358ddae 100644 --- a/aosstower/l00/parser.py +++ b/aosstower/l00/parser.py @@ -57,16 +57,17 @@ class LineParseError(Exception): def _make_frame(data): """Construct a frame from a list of tuples. """ + frame = {} for key, value in data: if key == 'stamp': continue if key in database: try: - data[key] = database[key].type(data[key]) + frame[key] = database[key].type(value) except (ValueError, TypeError): raise LineParseError("error converting '%s' using %s", - data[key], database[key].type) - return data + value, database[key].type) + return frame class ParserV0(object): @@ -169,7 +170,7 @@ def read_frames(source, error_handler=lambda *a: None): for parser in [ParserV1V2(), ParserV0()]: if parser.maybe_mine(line): try: - yield parser.parse(line) + yield parser.make_frame(line) except LineParseError as err: error_handler(idx + 1, line, err) break