import pathlib import re import sys import setuptools root_dir = pathlib.Path(__file__).parent description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" long_description = (root_dir / 'README.rst').read_text(encoding='utf-8') # PyPI disables the "raw" directive. long_description = re.sub( r"^\.\. raw:: html.*?^(?=\w)", "", long_description, flags=re.DOTALL | re.MULTILINE, ) exec((root_dir / 'src' / 'websockets' / 'version.py').read_text(encoding='utf-8')) if sys.version_info[:3] < (3, 6, 1): raise Exception("websockets requires Python >= 3.6.1.") packages = ['websockets', 'websockets/extensions'] ext_modules = [ setuptools.Extension( 'websockets.speedups', sources=['src/websockets/speedups.c'], optional=not (root_dir / '.cibuildwheel').exists(), ) ] setuptools.setup( name='websockets', version=version, description=description, long_description=long_description, url='https://github.com/aaugustin/websockets', author='Aymeric Augustin', author_email='aymeric.augustin@m4x.org', license='BSD', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', ], package_dir = {'': 'src'}, package_data = {'websockets': ['py.typed']}, packages=packages, ext_modules=ext_modules, include_package_data=True, zip_safe=False, python_requires='>=3.6.1', test_loader='unittest:TestLoader', )