""" Sanic """ import codecs import os import re 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( __file__)), 'sanic', '__init__.py'), 'r', 'latin1') as fp: try: version = re.findall(r"^__version__ = '([^']+)'\r?$", fp.read(), re.M)[0] except IndexError: raise RuntimeError('Unable to determine version.') setup_kwargs = { 'name': 'sanic', 'version': version, 'url': 'http://github.com/channelcat/sanic/', 'license': 'MIT', 'author': 'Channel Cat', 'author_email': 'channelcat@gmail.com', 'description': ( 'A microframework based on uvloop, httptools, and learnings of flask'), 'packages': ['sanic'], 'package_data': {'':['default.yml']}, 'platforms': 'any', 'classifiers': [ 'Development Status :: 2 - Pre-Alpha', 'Environment :: Web Environment', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', ], } ujson = 'ujson>=1.35' uvloop = 'uvloop>=0.5.3' requirements = [ 'httptools>=0.0.9', uvloop, ujson, 'aiofiles>=0.3.0', 'websockets>=3.2', 'pyyaml>=3.12' ] 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: 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) # Installation was successful print(u"\n\n\U0001F680 " "Sanic version {} installation suceeded.\n".format(version))