view numerics/manipulate.py @ 111:c4d26ef63d8e

fix error in convert and i think this works sorta well enouigh for now
author Jeff Hammel <k0scist@gmail.com>
date Sun, 15 Mar 2015 15:38:12 -0700
parents 5790bcb30bd8
children d255058333b2
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

# module globals
__all__ = ['ManipulationParser', '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())


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()