Skip to content

Commit b0a9236

Browse files
committed
Use environment markers for custom PyPy requirements
1 parent 5ba8e5a commit b0a9236

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

setup.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
11
from os.path import dirname, join
2-
from setuptools import setup, find_packages
2+
from pkg_resources import parse_version
3+
from setuptools import setup, find_packages, __version__ as setuptools_version
34

45

56
with open(join(dirname(__file__), 'scrapy/VERSION'), 'rb') as f:
67
version = f.read().decode('ascii').strip()
78

89

10+
def has_environment_marker_platform_impl_support():
11+
"""Code extracted from 'pytest/setup.py'
12+
https://github.com/pytest-dev/pytest/blob/7538680c/setup.py#L31
13+
14+
The first known release to support environment marker with range operators
15+
it is 18.5, see:
16+
https://setuptools.readthedocs.io/en/latest/history.html#id235
17+
"""
18+
return parse_version(setuptools_version) >= parse_version('18.5')
19+
20+
21+
extras_require = {}
22+
23+
if has_environment_marker_platform_impl_support():
24+
extras_require[':platform_python_implementation == "PyPy"'] = [
25+
'PyPyDispatcher>=2.1.0',
26+
]
27+
28+
929
setup(
1030
name='Scrapy',
1131
version=version,
@@ -53,4 +73,5 @@
5373
'PyDispatcher>=2.0.5',
5474
'service_identity',
5575
],
76+
extras_require=extras_require,
5677
)

tox.ini

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ commands =
5757
[testenv:pypy]
5858
basepython = pypy
5959
commands =
60-
pip install PyPyDispatcher>=2.0.6
6160
py.test {posargs:scrapy tests}
6261

6362
[testenv:py33]

0 commit comments

Comments
 (0)