Files
deb-python-falcon/setup.py
Zhigang Wang 5fb037ddc9 chore: Move pytest-runner to tests_requires (#945)
pytest-runner is not needed unless doing python setup.py test. Thus it's better to move it to the right place.

This patch is not tested yet. Because I'm trying to build falcon for a old CentOS 6 system. Please consider this change.
2016-12-19 21:47:56 -06:00

118 lines
3.6 KiB
Python

import glob
import imp
import io
import os
from os import path
import sys
from setuptools import Extension, find_packages, setup
MYDIR = path.abspath(os.path.dirname(__file__))
VERSION = imp.load_source('version', path.join('.', 'falcon', 'version.py'))
VERSION = VERSION.__version__
# NOTE(kgriffs): python-mimeparse is better-maintained fork of mimeparse
REQUIRES = ['six>=1.4.0', 'python-mimeparse>=1.5.2']
JYTHON = 'java' in sys.platform
try:
sys.pypy_version_info
PYPY = True
except AttributeError:
PYPY = False
if PYPY or JYTHON:
CYTHON = False
else:
try:
from Cython.Distutils import build_ext
CYTHON = True
except ImportError:
# TODO(kgriffs): pip now ignores all output, so the user
# may not see this message. See also:
#
# https://github.com/pypa/pip/issues/2732
#
print('\nNOTE: Cython not installed. '
'Falcon will still work fine, but may run '
'a bit slower.\n')
CYTHON = False
if CYTHON:
def list_modules(dirname):
filenames = glob.glob(path.join(dirname, '*.py'))
module_names = []
for name in filenames:
module, ext = path.splitext(path.basename(name))
if module != '__init__':
module_names.append(module)
return module_names
package_names = ['falcon', 'falcon.util', 'falcon.routing']
ext_modules = [
Extension(
package + '.' + module,
[path.join(*(package.split('.') + [module + '.py']))]
)
for package in package_names
for module in list_modules(path.join(MYDIR, *package.split('.')))
]
cmdclass = {'build_ext': build_ext}
else:
cmdclass = {}
ext_modules = []
setup(
name='falcon',
version=VERSION,
description='An unladen web framework for building APIs and app backends.',
long_description=io.open('README.rst', 'r', encoding='utf-8').read(),
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'Natural Language :: English',
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'License :: OSI Approved :: Apache Software License',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Topic :: Internet :: WWW/HTTP :: WSGI',
'Topic :: Software Development :: Libraries :: Application Frameworks',
'Programming Language :: Python',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Programming Language :: Python :: Implementation :: Jython',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
],
keywords='wsgi web api framework rest http cloud',
author='Kurt Griffiths',
author_email='mail@kgriffs.com',
url='http://falconframework.org',
license='Apache 2.0',
packages=find_packages(exclude=['tests']),
include_package_data=True,
zip_safe=False,
install_requires=REQUIRES,
cmdclass=cmdclass,
ext_modules=ext_modules,
tests_require=['ddt', 'testtools', 'requests', 'pyyaml', 'pytest',
'pytest-runner'],
entry_points={
'console_scripts': [
'falcon-bench = falcon.cmd.bench:main',
'falcon-print-routes = falcon.cmd.print_routes:main'
]
}
)