comparison numerics/manipulate.py @ 60:e3c3ee7b5ccf

stubbing manipulate data
author Jeff Hammel <k0scist@gmail.com>
date Thu, 22 Jan 2015 13:33:56 -0800
parents 537fba7c9def
children 82a18c9337c3
comparison
equal deleted inserted replaced
59:3781174542bb 60:e3c3ee7b5ccf
6 """ 6 """
7 7
8 # imports 8 # imports
9 import argparse 9 import argparse
10 import os 10 import os
11 import subprocess
12 import sys 11 import sys
12 from .convert import cast_columns
13 from .read import CSVParser
13 14
14 # module globals 15 # module globals
15 __all__ = ['main', 'Parser'] 16 __all__ = ['main', 'ManipulationParser']
16 here = os.path.dirname(os.path.realpath(__file__)) 17 here = os.path.dirname(os.path.realpath(__file__))
17 string = (str, unicode) 18 string = (str, unicode)
18 19
19 class Parser(argparse.ArgumentParser): 20 class ManipulationParser(CSVParser):
20 """CLI option parser""" 21 """CLI option parser for data manipulation"""
22
21 def __init__(self, **kwargs): 23 def __init__(self, **kwargs):
22 kwargs.setdefault('formatter_class', argparse.RawTextHelpFormatter)
23 kwargs.setdefault('description', __doc__) 24 kwargs.setdefault('description', __doc__)
24 argparse.ArgumentParser.__init__(self, **kwargs) 25 CSVParser.__init__(self, **kwargs)
26 self.add_argument('--list', '--entries', '--list-entries',
27 dest='list_entries', nargs='?', const=0, type=int,
28 help="list all entries for this column")
25 self.options = None 29 self.options = None
26 30
27 def parse_args(self, *args, **kw): 31 def typed_data(self):
28 options = argparse.ArgumentParser.parse_args(self, *args, **kw) 32 raise NotImplementedError('TODO') # -> record TODO items
29 self.validate(options)
30 self.options = options
31 return options
32
33 def validate(self, options):
34 """validate options"""
35 33
36 def main(args=sys.argv[1:]): 34 def main(args=sys.argv[1:]):
37 """CLI""" 35 """CLI"""
38 36
39 # parse command line options 37 # parse command line options
40 parser = Parser() 38 parser = Parser()
41 options = parser.parse_args(args) 39 options = parser.parse_args(args)
42 40
41 if options.list_entries:
42 raise NotImplementedError('TODO') # -> record TODO items
43
43 if __name__ == '__main__': 44 if __name__ == '__main__':
44 main() 45 main()
45 46