Merge pull request #602 from jkbbwr/fix/env-install
Flake8 cleanup. Setup environmental variables.
This commit is contained in:
		| @@ -59,6 +59,13 @@ Installation | |||||||
|  |  | ||||||
| -  ``python -m pip install sanic`` | -  ``python -m pip install sanic`` | ||||||
|  |  | ||||||
|  | To install sanic without uvloop or json using bash, you can provide either or both of these environmental variables | ||||||
|  | using any truthy string like `'y', 'yes', 't', 'true', 'on', '1'` and setting the NO_X to true will stop that features | ||||||
|  | installation. | ||||||
|  |  | ||||||
|  | - ``SANIC_NO_UVLOOP=true SANIC_NO_UJSON=true python -m pip install sanic`` | ||||||
|  |  | ||||||
|  |  | ||||||
| Documentation | Documentation | ||||||
| ------------- | ------------- | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import os | import os | ||||||
|  |  | ||||||
| import types | import types | ||||||
|  |  | ||||||
| SANIC_PREFIX = 'SANIC_' | SANIC_PREFIX = 'SANIC_' | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| from mimetypes import guess_type | from mimetypes import guess_type | ||||||
| from os import path | from os import path | ||||||
|  |  | ||||||
| try: | try: | ||||||
|     from ujson import dumps as json_dumps |     from ujson import dumps as json_dumps | ||||||
| except: | except: | ||||||
| @@ -167,12 +168,12 @@ class StreamingHTTPResponse(BaseHTTPResponse): | |||||||
|         return (b'HTTP/%b %d %b\r\n' |         return (b'HTTP/%b %d %b\r\n' | ||||||
|                 b'%b' |                 b'%b' | ||||||
|                 b'%b\r\n') % ( |                 b'%b\r\n') % ( | ||||||
|             version.encode(), |                    version.encode(), | ||||||
|             self.status, |                    self.status, | ||||||
|             status, |                    status, | ||||||
|             timeout_header, |                    timeout_header, | ||||||
|             headers |                    headers | ||||||
|         ) |                ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class HTTPResponse(BaseHTTPResponse): | class HTTPResponse(BaseHTTPResponse): | ||||||
| @@ -216,14 +217,14 @@ class HTTPResponse(BaseHTTPResponse): | |||||||
|                 b'%b' |                 b'%b' | ||||||
|                 b'%b\r\n' |                 b'%b\r\n' | ||||||
|                 b'%b') % ( |                 b'%b') % ( | ||||||
|             version.encode(), |                    version.encode(), | ||||||
|             self.status, |                    self.status, | ||||||
|             status, |                    status, | ||||||
|             b'keep-alive' if keep_alive else b'close', |                    b'keep-alive' if keep_alive else b'close', | ||||||
|             timeout_header, |                    timeout_header, | ||||||
|             headers, |                    headers, | ||||||
|             self.body |                    self.body | ||||||
|         ) |                ) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def cookies(self): |     def cookies(self): | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								setup.py
									
									
									
									
									
								
							| @@ -4,8 +4,10 @@ Sanic | |||||||
| import codecs | import codecs | ||||||
| import os | import os | ||||||
| import re | import re | ||||||
| from setuptools import setup | from distutils.errors import DistutilsPlatformError | ||||||
|  | from distutils.util import strtobool | ||||||
|  |  | ||||||
|  | from setuptools import setup | ||||||
|  |  | ||||||
| with codecs.open(os.path.join(os.path.abspath(os.path.dirname( | with codecs.open(os.path.join(os.path.abspath(os.path.dirname( | ||||||
|         __file__)), 'sanic', '__init__.py'), 'r', 'latin1') as fp: |         __file__)), 'sanic', '__init__.py'), 'r', 'latin1') as fp: | ||||||
| @@ -15,7 +17,7 @@ with codecs.open(os.path.join(os.path.abspath(os.path.dirname( | |||||||
|     except IndexError: |     except IndexError: | ||||||
|         raise RuntimeError('Unable to determine version.') |         raise RuntimeError('Unable to determine version.') | ||||||
|  |  | ||||||
| setup_kwargs =  { | setup_kwargs = { | ||||||
|     'name': 'sanic', |     'name': 'sanic', | ||||||
|     'version': version, |     'version': version, | ||||||
|     'url': 'http://github.com/channelcat/sanic/', |     'url': 'http://github.com/channelcat/sanic/', | ||||||
| @@ -35,23 +37,32 @@ setup_kwargs =  { | |||||||
|     ], |     ], | ||||||
| } | } | ||||||
|  |  | ||||||
|  | ujson = 'ujson>=1.35' | ||||||
|  | uvloop = 'uvloop>=0.5.3' | ||||||
|  |  | ||||||
|  | requirements = [ | ||||||
|  |     'httptools>=0.0.9', | ||||||
|  |     uvloop, | ||||||
|  |     ujson, | ||||||
|  |     'aiofiles>=0.3.0', | ||||||
|  |     'websockets>=3.2', | ||||||
|  | ] | ||||||
|  | if strtobool(os.environ.get("SANIC_NO_UJSON", "no")): | ||||||
|  |     print("Installing without uJSON") | ||||||
|  |     requirements.remove(ujson) | ||||||
|  |  | ||||||
|  | if strtobool(os.environ.get("SANIC_NO_UVLOOP", "no")): | ||||||
|  |     print("Installing without uvLoop") | ||||||
|  |     requirements.remove(uvloop) | ||||||
|  |  | ||||||
| try: | try: | ||||||
|     normal_requirements = [ |     setup_kwargs['install_requires'] = requirements | ||||||
|         'httptools>=0.0.9', |  | ||||||
|         'uvloop>=0.5.3', |  | ||||||
|         'ujson>=1.35', |  | ||||||
|         'aiofiles>=0.3.0', |  | ||||||
|         'websockets>=3.2', |  | ||||||
|     ] |  | ||||||
|     setup_kwargs['install_requires'] = normal_requirements |  | ||||||
|     setup(**setup_kwargs) |     setup(**setup_kwargs) | ||||||
| except DistutilsPlatformError as exception: | except DistutilsPlatformError as exception: | ||||||
|     windows_requirements = [ |     requirements.remove(ujson) | ||||||
|         'httptools>=0.0.9', |     requirements.remove(uvloop) | ||||||
|         'aiofiles>=0.3.0', |     print("Installing without uJSON or uvLoop") | ||||||
|         'websockets>=3.2', |     setup_kwargs['install_requires'] = requirements | ||||||
|     ] |  | ||||||
|     setup_kwargs['install_requires'] = windows_requirements |  | ||||||
|     setup(**setup_kwargs) |     setup(**setup_kwargs) | ||||||
|  |  | ||||||
| # Installation was successful | # Installation was successful | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| from sanic import Sanic | from sanic import Sanic | ||||||
| from sanic.response import text |  | ||||||
| from sanic.exceptions import PayloadTooLarge | from sanic.exceptions import PayloadTooLarge | ||||||
|  | from sanic.response import text | ||||||
|  |  | ||||||
|  |  | ||||||
| def test_payload_too_large_from_error_handler(): | def test_payload_too_large_from_error_handler(): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Raphael Deem
					Raphael Deem