Source code for txt2xls.args

# coding=utf-8
"""
"""
__author__ = 'Alisue <lambdalisue@hashnote.net>'
import re
import argparse
import txt2xls

USING_FORMAT_PATTERN = re.compile(r"^(\d+:)*\d+$")

[docs]def parse_using(value): m = USING_FORMAT_PATTERN.match(value) if m is None: raise argparse.ArgumentTypeError('Value has to be a colon (:) ' 'separated column indexes (e.g. ' '"0:1" or "0:1:2").') indexes = value.split(":")
return tuple(map(int, indexes))
[docs]def parse_args(args=None): usage = None description = None parser = argparse.ArgumentParser(prog='txt2xls', usage=usage, description=description, version=txt2xls.__version__) group1 = parser.add_argument_group('Reading options') group1.add_argument('-p', '--parser', default=None, help=('A maidenhair parser name which will be used to ' 'parse the raw text data.')) group1.add_argument('-l', '--loader', default=None, help=('A maidenhair loader name which will be used to ' 'load the raw text data.')) group1.add_argument('-u', '--using', default=None, type=parse_using, help=('A colon (:) separated column indexes. ' 'It is used for limiting the reading columns.')) # unite group2 = parser.add_argument_group('Unite options') group2.add_argument('--unite', default=None, action='store_true', help=('Join the columns of classified dataset with ' 'respecting --unite-basecolumn.' 'The dataset is classified with ' '--unite-function.')) group2.add_argument('--unite-basecolumn', default=None, type=int, help=('An index of columns which will be used as a ' 'base column for regulating data point region. ')) group2.add_argument('--unite-function', default=None, help=('A python script file path or a content of ' 'python lambda expression which will be used ' 'for classifing dataset. ' 'If it is not spcified, a filename character ' 'before period (.) will be used to classify.')) # classify group3 = parser.add_argument_group('Classify options') group3.add_argument('--classify', default=None, action='store_true', help=('Classify dataset with --classify-function. ' 'It will influence the results of --relative ' 'and --baseline.')) group3.add_argument('--classify-function', default=None, help=('A python script file path or a content of ' 'python lambda expression which will be used ' 'for classifing dataset. ' 'If it is not specified, a filename character ' 'before the last underscore (_) will be used ' 'to classify.')) # relative group4 = parser.add_argument_group('Relative options') group4.add_argument('--relative', default=None, action='store_true', help=('If it is True, the raw data will be converted to ' 'relative data from the specified origin, based ' 'on the specified column. ' 'See `--relative-origin` and ' '`--relative-basecolumn` also.')) group4.add_argument('--relative-origin', default=None, type=int, help=('A dataset number which will be used as an orign ' 'of the relative data. ' 'It is used with `--relative` option.')) group4.add_argument('--relative-basecolumn', default=None, type=int, help=('A column number which will be used as a base ' 'column to make the data relative. ' 'It is used with `--relative` option.')) # baseline group5 = parser.add_argument_group('Baseline options') group5.add_argument('--baseline', default=None, action='store_true', help=('If it is specified, the specified data file ' 'is used as a baseline of the dataset. ' 'See `--baseline-basecolumn` and ' '`--baseline-function` also.')) group5.add_argument('--baseline-basecolumn', default=None, type=int, help=('A column index which will be proceeded for ' 'baseline regulation. ' 'It is used with `--baseline` option.')) group5.add_argument('--baseline-function', default=None, help=('A python script file path or a content of ' 'python lambda expression which will be used to ' 'determine the baseline value from the data. ' '`columns` and `column` variables are ' 'available in the lambda expression.')) # peakset group6 = parser.add_argument_group('Peakset options') group6.add_argument('--peakset-method', default=None, choices=('argmax', 'argmin'), help=('A method to find peak data point. ')) group6.add_argument('--peakset-basecolumn', default=None, type=int, help=('A column index which will be used for ' 'finding peak data point. ')) group6.add_argument('--peakset-where-function', default=None, help=('A python script file path or a content of ' 'python lambda expression which will be used to ' 'limit the range of data points for finding. ' 'peak data point. ' '`data` is available in the lambda expression.')) parser.add_argument('--raise-exception', default=None, action='store_true', help=('If it is specified, raise exceptions.')) parser.add_argument('-o', '--outfile', default=None, help=('An output filename without extensions. ' 'The required filename extension will be ' 'automatically determined from an output format.')) parser.add_argument('infiles', nargs='+', help=('Path list of data files or directories which ' 'have data files. ')) args = parser.parse_args(args)
return args