-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
95 lines (80 loc) · 2.58 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
#! /usr/bin/env python
#################################################################################
# File Name : setup.py
# Created By : yuewu
# Description :
#################################################################################
try:
from setuptools import setup, Extension
except ImportError:
from distutils.core import setup, Extension
from Cython.Build import cythonize
import sys
import os
try:
from pypandoc import convert
def read_md(fpath):
return convert(fpath, 'rst')
except ImportError:
print("warning: pypandoc module not found, DONOT convert Markdown to RST")
def read_md(fpath):
with open(fpath, 'r') as fp:
return fp.read()
sys.path.append("python")
def get_source_files(root_dir):
src_files = []
for pathname in os.listdir(root_dir):
path = os.path.join(root_dir, pathname)
if os.path.isfile(path):
ext = os.path.splitext(path)[1]
if ext in ['.cc', '.cpp', '.c']:
src_files.append(path)
elif os.path.isdir(path):
src_files = src_files + get_source_files(path)
return src_files
def get_include_dirs():
import numpy as np
return [np.get_include(), "include", "external"]
if os.name == 'nt':
extra_flags = ['/wd4251','/wd4275', '/EHsc','-DSOL_EMBED_PACKAGE']
dependencies = []
else:
extra_flags = ['-std=c++11','-pthread']
dependencies = [
"numpy >= 1.7.0",
"scipy >= 0.13.0",
"scikit-learn >= 0.18.1",
"matplotlib >= 1.5.1"
]
ext_modules = [
Extension(
"pysol",
sources=["python/pysol.pyx"] + get_source_files('src/sol') +
get_source_files('external/json'),
language='c++',
include_dirs=get_include_dirs(),
extra_compile_args=['-DHAS_NUMPY_DEV', '-DUSE_STD_THREAD'] + extra_flags)
]
setup(
name='sol',
version='1.1.0',
description='Library for Scalable Online Learning',
#long_description=read_md('README.md'),
author='Yue Wu, Steven C.H. Hoi',
author_email='[email protected]',
maintainer='Yue Wu',
maintainer_email='[email protected]',
url='http://sol.stevenhoi.org',
license='Apache 2.0',
keywords='Scalable Online Learning',
packages=['sol'],
package_dir={'sol': 'python'},
entry_points = {
'console_scripts':[
'sol_train=sol.sol_train:main',
'sol_test=sol.sol_test:main',
],
},
ext_modules=cythonize(ext_modules),
install_requires=dependencies
)