# HG changeset patch
# User Jeff Hammel <k0scist@gmail.com>
# Date 1416605747 28800
# Node ID 37378374b2181f0b3260757a53dcf8ef90d896d4
# Parent  3c3b793fcffc1e321f8ccf09fa22b2dbb934d608
implement

diff -r 3c3b793fcffc -r 37378374b218 numerics/fields.py
--- a/numerics/fields.py	Fri Nov 21 13:16:39 2014 -0800
+++ b/numerics/fields.py	Fri Nov 21 13:35:47 2014 -0800
@@ -23,5 +23,24 @@
             with open(f) as _f:
                 return self.parse(_f)
 
-        
+        reader = csv.reader(f)
+        retval = []
+        for row in reader:
+
+            # ensure row length is correct
+            if len(row) != len(self.fields):
+                raise Exception("{} | Unrecognized summary row: {}".format(f.name, row))
+
+            # make a data object
+            values = dict(zip(self.names(), row))
 
+            # convert
+            try:
+                for name, _type in self.fields:
+                    values[name] = _type(values[name])
+            except Exception as e:
+                raise Exception("{} | Unable to convert row: {}".format(f.name, e))
+
+            retval.append(values)
+        return values
+