diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4faef68 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[build-system] +requires = ["cython", "numpy", "setuptools", "wheel"] diff --git a/setup.py b/setup.py index ccf4868..e681bfe 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,32 @@ -from distutils.core import setup -from distutils.extension import Extension -from Cython.Distutils import build_ext -import numpy -from Cython.Build import cythonize +import subprocess +import sys -setup( - name='choldate', - version='0.1.0', - packages=['choldate','choldate.test'], - cmdclass = {'build_ext': build_ext}, - ext_modules = cythonize([Extension("choldate._choldate", ["choldate/_choldate.pyx"],include_dirs = [numpy.get_include()]) - ]), requires=['numpy','cython'] +import setuptools # type: ignore +from setuptools import Extension, setup + +try: + from numpy import __version__ as numpy_version + from numpy import get_include +except ImportError: + subprocess.check_call([sys.executable, "-m", "pip", "install", "numpy"]) + from numpy import __version__ as numpy_version + from numpy import get_include + +try: + from Cython.Build import cythonize +except ImportError: + subprocess.check_call([sys.executable, "-m", "pip", "install", "Cython"]) + from Cython.Build import cythonize # type: ignore + +ext_modules = cythonize([Extension("choldate._choldate", ["choldate/_choldate.pyx"], include_dirs=[get_include()])]) + +setup( + name="choldate", + version="0.1.0", + packages=setuptools.find_packages(), + include_package_data=True, + ext_modules=ext_modules, + install_requires=(base_packages := [f"numpy>={numpy_version}"]), + zip_safe=False, )