From 84f202766b94a4f0e2d1b880d82f714e9c821212 Mon Sep 17 00:00:00 2001
From: Bruce Flynn <brucef@ssec.wisc.edu>
Date: Mon, 29 Dec 2014 12:40:30 -0600
Subject: [PATCH] Make frame a MutableMapping. Do a little linting.

---
 aosstower/frame.py      | 20 +++++++++++++++++++-
 aosstower/l00/parser.py |  7 +++----
 aosstower/station.py    |  2 ++
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/aosstower/frame.py b/aosstower/frame.py
index 0878fd2..b2b8379 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 4b58d83..7464a91 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 4197d40..400afa8 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
-- 
GitLab