added pip requirement to only install ujson and uvloop with cpython on non windows machines

This commit is contained in:
Alec Buckenheimer 2018-02-06 09:57:16 -05:00
parent 3fe31ff551
commit 82cb182fe7
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 != "windows" and implementation_name == "cpython"
uvloop; sys_platform != "windows" and implementation_name == "cpython"
gunicorn

View File

@ -1,5 +1,5 @@
aiofiles
httptools
ujson
uvloop
ujson; sys_platform != "windows" and implementation_name == "cpython"
uvloop; sys_platform != "windows" 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 != "windows" 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)