Merge pull request #1117 from abuckenheimer/env_dependent_ujson_uvloop

only install ujson and uvloop with cpython on non windows machines
This commit is contained in:
Eli Uriegas 2018-02-20 13:13:21 -06:00 committed by GitHub
commit 0b38dea613
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 16 deletions

View File

@ -7,6 +7,6 @@ httptools
flake8
pytest==3.3.2
tox
ujson
uvloop
ujson; sys_platform != "win32" and implementation_name == "cpython"
uvloop; sys_platform != "win32" and implementation_name == "cpython"
gunicorn

View File

@ -1,5 +1,5 @@
aiofiles
httptools
ujson
uvloop
ujson; sys_platform != "win32" and implementation_name == "cpython"
uvloop; sys_platform != "win32" and implementation_name == "cpython"
websockets

View File

@ -51,8 +51,9 @@ setup_kwargs = {
],
}
ujson = 'ujson>=1.35'
uvloop = 'uvloop>=0.5.3'
env_dependency = '; sys_platform != "win32" and implementation_name == "cpython"'
ujson = 'ujson>=1.35' + env_dependency
uvloop = 'uvloop>=0.5.3' + env_dependency
requirements = [
'httptools>=0.0.9',
@ -66,16 +67,9 @@ if strtobool(os.environ.get("SANIC_NO_UJSON", "no")):
requirements.remove(ujson)
# 'nt' means windows OS
if strtobool(os.environ.get("SANIC_NO_UVLOOP", "no")) or os.name == 'nt':
if strtobool(os.environ.get("SANIC_NO_UVLOOP", "no")):
print("Installing without uvLoop")
requirements.remove(uvloop)
try:
setup_kwargs['install_requires'] = requirements
setup(**setup_kwargs)
except DistutilsPlatformError as exception:
requirements.remove(ujson)
requirements.remove(uvloop)
print("Installing without uJSON or uvLoop")
setup_kwargs['install_requires'] = requirements
setup(**setup_kwargs)
setup_kwargs['install_requires'] = requirements
setup(**setup_kwargs)