forked from biocore/biom-format
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
126 lines (112 loc) · 4.22 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env python
# ----------------------------------------------------------------------------
# Copyright (c) 2011-2020, The BIOM Format Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
# ----------------------------------------------------------------------------
import sys
from setuptools import setup, find_packages
from setuptools.extension import Extension
import numpy as np
from Cython.Build import cythonize
# Hack to prevent stupid "TypeError: 'NoneType' object is not callable" error
# in multiprocessing/util.py _exit_function when running `python
# setup.py test` (see
# http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html),
# borrowed from https://github.com/getsentry/sentry/blob/master/setup.py
for m in ('multiprocessing', 'logging'):
try:
__import__(m)
except ImportError:
pass
__author__ = "Daniel McDonald"
__copyright__ = "Copyright 2011-2020, The BIOM Format Development Team"
__credits__ = ["Greg Caporaso", "Daniel McDonald", "Jose Clemente",
"Jai Ram Rideout", "Jorge Cañardo Alastuey", "Michael Hall"]
__license__ = "BSD"
__version__ = "2.1.16-dev"
__maintainer__ = "Daniel McDonald"
__email__ = "[email protected]"
long_description = """BIOM: Biological Observation Matrix
http://www.biom-format.org
The Biological Observation Matrix (BIOM) format or: how I learned to stop
worrying and love the ome-ome
Daniel McDonald, Jose C Clemente, Justin Kuczynski, Jai Ram Rideout,
Jesse Stombaugh, Doug Wendel, Andreas Wilke, Susan Huse, John Hufnagle,
Folker Meyer, Rob Knight, J Gregory Caporaso
GigaScience 2012, 1:7.
"""
classes = """
Development Status :: 4 - Beta
License :: OSI Approved :: BSD License
Topic :: Scientific/Engineering :: Bio-Informatics
Topic :: Software Development :: Libraries :: Application Frameworks
Topic :: Software Development :: Libraries :: Python Modules
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: Implementation :: CPython
Operating System :: OS Independent
Operating System :: POSIX :: Linux
Operating System :: MacOS :: MacOS X
Operating System :: Microsoft :: Windows
"""
classifiers = [s.strip() for s in classes.split('\n') if s]
# Dealing with Cython
ext = '.pyx'
extensions = [Extension("biom._filter",
["biom/_filter" + ext],
include_dirs=[np.get_include()]),
Extension("biom._transform",
["biom/_transform" + ext],
include_dirs=[np.get_include()]),
Extension("biom._subsample",
["biom/_subsample" + ext],
include_dirs=[np.get_include()])]
extensions = cythonize(extensions)
install_requires = [
"click",
"numpy >= 1.9.2",
"scipy >= 1.3.1",
'pandas >= 0.20.0',
"h5py",
]
if sys.version_info[0] < 3:
raise SystemExit("Python 2.7 is no longer supported")
setup(name='biom-format',
version=__version__,
description='Biological Observation Matrix (BIOM) format',
long_description=long_description,
license=__license__,
author=__maintainer__,
author_email=__email__,
maintainer=__maintainer__,
maintainer_email=__email__,
url='http://www.biom-format.org',
packages=find_packages(),
tests_require=[
'pytest>=6.2.4',
'pytest-cov',
'flake8',
],
include_package_data=True,
ext_modules=extensions,
include_dirs=[np.get_include()],
install_requires=install_requires,
extras_require={'hdf5': ["h5py >= 2.2.0"],
'anndata': ["anndata"],
},
classifiers=classifiers,
entry_points='''
[console_scripts]
biom=biom.cli:cli
''')