# HG changeset patch # User Jeff Hammel # Date 1409878804 25200 # Node ID d5447d401c44045d144a759bcdca98fddcf906d0 # Parent 097296d6132e09ec3fa4c2c9ce2a71b1ef60a5cf serializaion; pandas probably does this diff -r 097296d6132e -r d5447d401c44 numerics/convert.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/numerics/convert.py Thu Sep 04 18:00:04 2014 -0700 @@ -0,0 +1,11 @@ +def cast(to_type, *values): + retval = [] + for value in values: + try: + retval.append(to_type(value)) + except ValueError: + retval.append(value) + return retval + +def float_or_orig(*values): + return cast(float, *values) diff -r 097296d6132e -r d5447d401c44 numerics/read.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/numerics/read.py Thu Sep 04 18:00:04 2014 -0700 @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +read CSV, etc +""" + +# imports +import argparse +import os +import subprocess +import sys + +# module globals +__all__ = ['main', 'Parser'] +here = os.path.dirname(os.path.realpath(__file__)) +string = (str, unicode) + +def ensure_dir(directory): + """ensure a directory exists""" + if os.path.exists(directory): + assert os.path.isdir(directory) + return directory + os.makedirs(directory) + return directory + +def read_csv + +class CSVParser(argparse.ArgumentParser): + """CLI option parser""" + def __init__(self, **kwargs): + kwargs.setdefault('description', __doc__) + argparse.ArgumentParser.__init__(self, **kwargs) + self.options = None + + def parse_args(self, *args, **kw): + options = argparse.ArgumentParser.parse_args(self, *args, **kw) + self.validate(options) + self.options = options + return options + + def validate(self, options): + """validate options""" + +def main(args=sys.argv[1:]): + """CLI""" + + # parse command line options + parser = Parser() + options = parser.parse_args(args) + +if __name__ == '__main__': + main() +