comparison sqlex/main.py @ 4:b440206930ac

stub table optional positional argument
author Jeff Hammel <k0scist@gmail.com>
date Sat, 01 Apr 2017 09:28:49 -0700
parents 5f1e1ac96aa7
children 3a7f515571dc
comparison
equal deleted inserted replaced
3:5f1e1ac96aa7 4:b440206930ac
29 kwargs.setdefault('formatter_class', argparse.RawTextHelpFormatter) 29 kwargs.setdefault('formatter_class', argparse.RawTextHelpFormatter)
30 kwargs.setdefault('description', __doc__) 30 kwargs.setdefault('description', __doc__)
31 argparse.ArgumentParser.__init__(self, **kwargs) 31 argparse.ArgumentParser.__init__(self, **kwargs)
32 self.add_argument('db', 32 self.add_argument('db',
33 help="sqlite `.db` file") 33 help="sqlite `.db` file")
34 self.add_argument('table', nargs='?',
35 help="table to operate on")
34 self.add_argument('--tables', '--list-tables', dest='list_tables', 36 self.add_argument('--tables', '--list-tables', dest='list_tables',
35 action='store_true', default=False, 37 action='store_true', default=False,
36 help="list tables and exit") 38 help="list tables and exit")
37 self.options = None 39 self.options = None
38 40
60 62
61 # connect to database 63 # connect to database
62 db = SQLEx(options.db) 64 db = SQLEx(options.db)
63 65
64 if options.list_tables: 66 if options.list_tables:
67 # list tables and return
68 # if `table` argument is provided, exit 1
69 # if not available. Otherwise exit 0
65 tables = db.tables() 70 tables = db.tables()
66 print ('\n'.join(tables)) 71 print ('\n'.join(tables))
67 return 72 retval = 0
73 if options.table:
74 retval = int(options.table not in tables)
75 return retval
68 76
69 if __name__ == '__main__': 77 if __name__ == '__main__':
70 main() 78 main()