-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
72 lines (59 loc) · 2.44 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
__author__ = "Johannes Köster"
__copyright__ = "Copyright 2015, Johannes Köster"
__email__ = "koester@jimmy.harvard.edu"
__license__ = "MIT"
from setuptools.command.test import test as TestCommand
import sys
if sys.version_info < (3, 3):
print("At least Python 3.3 is required.\n", file=sys.stderr)
exit(1)
try:
from setuptools import setup
except ImportError:
print("Please install setuptools before installing snakemake.",
file=sys.stderr)
exit(1)
# load version info
exec(open("snakemake/version.py").read())
class NoseTestCommand(TestCommand):
user_options = [
('test-suite=', 's', "Test to run (e.g. test_shadow)")
]
def run_tests(self):
# Run nose ensuring that argv simulates running nosetests directly
argv = ['nosetests']
if self.test_suite != 'all':
argv.append('tests/tests.py:' + self.test_suite)
import nose
nose.run_exit(argv=argv)
setup(
name='snakemake',
version=__version__,
author='Johannes Köster',
author_email='johannes.koester@tu-dortmund.de',
description=
'Snakemake is a workflow management system that aims to reduce the complexity '
'of creating workflows by providing a fast and comfortable execution environment, '
'together with a clean and modern specification language in python style. '
'Snakemake workflows are essentially Python scripts extended by declarative '
'code to define rules. Rules describe how to create output files from input files.',
zip_safe=False,
license='MIT',
url='http://snakemake.bitbucket.org',
packages=['snakemake', 'snakemake.remote'],
entry_points={
"console_scripts":
["snakemake = snakemake:main",
"snakemake-bash-completion = snakemake:bash_completion"]
},
package_data={'': ['*.css', '*.sh', '*.html']},
tests_require=['pytools', 'rpy2', 'httpretty==0.8.10', 'docutils', 'nose>=1.3', 'boto>=2.38.0', 'filechunkio>=1.6',
'moto>=0.4.14', 'ftputil>=3.2', 'pysftp>=0.2.8', 'requests>=2.8.1', 'dropbox>=5.2', 'pyyaml'],
test_suite='all',
cmdclass={'test': NoseTestCommand},
classifiers=
["Development Status :: 5 - Production/Stable", "Environment :: Console",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License", "Natural Language :: English",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Bio-Informatics"])