Example #1
0
    def testArgs(self):
        """
        It must be possible to parse command line arguments to create a new
        instance of FindParameters.
        """
        parser = argparse.ArgumentParser()
        FindParameters.addArgsToParser(parser)
        args = parser.parse_args([
            '--significanceMethod',
            'Always',
            '--significanceFraction',
            '0.4',
            '--binScoreMethod',
            'MinHashesScore',
            '--featureMatchScore',
            '5',
            '--featureMismatchScore',
            '6',
            '--weights',
            'AlphaHelix 2',
            '--deltaScale',
            '0.2',
        ])

        # Parsing must do the expected thing.
        self.assertEqual('Always', args.significanceMethod)
        self.assertEqual(0.4, args.significanceFraction)
        self.assertEqual('MinHashesScore', args.binScoreMethod)
        self.assertEqual(5, args.featureMatchScore)
        self.assertEqual(6, args.featureMismatchScore)
        self.assertEqual(0.2, args.deltaScale)

        # We must be able to make an instance from the parsed args.
        findParams = FindParameters.fromArgs(args)
        self.assertEqual('Always', findParams.significanceMethod)
        self.assertEqual(0.4, findParams.significanceFraction)
        self.assertEqual('MinHashesScore', findParams.binScoreMethod)
        self.assertEqual(5, findParams.featureMatchScore)
        self.assertEqual(6, findParams.featureMismatchScore)
        self.assertEqual(0.2, findParams.deltaScale)
Example #2
0
#!/usr/bin/env python
"""
Print all database and find parameters available via the command line,
with their default values (according to argparse).
"""

from __future__ import print_function

import argparse

from light.parameters import DatabaseParameters, FindParameters

dbParams = DatabaseParameters()
parser = argparse.ArgumentParser(
    add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter)
dbParams.addArgsToParser(parser)
print('Database parameters:')
# Splitting on 'optional arguments:\n' is a hack that works nicely as the
# first part of the help message is a summary of how to call the program
# and doesn't show descriptions or default values.
print(parser.format_help().split('optional arguments:\n')[1])

findParams = FindParameters()
parser = argparse.ArgumentParser(
    add_help=False, formatter_class=argparse.ArgumentDefaultsHelpFormatter)
findParams.addArgsToParser(parser)
print('Find parameters:')
print(parser.format_help().split('optional arguments:\n')[1])
Example #3
0
        '--printParams',
        default=False,
        action='store_true',
        help=('If given, print the values of all parameters used.'))

    parser.add_argument('--description',
                        default='<not given>',
                        help='A description of the code being tested.')

    parser.add_argument(
        '--testIdPrefix',
        default=None,
        help=('A test id prefix. Tests whose ids do not contain this pattern '
              'will not be run. The pattern is case-sensitive.'))

    FindParameters.addArgsToParser(parser)
    DatabaseParameters.addArgsToParser(parser)

    args = parser.parse_args()

    # If no parameter sets were specified, use the ones on the command line.
    if not args.parameterSets:
        args.parameterSets = ['command-line']

    if 'command-line' in args.parameterSets:
        PARAMETER_SETS['command-line'] = {
            'dbParams': DatabaseParameters.fromArgs(args),
            'findParams': FindParameters.fromArgs(args),
        }

    if args.printParams: