forked from UDST/pandana
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
120 lines (105 loc) · 3.1 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
import os
import sys
from ez_setup import use_setuptools
use_setuptools()
from setuptools import setup, Extension, find_packages
from setuptools.command.test import test as TestCommand
import numpy as np
class PyTest(TestCommand):
user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")]
def initialize_options(self):
TestCommand.initialize_options(self)
self.pytest_args = None
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_args = []
self.test_suite = True
def run_tests(self):
# import here, cause outside the eggs aren't loaded
import pytest
errno = pytest.main(self.pytest_args or '')
sys.exit(errno)
include_dirs = [
np.get_include(),
'.',
'src/ann_1.1.2/include'
]
packages = find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"])
source_files = [
'src/accessibility.cpp',
'src/graphalg.cpp',
'src/nearestneighbor.cpp',
'src/pyaccesswrap.cpp',
'src/contraction_hierarchies/src/libch.cpp',
'src/ann_1.1.2/src/ANN.cpp',
'src/ann_1.1.2/src/brute.cpp',
'src/ann_1.1.2/src/kd_tree.cpp',
'src/ann_1.1.2/src/kd_util.cpp',
'src/ann_1.1.2/src/kd_split.cpp',
'src/ann_1.1.2/src/kd_dump.cpp',
'src/ann_1.1.2/src/kd_search.cpp',
'src/ann_1.1.2/src/kd_pr_search.cpp',
'src/ann_1.1.2/src/kd_fix_rad_search.cpp',
'src/ann_1.1.2/src/bd_tree.cpp',
'src/ann_1.1.2/src/bd_search.cpp',
'src/ann_1.1.2/src/bd_pr_search.cpp',
'src/ann_1.1.2/src/bd_fix_rad_search.cpp',
'src/ann_1.1.2/src/perf.cpp'
]
extra_compile_args = [
'-DMACOSX',
'-DLINUX',
'-w',
'-std=c++0x',
'-O3',
'-fpic',
'-g',
'-static',
]
extra_link_args = None
# separate compiler options for Windows
if sys.platform.startswith('win'):
extra_compile_args = ['/w', '/openmp']
# Use OpenMP if directed or not on a Mac
elif os.environ.get('USEOPENMP') or not sys.platform.startswith('darwin'):
extra_compile_args += ['-fopenmp']
extra_link_args = [
'-lgomp'
]
version = '0.2dev'
# read long description from README
with open('README.rst', 'r') as f:
long_description = f.read()
setup(
packages=packages,
name='pandana',
version=version,
license='AGPL',
description=('Pandas Network Analysis - '
'dataframes of network queries, quickly'),
long_description=long_description,
url='http://synthicity.github.io/pandana/',
ext_modules=[
Extension(
'pandana._pyaccess',
source_files,
include_dirs=include_dirs,
extra_compile_args=extra_compile_args,
extra_link_args=extra_link_args
)
],
install_requires=[
'brewer2mpl>=1.4',
'matplotlib>=1.3.1',
'numpy>=1.8.0',
'pandas>=0.13.1',
'tables>=3.1.0'
],
tests_require=['pytest'],
cmdclass={'test': PyTest},
classifiers=[
'Development Status :: 3 - Alpha',
'Programming Language :: Python :: 2.7',
'License :: OSI Approved :: GNU Affero General Public License v3'
],
)