Skip to content

Commit

Permalink
Use ga4gh-common for setup and utils
Browse files Browse the repository at this point in the history
  • Loading branch information
dcolligan committed Oct 28, 2016
1 parent 40f1928 commit 0aa4e00
Show file tree
Hide file tree
Showing 50 changed files with 381 additions and 796 deletions.
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
exclude = ga4gh/*_pb2.py,ga4gh/datamodel/obo_parser.py,docs,ez_setup.py
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ tests/data/registry.db
*.rar
*.tar
*.zip
*.whl

# Logs and databases #
######################
Expand Down
14 changes: 6 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,23 @@ install:
- ga4gh_repo --version

before_script:
# the following two lines are to prevent travis from
# verbosely complaining about a security problem; see issue 54
- mkdir $HOME/.python-eggs
- chmod og-w $HOME/.python-eggs
- pip install -r dev-requirements.txt
- python scripts/build_test_data.py


# run_tests.py runs everything under the script: tag so only put commands
# under it that we want to run (and want to be able to run) as local tests
script:
- flake8 *.py tests ga4gh scripts
--exclude=ez_setup.py,ga4gh/*_pb2.py,ga4gh/datamodel/obo_parser.py
- flake8 client_dev.py configtest_dev.py convert_error_code.py
ga2sam_dev.py ga2vcf_dev.py repo_dev.py server_dev.py
setup.py
tests ga4gh scripts
- nosetests --with-coverage --cover-package ga4gh
--cover-inclusive --cover-min-percentage 80
--cover-branches --cover-erase
- make clean -C docs
- make -C docs

# run codecov !
after_success:
- bash <(curl -s https://codecov.io/bash)
# run codecov
- bash <(curl -s https://codecov.io/bash)
12 changes: 7 additions & 5 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,18 @@ PyYAML==3.11
# do not import them in any code that can be reached via
# an executable that we ship

mock
nose
pep8
flake8
coverage

PyVCF==0.6.7
coverage==3.7.1
flake8==2.3.0 # Set due to conflict with pep8 in version 2.4.0
freezegun==0.3.6
guppy==0.1.10
mock==1.0.0
nose==1.3.7
pep8==1.6.2
snakefood==1.4
Sphinx==1.3.1

# Requirements for OIDC provider
pyaml==15.03.1
cherrypy==3.2.4
Expand Down
49 changes: 0 additions & 49 deletions ga4gh/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
from __future__ import print_function
from __future__ import unicode_literals

import argparse
import operator

import ga4gh
import ga4gh.protocol as protocol

Expand All @@ -20,52 +17,6 @@
AVRO_LONG_MAX = 2**31 - 1


class SortedHelpFormatter(argparse.HelpFormatter):
"""
An argparse HelpFormatter that sorts the flags and subcommands
in alphabetical order
"""
def add_arguments(self, actions):
"""
Sort the flags alphabetically
"""
actions = sorted(
actions, key=operator.attrgetter('option_strings'))
super(SortedHelpFormatter, self).add_arguments(actions)

def _iter_indented_subactions(self, action):
"""
Sort the subcommands alphabetically
"""
try:
get_subactions = action._get_subactions
except AttributeError:
pass
else:
self._indent()
if isinstance(action, argparse._SubParsersAction):
for subaction in sorted(
get_subactions(), key=lambda x: x.dest):
yield subaction
else:
for subaction in get_subactions():
yield subaction
self._dedent()


def addSubparser(subparsers, subcommand, description):
parser = subparsers.add_parser(
subcommand, description=description, help=description)
return parser


def createArgumentParser(description):
parser = argparse.ArgumentParser(
description=description,
formatter_class=SortedHelpFormatter)
return parser


def addVersionArgument(parser):
# TODO argparse strips newlines from version output
versionString = (
Expand Down
60 changes: 31 additions & 29 deletions ga4gh/cli/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import ga4gh.exceptions as exceptions
import ga4gh.protocol as protocol

import ga4gh_common.cli as common_cli


def verbosityToLogLevel(verbosity):
"""
Expand Down Expand Up @@ -1194,7 +1196,7 @@ def addHelpParser(subparsers):


def addVariantsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "variants-search", "Search for variants")
parser.set_defaults(runner=SearchVariantsRunner)
addUrlArgument(parser)
Expand All @@ -1204,7 +1206,7 @@ def addVariantsSearchParser(subparsers):


def addVariantSetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "variantsets-search", "Search for variantSets")
parser.set_defaults(runner=SearchVariantSetsRunner)
addOutputFormatArgument(parser)
Expand Down Expand Up @@ -1240,42 +1242,42 @@ def addVariantAnnotationSetsSearchParser(subparsers):


def addVariantAnnotationSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "variantannotationsets-get", "Get a variantAnnotationSet")
parser.set_defaults(runner=GetVariantAnnotationSetRunner)
addGetArguments(parser)


def addVariantSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "variantsets-get", "Get a variantSet")
parser.set_defaults(runner=GetVariantSetRunner)
addGetArguments(parser)


def addFeaturesGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "features-get", "Get a feature by ID")
parser.set_defaults(runner=GetFeatureRunner)
addGetArguments(parser)


def addFeatureSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "featuresets-get", "Get a featureSet by ID")
parser.set_defaults(runner=GetFeatureSetRunner)
addGetArguments(parser)


def addBioSamplesGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "biosamples-get", "Get a biosample by ID")
parser.set_defaults(runner=GetBioSampleRunner)
addGetArguments(parser)


def addIndividualsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "individuals-get", "Get a individual by ID")
parser.set_defaults(runner=GetIndividualRunner)
addGetArguments(parser)
Expand Down Expand Up @@ -1337,7 +1339,7 @@ def addFeatureSetsSearchParser(subparsers):


def addReferenceSetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "referencesets-search", "Search for referenceSets")
parser.set_defaults(runner=SearchReferenceSetsRunner)
addUrlArgument(parser)
Expand All @@ -1352,7 +1354,7 @@ def addReferenceSetsSearchParser(subparsers):


def addReferencesSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "references-search", "Search for references")
parser.set_defaults(runner=SearchReferencesRunner)
addUrlArgument(parser)
Expand All @@ -1365,7 +1367,7 @@ def addReferencesSearchParser(subparsers):


def addReadGroupSetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "readgroupsets-search", "Search for readGroupSets")
parser.set_defaults(runner=SearchReadGroupSetsRunner)
addUrlArgument(parser)
Expand All @@ -1378,7 +1380,7 @@ def addReadGroupSetsSearchParser(subparsers):


def addCallSetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "callsets-search", "Search for callSets")
parser.set_defaults(runner=SearchCallSetsRunner)
addUrlArgument(parser)
Expand All @@ -1391,7 +1393,7 @@ def addCallSetsSearchParser(subparsers):


def addReadsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "reads-search", "Search for reads")
parser.set_defaults(runner=SearchReadsRunner)
addOutputFormatArgument(parser)
Expand All @@ -1400,14 +1402,14 @@ def addReadsSearchParser(subparsers):


def addDatasetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "datasets-get", "Get a dataset")
parser.set_defaults(runner=GetDatasetRunner)
addGetArguments(parser)


def addDatasetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "datasets-search", "Search for datasets")
parser.set_defaults(runner=SearchDatasetsRunner)
addUrlArgument(parser)
Expand All @@ -1430,71 +1432,71 @@ def addReadsSearchParserArguments(parser):


def addReferenceSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "referencesets-get", "Get a referenceset")
parser.set_defaults(runner=GetReferenceSetRunner)
addGetArguments(parser)


def addReferencesGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "references-get", "Get a reference")
parser.set_defaults(runner=GetReferenceRunner)
addGetArguments(parser)


def addReadGroupSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "readgroupsets-get", "Get a read group set")
parser.set_defaults(runner=GetReadGroupSetRunner)
addGetArguments(parser)


def addReadGroupsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "readgroups-get", "Get a read group")
parser.set_defaults(runner=GetReadGroupRunner)
addGetArguments(parser)


def addCallSetsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "callsets-get", "Get a callSet")
parser.set_defaults(runner=GetCallSetRunner)
addGetArguments(parser)


def addVariantsGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "variants-get", "Get a variant")
parser.set_defaults(runner=GetVariantRunner)
addGetArguments(parser)


def addRnaQuantificationSetGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "rnaquantificationsets-get",
"Get a rna quantification set")
parser.set_defaults(runner=GetRnaQuantificationSetRunner)
addGetArguments(parser)


def addRnaQuantificationGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "rnaquantifications-get", "Get a rna quantification")
parser.set_defaults(runner=GetRnaQuantificationRunner)
addGetArguments(parser)


def addExpressionLevelGetParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "expressionlevels-get", "Get a expression level")
parser.set_defaults(runner=GetExpressionLevelRunner)
addGetArguments(parser)


def addReferencesBasesListParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "references-list-bases", "List bases of a reference")
parser.add_argument(
"--outputFormat", "-O", choices=['text', 'fasta'], default="text",
Expand Down Expand Up @@ -1557,7 +1559,7 @@ def addExpressionLevelsSearchParser(subparsers):


def addGenotypePhenotypeSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "genotypephenotype-search",
"Search for genotype to phenotype associations")
parser.set_defaults(runner=SearchGenotypePhenotypeRunner)
Expand All @@ -1569,7 +1571,7 @@ def addGenotypePhenotypeSearchParser(subparsers):


def addPhenotypeSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "phenotype-search", "Search for phenotypes")
parser.set_defaults(runner=SearchPhenotypeRunner)
addUrlArgument(parser)
Expand All @@ -1580,7 +1582,7 @@ def addPhenotypeSearchParser(subparsers):


def addPhenotypeAssociationSetsSearchParser(subparsers):
parser = cli.addSubparser(
parser = common_cli.addSubparser(
subparsers, "phenotypeassociationsets-search",
"Search for phenotypeassociationsets")
parser.set_defaults(runner=SearchPhenotypeAssociationSetsRunner)
Expand All @@ -1591,7 +1593,7 @@ def addPhenotypeAssociationSetsSearchParser(subparsers):


def getClientParser():
parser = cli.createArgumentParser("GA4GH reference client")
parser = common_cli.createArgumentParser("GA4GH reference client")
addClientGlobalOptions(parser)
subparsers = parser.add_subparsers(title='subcommands',)
addHelpParser(subparsers)
Expand Down
Loading

0 comments on commit 0aa4e00

Please sign in to comment.