1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-21 05:53:15 +00:00

Use environment markers for custom PyPy requirements

This commit is contained in:
Konstantin Lopuhin 2017-06-19 19:16:50 +03:00
parent 5ba8e5adc0
commit b0a9236357
2 changed files with 22 additions and 2 deletions

View File

@ -1,11 +1,31 @@
from os.path import dirname, join
from setuptools import setup, find_packages
from pkg_resources import parse_version
from setuptools import setup, find_packages, __version__ as setuptools_version
with open(join(dirname(__file__), 'scrapy/VERSION'), 'rb') as f:
version = f.read().decode('ascii').strip()
def has_environment_marker_platform_impl_support():
"""Code extracted from 'pytest/setup.py'
https://github.com/pytest-dev/pytest/blob/7538680c/setup.py#L31
The first known release to support environment marker with range operators
it is 18.5, see:
https://setuptools.readthedocs.io/en/latest/history.html#id235
"""
return parse_version(setuptools_version) >= parse_version('18.5')
extras_require = {}
if has_environment_marker_platform_impl_support():
extras_require[':platform_python_implementation == "PyPy"'] = [
'PyPyDispatcher>=2.1.0',
]
setup(
name='Scrapy',
version=version,
@ -53,4 +73,5 @@ setup(
'PyDispatcher>=2.0.5',
'service_identity',
],
extras_require=extras_require,
)

View File

@ -57,7 +57,6 @@ commands =
[testenv:pypy]
basepython = pypy
commands =
pip install PyPyDispatcher>=2.0.6
py.test {posargs:scrapy tests}
[testenv:py33]