diff options
Diffstat (limited to 'setup.py')
| -rw-r--r-- | setup.py | 144 |
1 files changed, 90 insertions, 54 deletions
@@ -1,6 +1,6 @@ ############################################################################## # -# Copyright (c) 2008-2011 Agendaless Consulting and Contributors. +# Copyright (c) 2008-2013 Agendaless Consulting and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the BSD-like license at @@ -13,81 +13,117 @@ ############################################################################## import os -import platform import sys from setuptools import setup, find_packages +py_version = sys.version_info[:2] +is_pypy = '__pypy__' in sys.builtin_module_names + +PY3 = py_version[0] == 3 + +if PY3: + if py_version < (3, 3) and not is_pypy: # PyPy3 masquerades as Python 3.2... + raise RuntimeError('On Python 3, Pyramid requires Python 3.3 or better') +else: + if py_version < (2, 6): + raise RuntimeError('On Python 2, Pyramid requires Python 2.6 or better') + here = os.path.abspath(os.path.dirname(__file__)) try: - README = open(os.path.join(here, 'README.rst')).read() - CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() + with open(os.path.join(here, 'README.rst')) as f: + README = f.read() + with open(os.path.join(here, 'CHANGES.txt')) as f: + CHANGES = f.read() except IOError: README = CHANGES = '' -install_requires=[ - 'Chameleon >= 1.2.3', - 'Mako >= 0.3.6', # strict_undefined - 'Paste > 1.7', # temp version pin to prevent PyPi install failure :-( - 'PasteDeploy', - 'PasteScript', - 'WebOb >= 1.0.2', # no "default_charset"; request.script_name doesnt error - 'repoze.lru', +install_requires = [ 'setuptools', - 'zope.component >= 3.6.0', # independent of zope.hookable - 'zope.configuration', - 'zope.deprecation', - 'zope.interface >= 3.5.1', # 3.5.0 comment: "allow to bootstrap on jython" - 'venusian >= 0.5', # ``codeinfo`` - 'translationstring', + 'WebOb >= 1.3.1', # request.domain and CookieProfile + 'repoze.lru >= 0.4', # py3 compat + 'zope.interface >= 3.8.0', # has zope.interface.registry + 'zope.deprecation >= 3.5.0', # py3 compat + 'venusian >= 1.0a3', # ``ignore`` + 'translationstring >= 0.4', # py3 compat + 'PasteDeploy >= 1.5.0', # py3 compat ] -if platform.system() == 'Java': - tests_require = install_requires + ['WebTest', 'virtualenv'] -else: - tests_require= install_requires + ['Sphinx', 'docutils', - 'WebTest', 'repoze.sphinx.autointerface', - 'virtualenv'] +tests_require = [ + 'WebTest >= 1.3.1', # py3 compat + ] + +if not PY3: + tests_require.append('zope.component>=3.11.0') + +docs_extras = [ + 'Sphinx >= 1.3.5', + 'docutils', + 'repoze.sphinx.autointerface', + 'pylons_sphinx_latesturl', + 'pylons-sphinx-themes', + 'sphinxcontrib-programoutput', + ] + +testing_extras = tests_require + [ + 'nose', + 'coverage', + 'virtualenv', # for scaffolding tests + ] -if sys.version_info[:2] < (2, 6): - install_requires.append('simplejson') - setup(name='pyramid', - version='1.1a0', - description=('The Pyramid web application development framework, a ' - 'Pylons project'), - long_description=README + '\n\n' + CHANGES, + version='1.8.dev0', + description='The Pyramid Web Framework, a Pylons project', + long_description=README + '\n\n' + CHANGES, classifiers=[ - "Intended Audience :: Developers", - "Programming Language :: Python", - "Framework :: Pylons", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI", - "License :: Repoze Public License", - ], + "Development Status :: 6 - Mature", + "Intended Audience :: Developers", + "Programming Language :: Python", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Framework :: Pyramid", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI", + "License :: Repoze Public License", + ], keywords='web wsgi pylons pyramid', author="Chris McDonough, Agendaless Consulting", - author_email="pylons-devel@googlegroups.com", - url="http://pylonsproject.org", + author_email="pylons-discuss@googlegroups.com", + url="https://trypyramid.com", license="BSD-derived (http://www.repoze.org/LICENSE.txt)", packages=find_packages(), include_package_data=True, zip_safe=False, - install_requires = install_requires, - tests_require = tests_require, + install_requires=install_requires, + extras_require={ + 'testing': testing_extras, + 'docs': docs_extras, + }, + tests_require=tests_require, test_suite="pyramid.tests", - entry_points = """\ - [paste.paster_create_template] - pyramid_starter=pyramid.scaffolds:StarterProjectTemplate - pyramid_zodb=pyramid.scaffolds:ZODBProjectTemplate - pyramid_routesalchemy=pyramid.scaffolds:RoutesAlchemyProjectTemplate - pyramid_alchemy=pyramid.scaffolds:AlchemyProjectTemplate - [paste.paster_command] - pshell=pyramid.paster:PShellCommand - proutes=pyramid.paster:PRoutesCommand - pviews=pyramid.paster:PViewsCommand + entry_points="""\ + [pyramid.scaffold] + starter=pyramid.scaffolds:StarterProjectTemplate + zodb=pyramid.scaffolds:ZODBProjectTemplate + alchemy=pyramid.scaffolds:AlchemyProjectTemplate + [pyramid.pshell_runner] + python=pyramid.scripts.pshell:python_shell_runner [console_scripts] - bfg2pyramid = pyramid.fixers.fix_bfg_imports:main + pcreate = pyramid.scripts.pcreate:main + pserve = pyramid.scripts.pserve:main + pshell = pyramid.scripts.pshell:main + proutes = pyramid.scripts.proutes:main + pviews = pyramid.scripts.pviews:main + ptweens = pyramid.scripts.ptweens:main + prequest = pyramid.scripts.prequest:main + pdistreport = pyramid.scripts.pdistreport:main + [paste.server_runner] + wsgiref = pyramid.scripts.pserve:wsgiref_server_runner + cherrypy = pyramid.scripts.pserve:cherrypy_server_runner """ ) - |
