Build metadata modernization - pyproject.toml and python_requires (#3167)

* Added pyproject.toml

This adds the build requirements metadata to the repo, which can be used
with any build tools that implement PEP 517 and PEP 518 (e.g. pip, tox).
It is no longer necessary to have the build dependencies installed when
installing from source.

* Add python_requires for 2.7, 3.4+

This directive specifies in the build metadata which version of CPython
is supported by this version of spaCy, which pip will take into account
when determining what version to download. This will allow you to safely
drop old versions of Python without `pip install spaCy` breaking for those
versions.

* Add Python 3.7 to the trove classifiers
This commit is contained in:
Paul Ganssle 2019-01-16 11:42:09 -05:00 committed by Ines Montani
parent 11cee62644
commit 021d04069a
3 changed files with 13 additions and 0 deletions

View File

@ -1,4 +1,5 @@
recursive-include include *.h
include LICENSE
include README.rst
include pyproject.toml
include bin/spacy

10
pyproject.toml Normal file
View File

@ -0,0 +1,10 @@
[build-system]
requires = ["setuptools",
"wheel>0.32.0.<0.33.0",
"Cython",
"cymem>=2.0.2,<2.1.0",
"preshed>=2.0.1,<2.1.0",
"murmurhash>=0.28.0,<1.1.0",
"thinc>=6.12.1,<6.13.0",
]
build-backend = "setuptools.build_meta"

View File

@ -220,6 +220,7 @@ def setup_package():
'cuda100': ['cupy-cuda100>=4.0', 'thinc_gpu_ops>=0.0.3,<0.1.0'],
'ja': ['mecab-python3==0.7']
},
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
@ -236,6 +237,7 @@ def setup_package():
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Topic :: Scientific/Engineering'],
cmdclass = {
'build_ext': build_ext_subclass},