comparison query_tabular.py @ 4:973f03d82c86 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/query_tabular commit 6a362345c31764c28bb6328da1f0d81ef8f35d40
author iuc
date Thu, 03 May 2018 10:16:38 -0400
parents 1ea4e668bf73
children
comparison
equal deleted inserted replaced
3:1ea4e668bf73 4:973f03d82c86
57 help='Include a column headers line') 57 help='Include a column headers line')
58 parser.add_option('-c', '--comment_char', dest='comment_char', default='', 58 parser.add_option('-c', '--comment_char', dest='comment_char', default='',
59 help='comment character to prefix column header line') 59 help='comment character to prefix column header line')
60 parser.add_option('-o', '--output', dest='output', default=None, 60 parser.add_option('-o', '--output', dest='output', default=None,
61 help='Output file for query results') 61 help='Output file for query results')
62 parser.add_option('-d', '--debug', dest='debug', default=False,
63 action='store_true',
64 help='Output info to stderr')
62 (options, args) = parser.parse_args() 65 (options, args) = parser.parse_args()
63 66
64 # determine output destination 67 # determine output destination
65 if options.output is not None: 68 if options.output is not None:
66 try: 69 try:
107 110
108 if options.jsonfile: 111 if options.jsonfile:
109 try: 112 try:
110 with open(options.jsonfile) as fh: 113 with open(options.jsonfile) as fh:
111 tdef = json.load(fh) 114 tdef = json.load(fh)
115 if options.debug:
116 print('JSON: %s' % tdef, file=sys.stderr)
112 if 'tables' in tdef: 117 if 'tables' in tdef:
113 for ti, table in enumerate(tdef['tables']): 118 for ti, table in enumerate(tdef['tables']):
114 _create_table(ti, table) 119 _create_table(ti, table)
120 if 'sql_stmts' in tdef:
121 for si, stmt in enumerate(tdef['sql_stmts']):
122 rowcount = run_query(get_connection(options.sqlitedb), stmt, None)
123 if options.debug:
124 print('\nDB modification: %s \nrowcount: %s' %
125 (stmt, rowcount), file=sys.stderr)
126 if 'queries' in tdef:
127 for qi, qstmt in enumerate(tdef['queries']):
128 if 'header' in qstmt:
129 no_header = False
130 comment_char = qstmt['header']
131 else:
132 no_header = True
133 comment_char = None
134 with open(qstmt['result_file'], 'w') as fh:
135 query = qstmt['query']
136 rowcount = run_query(get_connection(options.sqlitedb),
137 query,
138 fh,
139 no_header=no_header,
140 comment_char=comment_char)
141 if options.debug:
142 print('\nSQL: %s \nrowcount: %s' %
143 (query, rowcount), file=sys.stderr)
115 except Exception as e: 144 except Exception as e:
116 exit('Error: %s' % (e)) 145 exit('Error: %s' % (e))
117 146
118 query = None 147 query = None
119 if options.query_file is not None: 148 if options.query_file is not None:
129 describe_tables(get_connection(options.sqlitedb), outputFile) 158 describe_tables(get_connection(options.sqlitedb), outputFile)
130 except Exception as e: 159 except Exception as e:
131 exit('Error: %s' % (e)) 160 exit('Error: %s' % (e))
132 else: 161 else:
133 try: 162 try:
134 run_query(get_connection(options.sqlitedb), query, outputFile, 163 rowcount = run_query(get_connection(options.sqlitedb),
135 no_header=options.no_header, 164 query, outputFile,
136 comment_char=options.comment_char) 165 no_header=options.no_header,
166 comment_char=options.comment_char)
167 if options.debug:
168 print('\nSQL: %s \nrowcount: %s' %
169 (query, rowcount), file=sys.stderr)
137 except Exception as e: 170 except Exception as e:
138 exit('Error: %s' % (e)) 171 exit('Error: %s' % (e))
139 172
140 173
141 if __name__ == "__main__": 174 if __name__ == "__main__":