forked from the-virtual-brain/tvb-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
97 lines (82 loc) · 3.56 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
# -*- coding: utf-8 -*-
#
#
# TheVirtualBrain-Scientific Package. This package holds all simulators, and
# analysers necessary to run brain-simulations. You can use it stand alone or
# in conjunction with TheVirtualBrain-Framework Package. See content of the
# documentation-folder for more details. See also http://www.thevirtualbrain.org
#
# (c) 2012-2013, Baycrest Centre for Geriatric Care ("Baycrest")
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License version 2 as published by the Free
# Software Foundation. This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details. You should have received a copy of the GNU General
# Public License along with this program; if not, you can download it here
# http://www.gnu.org/licenses/old-licenses/gpl-2.0
#
#
# CITATION:
# When using The Virtual Brain for scientific publications, please cite it as follows:
#
# Paula Sanz Leon, Stuart A. Knock, M. Marmaduke Woodman, Lia Domide,
# Jochen Mersmann, Anthony R. McIntosh, Viktor Jirsa (2013)
# The Virtual Brain: a simulator of primate brain network dynamics.
# Frontiers in Neuroinformatics (7:10. doi: 10.3389/fninf.2013.00010)
#
#
"""
Mark TVB-Simulator-Library as a Python import.
Mention dependencies for this package.
"""
import os
import shutil
import setuptools
from setuptools import Extension
try:
import numpy
from Cython.Distutils import build_ext
except ImportError:
# It is not easy to make setuptools install them before attempting to install the c extensions
raise ImportError("Please install numpy and Cython before TVB library. "
"We depend on them to compile Cython extensions.")
LIBRARY_VERSION = "1.5.1"
TVB_TEAM = "Stuart Knock, Marmaduke Woodman, Paula Sanz Leon, Jan Fousek, Lia Domide, Noelia Montejo, " \
"Bogdan Neacsa, Laurent Pezard, Jochen Mersmann, Anthony R McIntosh, Viktor Jirsa"
TVB_INSTALL_REQUIREMENTS = ["networkx", "nibabel", "numpy", "numba", "numexpr", "scikit-learn", "scipy", "gdist"]
cython_ext = [
Extension("tvb._speedups.history", ["tvb/_speedups/history.pyx"], include_dirs=[numpy.get_include()])
]
setuptools.setup(
name='tvb',
description='A package for performing whole brain simulations',
url='https://github.com/the-virtual-brain/scientific_library',
version=LIBRARY_VERSION,
packages=setuptools.find_packages(),
ext_modules=cython_ext,
cmdclass={"build_ext": build_ext},
license='GPL',
author=TVB_TEAM,
author_email='[email protected]',
include_package_data=True,
install_requires=TVB_INSTALL_REQUIREMENTS,
setup_requires=['cython', 'numpy'],
long_description="""
This package contains the scientific library from the Virtual Brain
project which provides data handling and numerical routines
required to perform whole brain simulation. It is a work in
progress, and a subject of on-going research efforts. Please refer
to the following article for more information:
http://www.frontiersin.org/Journal/10.3389/fninf.2013.00010/abstract
"""
)
## Cleanup after EGG install. These are created by running setup.py in the source tree
shutil.rmtree('tvb.egg-info', True)
# clean up after extension build
shutil.rmtree('build', True)
SPEEDUPS_DIR = os.path.join('tvb', '_speedups')
for f in os.listdir(SPEEDUPS_DIR):
if f.endswith('.c'):
os.remove(os.path.join(SPEEDUPS_DIR, f))