Mercurial > repos > iuc > filter_tabular
view filter_tabular.py @ 13:4d5aae46f850 draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/query_tabular commit 35576d64a12fa664d72559172c5960c09da2b632"
author | iuc |
---|---|
date | Thu, 19 Aug 2021 19:39:58 +0000 |
parents | 6fbd9d25ceef |
children |
line wrap: on
line source
#!/usr/bin/env python from __future__ import print_function import json import optparse import os.path import sys from filters import filter_file def __main__(): # Parse Command Line parser = optparse.OptionParser() parser.add_option('-i', '--input', dest='input', default=None, help='Input file for filtering') parser.add_option('-j', '--jsonfile', dest='jsonfile', default=None, help='JSON array of filter specifications') parser.add_option('-o', '--output', dest='output', default=None, help='Output file for query results') parser.add_option('-c', '--comment_char)', dest='comment_char', default=None, help='Line comment character') parser.add_option('-v', '--verbose', dest='verbose', default=False, action='store_true', help='verbose') (options, args) = parser.parse_args() if options.input is not None: try: inputPath = os.path.abspath(options.input) inputFile = open(inputPath, 'r') except Exception as e: exit('Error: %s' % (e)) else: inputFile = sys.stdin if options.output is not None: try: outputPath = os.path.abspath(options.output) outputFile = open(outputPath, 'w') except Exception as e: exit('Error: %s' % (e)) else: outputFile = sys.stdout filters = None if options.jsonfile: try: with open(options.jsonfile) as fh: filters = json.load(fh) except Exception as e: exit('Error: %s' % (e)) if options.verbose and filters: for f in filters: print('%s %s' % (f['filter'], ', '.join( ['%s: %s' % (k, f[k]) for k in set(f.keys()) - set(['filter'])])), file=sys.stdout) try: filter_file(inputFile, outputFile, comment_char=options.comment_char, filters=filters) except Exception as e: exit('Error: %s' % (e)) if __name__ == "__main__": __main__()