-
Notifications
You must be signed in to change notification settings - Fork 37
/
setup.py
73 lines (60 loc) · 2.83 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
73
#!/usr/bin/env python
'''
setup.py file for pyteomics
'''
from setuptools import setup
import re
import os
# from https://packaging.python.org/guides/single-sourcing-package-version/
def read(rel_path):
here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, rel_path), 'r') as fp:
return fp.read()
def get_version(rel_path):
for line in read(rel_path).splitlines():
if line.startswith('__version__'):
delim = '"' if '"' in line else "'"
return line.split(delim)[1]
else:
raise RuntimeError("Unable to find version string.")
with open('README.rst') as r, open('INSTALL') as i:
long_description = re.sub(r':py:\w+:`([^`]+)`',
lambda m: '**{}**'.format(m.group(1)),
''.join(r) + '\n' + ''.join(i))
extras_require = {'XML': ['lxml', 'numpy'],
'TDA': ['numpy'],
'graphics': ['matplotlib'],
'DF': ['pandas>=0.17'],
'Unimod': ['lxml', 'sqlalchemy'],
'numpress': ['pynumpress'],
'mzMLb': ['h5py', 'hdf5plugin'],
'proforma': ['psims > v0.1.42']}
extras_require['all'] = sum(extras_require.values(), ['scikit-learn'])
setup(
name = 'pyteomics',
version = get_version('pyteomics/version.py'),
description = 'A framework for proteomics data analysis.',
long_description = long_description,
author = 'Anton Goloborodko & Lev Levitsky',
author_email = '[email protected]',
url = 'http://pyteomics.readthedocs.io',
packages = ['pyteomics', 'pyteomics.mass', 'pyteomics.openms', 'pyteomics.auxiliary'],
project_urls = {
'Documentation': 'http://pyteomics.readthedocs.io',
'Source Code' : 'https://github.com/levitsky/pyteomics',
'Issue Tracker': 'https://github.com/levitsky/pyteomics/issues',
'Mailing List' : 'https://groups.google.com/group/pyteomics',
},
namespace_packages = ['pyteomics'],
extras_require = extras_require,
classifiers = ['Intended Audience :: Science/Research',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Topic :: Education',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'Topic :: Scientific/Engineering :: Chemistry',
'Topic :: Scientific/Engineering :: Physics',
'Topic :: Software Development :: Libraries'],
license = 'License :: OSI Approved :: Apache Software License',
zip_safe = False,
)