Printrun/libs/CherryPy-3.2.2/setup.py

145 lines
4.7 KiB
Python

"""Installs CherryPy using distutils
Run:
python setup.py install
to install this package.
"""
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
from distutils.command.install import INSTALL_SCHEMES
from distutils.command.build_py import build_py
import sys
import os
import re
class cherrypy_build_py(build_py):
"Custom version of build_py that selects Python-specific wsgiserver"
def build_module(self, module, module_file, package):
python3 = sys.version_info >= (3,)
if python3:
exclude_pattern = re.compile('wsgiserver2|ssl_pyopenssl')
else:
exclude_pattern = re.compile('wsgiserver3')
if exclude_pattern.match(module):
return # skip it
return build_py.build_module(self, module, module_file, package)
###############################################################################
# arguments for the setup command
###############################################################################
name = "CherryPy"
version = "3.2.2"
desc = "Object-Oriented HTTP framework"
long_desc = "CherryPy is a pythonic, object-oriented HTTP framework"
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: Freely Distributable",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Internet :: WWW/HTTP :: WSGI",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
"Topic :: Software Development :: Libraries :: Application Frameworks",
]
author="CherryPy Team"
author_email="team@cherrypy.org"
url="http://www.cherrypy.org"
cp_license="BSD"
packages=[
"cherrypy", "cherrypy.lib",
"cherrypy.tutorial", "cherrypy.test",
"cherrypy.process",
"cherrypy.scaffold",
"cherrypy.wsgiserver",
]
download_url="http://download.cherrypy.org/cherrypy/3.2.2/"
data_files=[
('cherrypy', ['cherrypy/cherryd',
'cherrypy/favicon.ico',
'cherrypy/LICENSE.txt',
]),
('cherrypy/process', []),
('cherrypy/scaffold', ['cherrypy/scaffold/example.conf',
'cherrypy/scaffold/site.conf',
]),
('cherrypy/scaffold/static', ['cherrypy/scaffold/static/made_with_cherrypy_small.png',
]),
('cherrypy/test', ['cherrypy/test/style.css',
'cherrypy/test/test.pem',
]),
('cherrypy/test/static', ['cherrypy/test/static/index.html',
'cherrypy/test/static/dirback.jpg',]),
('cherrypy/tutorial',
[
'cherrypy/tutorial/tutorial.conf',
'cherrypy/tutorial/README.txt',
'cherrypy/tutorial/pdf_file.pdf',
'cherrypy/tutorial/custom_error.html',
]
),
]
scripts = ["cherrypy/cherryd"]
cmd_class = dict(
build_py = cherrypy_build_py,
)
if sys.version_info >= (3, 0):
required_python_version = '3.0'
else:
required_python_version = '2.3'
###############################################################################
# end arguments for setup
###############################################################################
# wininst may install data_files in Python/x.y instead of the cherrypy package.
# Django's solution is at http://code.djangoproject.com/changeset/8313
# See also http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html
if 'bdist_wininst' in sys.argv or '--format=wininst' in sys.argv:
data_files = [(r'\PURELIB\%s' % path, files) for path, files in data_files]
def main():
if sys.version < required_python_version:
s = "I'm sorry, but %s %s requires Python %s or later."
print(s % (name, version, required_python_version))
sys.exit(1)
# set default location for "data_files" to
# platform specific "site-packages" location
for scheme in list(INSTALL_SCHEMES.values()):
scheme['data'] = scheme['purelib']
dist = setup(
name=name,
version=version,
description=desc,
long_description=long_desc,
classifiers=classifiers,
author=author,
author_email=author_email,
url=url,
license=cp_license,
packages=packages,
download_url=download_url,
data_files=data_files,
scripts=scripts,
cmdclass=cmd_class,
)
if __name__ == "__main__":
main()