-
Notifications
You must be signed in to change notification settings - Fork 22
/
setup.py
148 lines (136 loc) · 4.35 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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/usr/bin/env python
# Automatically generated by nengo-bones, do not edit this file directly
import io
import pathlib
import runpy
try:
from setuptools import find_packages, setup
except ImportError:
raise ImportError(
"'setuptools' is required but not installed. To install it, "
"follow the instructions at "
"https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py"
)
def read(*filenames, **kwargs):
encoding = kwargs.get("encoding", "utf-8")
sep = kwargs.get("sep", "\n")
buf = []
for filename in filenames:
with io.open(filename, encoding=encoding) as f:
buf.append(f.read())
return sep.join(buf)
root = pathlib.Path(__file__).parent
version = runpy.run_path(str(root / "nengo_dl" / "version.py"))["version"]
import sys
import pkg_resources
# determine which tensorflow package to require
if "bdist_wheel" in sys.argv:
# when building wheels we have to pick a requirement ahead of time (can't
# check it at install time). so we'll go with tensorflow, since
# that is the safest option
tf_req = "tensorflow"
else:
# check if one of the tensorflow packages is already installed (so that we
# don't force tensorflow to be installed if e.g. tensorflow-gpu is already
# there).
# as of pep517 and pip>=10.0, pip will be running this file inside an isolated
# environment, so we can't just look up the tensorflow version in the current
# environment. but the pip package will be in the isolated sys.path, so we can use
# that to look up the site-packages directory of the original environment.
target_path = str(pathlib.Path("site-packages", "pip"))
for path in sys.path:
if target_path in path:
source_path = [path[: path.index("pip")]]
break
else:
# fallback if we're not in an isolated environment (i.e. pip<10.0)
source_path = sys.path
installed_dists = [d.project_name for d in pkg_resources.WorkingSet(source_path)]
for d in [
"tf-nightly-gpu",
"tf-nightly",
"tf-nightly-cpu",
"tensorflow-gpu",
"tensorflow-cpu",
"tensorflow-macos",
]:
if d in installed_dists:
tf_req = d
break
else:
tf_req = "tensorflow"
install_req = [
"nengo>=3.0.0",
"numpy>=1.16.0",
"{}>=2.3.4".format(tf_req),
"{}<2.11.0rc0; sys_platform == 'win32'".format(tf_req),
"jinja2>=2.10.1",
"packaging>=20.0",
"progressbar2>=3.39.0",
]
docs_req = [
"click>=6.7",
"jupyter>=1.0.0",
"matplotlib>=2.0.0",
"nbsphinx>=0.3.5",
"nengo-sphinx-theme>=1.2.1",
"numpydoc>=0.6.0",
"Pillow>=4.1.1",
"sphinx>=3.0.0",
"sphinx-click>=1.4.1",
]
optional_req = [
"keras-spiking>=0.3.0",
]
tests_req = [
"click>=6.7",
"matplotlib>=2.0.0",
"nbval>=0.6.0",
"pytest>=3.6.0",
"pytest-allclose>=1.0.0",
"pytest-cov>=2.6.0",
"pytest-rng>=1.0.0",
"pytest-xdist>=1.16.0",
"six>=1.11.0",
]
setup(
name="nengo-dl",
version=version,
author="Applied Brain Research",
author_email="[email protected]",
packages=find_packages(),
url="https://www.nengo.ai/nengo-dl",
include_package_data=True,
license="Free for non-commercial use",
description="Deep learning integration for Nengo",
long_description=read("README.rst", "CHANGES.rst"),
zip_safe=False,
install_requires=install_req,
extras_require={
"all": docs_req + optional_req + tests_req,
"docs": docs_req,
"optional": optional_req,
"tests": tests_req,
},
python_requires=">=3.7",
entry_points={
"nengo.backends": [
"dl = nengo_dl:Simulator",
],
},
classifiers=[
"Development Status :: 5 - Production/Stable",
"Framework :: Nengo",
"Intended Audience :: Science/Research",
"License :: Free for non-commercial use",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
],
)