diff --git a/MANIFEST.in b/MANIFEST.in index b417b8890fa24..d82e64d0a68b8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,6 +3,7 @@ include LICENSE include RELEASE.md include README.md include setup.py +include pyproject.toml graft doc prune doc/build diff --git a/doc/source/whatsnew/v0.25.0.rst b/doc/source/whatsnew/v0.25.0.rst index dacd433f112a5..66e6281dd5175 100644 --- a/doc/source/whatsnew/v0.25.0.rst +++ b/doc/source/whatsnew/v0.25.0.rst @@ -423,6 +423,7 @@ Reshaping - Bug in :func:`pandas.cut` where large bins could incorrectly raise an error due to an integer overflow (:issue:`26045`) - Bug in :func:`DataFrame.sort_index` where an error is thrown when a multi-indexed DataFrame is sorted on all levels with the initial level sorted last (:issue:`26053`) - Bug in :meth:`Series.nlargest` treats ``True`` as smaller than ``False`` (:issue:`26154`) +- Bug in :func:`factorize` when passing an ``ExtensionArray`` with a custom ``na_sentinel`` (:issue:`25696`). Sparse ^^^^^^ @@ -435,8 +436,8 @@ Sparse Other ^^^^^ +- Specify build-time requirement in ``pyproject.toml`` (:issue:`25193`) - Removed unused C functions from vendored UltraJSON implementation (:issue:`26198`) -- Bug in :func:`factorize` when passing an ``ExtensionArray`` with a custom ``na_sentinel`` (:issue:`25696`). - Allow :class:`Index` and :class:`RangeIndex` to be passed to numpy ``min`` and ``max`` functions. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000000..31d766aa357b8 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,9 @@ +# When changing the version numbers here, also adjust them in `setup.py` +[build-system] +requires = [ + "setuptools", + "wheel", + "Cython >= 0.28.2", # required for VCS build, optional for released source + "numpy==1.13.3; python_version<'3.7'", + "numpy==1.14.5; python_version>='3.7'", +] diff --git a/setup.py b/setup.py index cb9d4ace8161e..17680598567f4 100755 --- a/setup.py +++ b/setup.py @@ -30,14 +30,17 @@ def is_platform_mac(): return sys.platform == 'darwin' -min_numpy_ver = '1.13.3' +# When changing the version numbers here, also adjust them in `pyproject.toml` +numpy_requires = [ + "numpy>=1.13.3; python_version<'3.7'", + "numpy>=1.14; python_version>='3.7'", +] setuptools_kwargs = { 'install_requires': [ 'python-dateutil >= 2.5.0', 'pytz >= 2015.4', - 'numpy >= {numpy_ver}'.format(numpy_ver=min_numpy_ver), - ], - 'setup_requires': ['numpy >= {numpy_ver}'.format(numpy_ver=min_numpy_ver)], + ] + numpy_requires, + 'setup_requires': numpy_requires, 'zip_safe': False, }