# HG changeset patch # User Jeff Hammel # 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 +