setup.py
521fd775
 #!/usr/bin/env python3
374e51e2
 
11a29d25
 import os
94a7301b
 import sys
374e51e2
 
176c745c
 from setuptools import find_packages, setup
374e51e2
 
bffa7dc4
 if sys.version_info < (3, 6):
716dbce8
     print("adaptive requires Python 3.6 or above.")
bffa7dc4
     sys.exit(1)
 
28e733fc
 
3a69cd99
 # Loads _version.py module without importing the whole package.
273e1596
 def get_version_and_cmdclass(package_name):
     import os
94a7301b
     from importlib.util import module_from_spec, spec_from_file_location
716dbce8
 
     spec = spec_from_file_location("version", os.path.join(package_name, "_version.py"))
c9035236
     module = module_from_spec(spec)
     spec.loader.exec_module(module)
3a69cd99
     return module.__version__, module.cmdclass
c9035236
 
28e733fc
 
716dbce8
 version, cmdclass = get_version_and_cmdclass("adaptive")
273e1596
 
28e733fc
 
66404722
 install_requires = [
     "scipy",
     "sortedcollections >= 1.1",
     "sortedcontainers >= 2.0",
     "atomicwrites",
 ]
a6826e65
 
f0b0854b
 extras_require = {
716dbce8
     "notebook": [
         "ipython",
         "ipykernel>=4.8.0",  # because https://github.com/ipython/ipykernel/issues/274 and https://github.com/ipython/ipykernel/issues/263
         "jupyter_client>=5.2.2",  # because https://github.com/jupyter/jupyter_client/pull/314
         "holoviews>=1.9.1",
         "ipywidgets",
         "bokeh",
         "matplotlib",
         "plotly",
5ee044e8
     ],
     "testing": [
b3e4ca3d
         "flaky",
5ee044e8
         "pytest",
         "pytest-cov",
         "pytest-randomly",
         "pytest-timeout",
         "pre_commit",
     ],
11a29d25
     "other": [
d6172e0c
         "cloudpickle",
         "dill",
11a29d25
         "distributed",
58315928
         "ipyparallel>=6.2.5",  # because of https://github.com/ipython/ipyparallel/issues/404
df1b2fd3
         "loky",
c8895ed2
         "scikit-optimize>=0.8.1",  # because of https://github.com/scikit-optimize/scikit-optimize/issues/931
11a29d25
         "wexpect" if os.name == "nt" else "pexpect",
     ],
bffa7dc4
 }
374e51e2
 
 setup(
716dbce8
     name="adaptive",
6a26d8bc
     description="Parallel active learning of mathematical functions",
a25468a6
     version=version,
716dbce8
     python_requires=">=3.6",
     url="https://adaptive.readthedocs.io/",
     author="Adaptive authors",
     license="BSD",
374e51e2
     classifiers=[
716dbce8
         "Development Status :: 4 - Beta",
         "License :: OSI Approved :: BSD License",
         "Intended Audience :: Science/Research",
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
cd3d69ea
         "Programming Language :: Python :: 3.8",
374e51e2
     ],
716dbce8
     packages=find_packages("."),
9254ad5c
     install_requires=install_requires,
     extras_require=extras_require,
94a7301b
     cmdclass=cmdclass,
374e51e2
 )