| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import re
- import sys
- import platform
- from os.path import join, dirname
- from setuptools import setup, find_packages
- from setuptools.extension import Extension
- with open(join(dirname(__file__), 'thriftpy2', '__init__.py'), 'r') as f:
- version = re.match(r".*__version__ = '(.*?)'", f.read(), re.S).group(1)
- install_requires = [
- "ply>=3.4,<4.0",
- ]
- tornado_requires = [
- "tornado>=4.0,<6.0",
- ]
- try:
- from tornado import version as tornado_version
- if tornado_version < '5.0':
- tornado_requires.append("toro>=0.6")
- except ImportError:
- # tornado will now only get installed and we'll get the newer one
- pass
- dev_requires = [
- "cython>=0.28.4",
- "flake8>=2.5",
- "pytest>=2.8",
- "sphinx-rtd-theme>=0.1.9",
- "sphinx>=1.3",
- ] + tornado_requires
- # cython detection
- try:
- from Cython.Build import cythonize
- CYTHON = True
- except ImportError:
- CYTHON = False
- cmdclass = {}
- ext_modules = []
- # pypy detection
- PYPY = "__pypy__" in sys.modules
- UNIX = platform.system() in ("Linux", "Darwin")
- # only build ext in CPython with UNIX platform
- if UNIX and not PYPY:
- # rebuild .c files if cython available
- if CYTHON:
- cythonize("thriftpy2/transport/cybase.pyx")
- cythonize("thriftpy2/transport/**/*.pyx")
- cythonize("thriftpy2/protocol/cybin/cybin.pyx")
- ext_modules.append(Extension("thriftpy2.transport.cybase",
- ["thriftpy2/transport/cybase.c"]))
- ext_modules.append(Extension("thriftpy2.transport.buffered.cybuffered",
- ["thriftpy2/transport/buffered/cybuffered.c"]))
- ext_modules.append(Extension("thriftpy2.transport.memory.cymemory",
- ["thriftpy2/transport/memory/cymemory.c"]))
- ext_modules.append(Extension("thriftpy2.transport.framed.cyframed",
- ["thriftpy2/transport/framed/cyframed.c"]))
- ext_modules.append(Extension("thriftpy2.protocol.cybin",
- ["thriftpy2/protocol/cybin/cybin.c"]))
- setup(name="thriftpy2",
- version=version,
- description="Pure python implementation of Apache Thrift.",
- keywords="thrift python thriftpy thriftpy2",
- author="ThriftPy Organization",
- author_email="gotzehsing@gmail.com",
- packages=find_packages(exclude=['benchmark', 'docs', 'tests']),
- entry_points={},
- url="https://thriftpy2.readthedocs.io/",
- license="MIT",
- zip_safe=False,
- long_description=open("README.rst").read(),
- install_requires=install_requires,
- tests_require=tornado_requires,
- python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
- extras_require={
- "dev": dev_requires,
- "tornado": tornado_requires
- },
- cmdclass=cmdclass,
- ext_modules=ext_modules,
- include_package_data=True,
- classifiers=[
- "Topic :: Software Development",
- "Development Status :: 4 - Beta",
- "Intended Audience :: Developers",
- "License :: OSI Approved :: MIT License",
- "Programming Language :: Python :: 2",
- "Programming Language :: Python :: 2.7",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.4",
- "Programming Language :: Python :: 3.5",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: Implementation :: CPython",
- "Programming Language :: Python :: Implementation :: PyPy",
- ])
|