forked from jnhansen/nd
/
setup.py
93 lines (79 loc) · 2.46 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
from setuptools import setup, Extension
import subprocess
import os
try:
import numpy
except (ImportError, ModuleNotFoundError):
raise ImportError('This package requires "numpy" to be installed. '
'Install it first: "pip install numpy".')
try:
import cython_gsl
except (ImportError, ModuleNotFoundError):
raise ImportError('This package requires "cythongsl" to be installed. '
'Install it first: "pip install cythongsl".')
mock_install = os.environ.get('READTHEDOCS') == 'True'
try:
from Cython.Distutils import build_ext
from Cython.Build import cythonize
except ImportError:
use_cython = False
else:
use_cython = True
ext = '.pyx' if use_cython else '.c'
# from Cython.Compiler.Options import get_directive_defaults
# directive_defaults = get_directive_defaults()
# directive_defaults['linetrace'] = True
# directive_defaults['binding'] = True
omnibus_libraries = []
omnibus_library_dirs = []
omnibus_include_dirs = ['.']
if use_cython:
omnibus_libraries.extend(cython_gsl.get_libraries())
omnibus_library_dirs.append(cython_gsl.get_library_dir())
omnibus_include_dirs.append(cython_gsl.get_cython_include_dir())
cmdclass = {}
extensions = [
Extension("nd.change._omnibus", ["nd/change/_omnibus" + ext],
libraries=omnibus_libraries,
library_dirs=omnibus_library_dirs,
include_dirs=omnibus_include_dirs,
extra_compile_args=['-O3', '-fopenmp'],
extra_link_args=['-fopenmp'],
),
Extension("nd.filters._nlmeans", ["nd/filters/_nlmeans" + ext],
extra_compile_args=['-O3', '-fopenmp'],
extra_link_args=['-fopenmp'],
),
Extension("nd.warp._warp", ["nd/warp/_warp" + ext]),
]
if use_cython:
extensions = cythonize(extensions)
cmdclass = {'build_ext': build_ext}
include_dirs = []
install_requires = []
if not mock_install:
install_requires.extend([
"numpy",
"scipy",
"xarray",
"dask[dataframe]",
"lxml",
"rasterio",
"pandas",
"python-dateutil",
"matplotlib",
"affine",
"opencv-python",
# "NetCDF4"
"h5py",
"h5netcdf",
"imageio"
])
include_dirs.append(numpy.get_include())
include_dirs.append(cython_gsl.get_include())
setup(
cmdclass=cmdclass,
ext_modules=extensions,
include_dirs=include_dirs,
install_requires=install_requires
)