forked from quantling/pyndl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
70 lines (61 loc) · 1.68 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
from setuptools import setup, Extension
# While setup, this file will be called twice:
# One time, to read the dependencies,
# and after their installation.
try:
from Cython.Distutils import build_ext
import numpy
except ImportError as e:
use_deps = False
else:
use_deps = True
pkg = __import__('pyndl')
author = pkg.__author__
email = pkg.__author_email__
version = pkg.__version__
classifiers = pkg.__classifiers__
description = pkg.__description__
def load_requirements(fn):
"""Read a requirements file and create a list that can be used in setup."""
with open(fn, 'r') as f:
return [x.rstrip() for x in list(f) if x and not x.startswith('#')]
if use_deps:
ext_modules = [
Extension(
"pyndl.ndl_parallel",
["pyndl/ndl_parallel.pyx"],
extra_compile_args=['-fopenmp'],
extra_link_args=['-fopenmp'],
include_dirs=[numpy.get_include()]
)
]
cmdclass = {'build_ext': build_ext}
else:
ext_modules = []
cmdclass = {}
setup(
name='pyndl',
version=version,
license='MIT',
description=description,
long_description=open('README.rst').read(),
author=author,
author_email=email,
url='https://github.com/quantling/pyndl',
classifiers=classifiers,
platforms='Linux',
packages=['pyndl'],
install_requires=load_requirements('requirements.txt'),
extras_require={
'tests': [
'pylint',
'pytest',
'pycodestyle'],
'docs': [
'sphinx >= 1.4',
'sphinx_rtd_theme',
'numpydoc',
'easydev==0.9.35']},
ext_modules=ext_modules,
cmdclass=cmdclass
)