Repository navigation
Expand file tree
/
Copy pathsetup.py
More file actions
73 lines (68 loc) · 3.29 KB
/
Copy pathsetup.py
File metadata and controls
73 lines (68 loc) · 3.29 KB
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
from distutils.core import setup, Extension
#from setuptools import setup, Extension
import setuptools
#from setuptools.command.build_ext import build_ext
class get_pybind_include(object):
"""Helper class to determine the pybind11 include path
The purpose of this class is to postpone importing pybind11
until it is actually installed, so that the ``get_include()``
method can be invoked. """
def __init__(self, user=False):
self.user = user
def __str__(self):
import pybind11
return pybind11.get_include(self.user)
extension_modules = Extension(
'_adaptiveSpreadX',
sources=['_adaptiveSpreadX/src/cpp/configuration/Configuration.cpp',
'_adaptiveSpreadX/src/cpp/configuration/Exception.cpp',
'_adaptiveSpreadX/src/cpp/configuration/Stream.cpp',
'_adaptiveSpreadX/src/cpp/configuration/Helper.cpp',
'_adaptiveSpreadX/src/cpp/utils/Json.cpp',
'_adaptiveSpreadX/src/cpp/utils/Parse.cpp',
'_adaptiveSpreadX/src/cpp/types/Distribution.cpp',
'_adaptiveSpreadX/src/cpp/types/DistributionImpl.cpp',
#contact network
'_adaptiveSpreadX/src/cpp/network/ContactNetwork.cpp',
'_adaptiveSpreadX/src/cpp/network/IndividualFactory.cpp',
'_adaptiveSpreadX/src/cpp/network/Interaction.cpp',
'_adaptiveSpreadX/src/cpp/network/InteractionManager.cpp',
'_adaptiveSpreadX/src/cpp/network/Settings.cpp',
'_adaptiveSpreadX/src/cpp/graph/GraphImpl.cpp',
'_adaptiveSpreadX/src/cpp/types/Propability.cpp', #todo fix the name
'_adaptiveSpreadX/src/cpp/types/State.cpp',
'_adaptiveSpreadX/src/cpp/types/NodeId.cpp',
#algorithm
'_adaptiveSpreadX/src/cpp/algorithm/ActionsFactory.cpp',
'_adaptiveSpreadX/src/cpp/algorithm/Algorithm.cpp',
'_adaptiveSpreadX/src/cpp/algorithm/Settings.cpp',
'_adaptiveSpreadX/src/cpp/algorithm/SSA.cpp',
'_adaptiveSpreadX/src/cpp/algorithm/SSATANX.cpp',
'_adaptiveSpreadX/src/cpp/algorithm/TauLeap.cpp',
'_adaptiveSpreadX/src/cpp/utils/Random.cpp',
#pybind11
'_adaptiveSpreadX/src/cpp/_adaptiveSpreadX.cpp'
],
extra_compile_args=['-std=c++17', '-Wall', '-Wextra', '-pedantic', '-Werror'],
#include_dirs=[f"/Library/Developer/CommandLineTools/usr/include/c++/v1", f"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include", f"_adaptiveSpreadX/src/cpp"],
include_dirs=[get_pybind_include(), get_pybind_include(user=True), f"_adaptiveSpreadX/src/cpp"],
language='c++'
)
setup (name = 'adaptiveSpreadX',
version = '0.1.0',
url = 'https://github.com/nmalysheva/adaptiveSpreadX',
description = 'The adaptiveSpreadX Python Package is a simulation tool designed for modeling and analyzing spreading dynamics on adaptive contact networks.',
packages = setuptools.find_packages(),
ext_modules = [extension_modules],
setup_requires = [
'pybind11>=2.0.0'
],
install_requires = [
'pybind11>=2.0.0',
#'json',
'numpy',
#'warnings'
],
include_package_data = True,
zip_safe = False,
)