Mercurial > hg > numerics
view numerics/manipulate.py @ 135:12649a88545c
stubbing: hooking this up to command line
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Tue, 17 Mar 2015 11:53:33 -0700 |
parents | d255058333b2 |
children | cffa11cb91a0 |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- """ manipulate CSV data """ # imports import argparse import os import sys from .convert import default_cast, cast_columns from .data import transpose from .read import CSVParser from .sort import Sorter # module globals __all__ = ['ManipulationParser', 'FloatParser', 'main'] class ManipulationParser(CSVParser): """CLI option parser for data manipulation""" types = default_cast def __init__(self, **kwargs): kwargs.setdefault('description', __doc__) CSVParser.__init__(self, **kwargs) self.options = None def typed_data(self): """return parsed and casted data""" return cast_columns(self.columns(), self.types) def process(self): return transpose(self.typed_data()) class FloatParser(ManipulationParser): """manipulation parser convenience just for floats""" types = (float,) def main(args=sys.argv[1:]): """CLI""" # parse command line options parser = ManipulationParser() options = parser.parse_args(args) # write manipulated data parser.write(parser.process()) if __name__ == '__main__': main()