Mercurial > repos > devteam > column_maker
diff column_maker.py @ 8:227e82286a0e draft
"planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/column_maker commit c623e4b9f6dd6ff4b88d9386f3b0a0cb497e0a0e"
author | devteam |
---|---|
date | Wed, 24 Feb 2021 05:19:12 +0000 |
parents | e7c273e8d4d6 |
children | 33b81f9ea109 |
line wrap: on
line diff
--- a/column_maker.py Mon Jan 25 09:59:49 2021 +0000 +++ b/column_maker.py Wed Feb 24 05:19:12 2021 +0000 @@ -10,6 +10,17 @@ import json import re import sys +# functions that may be used in the compute expression +from math import ( # noqa: F401 + ceil, + exp, + floor, + log, + log10, + sqrt +) + +from numpy import format_float_positional # noqa: F401 parser = argparse.ArgumentParser() parser.add_argument('input', type=argparse.FileType('r'), help="input file") @@ -49,8 +60,8 @@ ) try: in_columns = int(argparse_dict['columns']) - if in_columns < 2: - # To be considered tabular, data must fulfill requirements of the sniff.is_column_based() method. + if in_columns < 1: + # To be considered tabular, data must have at least one column. raise ValueError except Exception: if not fh.readline(): @@ -88,6 +99,9 @@ col_str = ', '.join(cols) # 'c1, c2, c3, c4' type_cast_str = ', '.join(type_casts) # 'str(c1), int(c2), int(c3), str(c4)' assign = "%s = line.split('\\t')" % col_str +if len(cols) == 1: + # Single column, unpacking by assignment won't work + assign += '[0]' wrap = "%s = %s" % (col_str, type_cast_str) skipped_lines = 0 first_invalid_line = 0 @@ -97,17 +111,6 @@ # Read input file, skipping invalid lines, and perform computation that will result in a new column code = ''' -# import here since flake8 complains otherwise -from math import ( - ceil, - exp, - floor, - log, - log10, - sqrt -) -from numpy import format_float_positional - for i, line in enumerate(fh): total_lines += 1 line = line.rstrip('\\r\\n')