1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
# If true, then the svn revision won't be used to calculate the
# revision (set to True for real releases)
RELEASE = False
__version__ = '1.7.1'
from setuptools import setup, find_packages
import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__),
'paste', 'util'))
import finddata
setup(name="Paste",
version=__version__,
description="Tools for using a Web Server Gateway Interface stack",
long_description="""\
These provide several pieces of "middleware" (or filters) that can be nested to build web applications. Each
piece of middleware uses the WSGI (`PEP 333`_) interface, and should
be compatible with other middleware based on those interfaces.
.. _PEP 333: http://www.python.org/peps/pep-0333.html
Includes these features...
Testing
-------
* A fixture for testing WSGI applications conveniently and in-process,
in ``paste.fixture``
* A fixture for testing command-line applications, also in
``paste.fixture``
* Check components for WSGI-compliance in ``paste.lint``
Dispatching
-----------
* Chain and cascade WSGI applications (returning the first non-error
response) in ``paste.cascade``
* Dispatch to several WSGI applications based on URL prefixes, in
``paste.urlmap``
* Allow applications to make subrequests and forward requests
internally, in ``paste.recursive``
Web Application
---------------
* Run CGI programs as WSGI applications in ``paste.cgiapp``
* Traverse files and load WSGI applications from ``.py`` files (or
static files), in ``paste.urlparser``
* Serve static directories of files, also in ``paste.urlparser``; also
in that module serving from Egg resources using ``pkg_resources``.
Tools
-----
* Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
into proper responses in ``paste.httpexceptions``
* Several authentication techniques, including HTTP (Basic and
Digest), signed cookies, and CAS single-signon, in the
``paste.auth`` package.
* Create sessions in ``paste.session`` and ``paste.flup_session``
* Gzip responses in ``paste.gzip``
* A wide variety of routines for manipulating WSGI requests and
producing responses, in ``paste.request``, ``paste.response`` and
``paste.wsgilib``
Debugging Filters
-----------------
* Catch (optionally email) errors with extended tracebacks (using
Zope/ZPT conventions) in ``paste.exceptions``
* Catch errors presenting a `cgitb
<http://python.org/doc/current/lib/module-cgitb.html>`_-based
output, in ``paste.cgitb_catcher``.
* Profile each request and append profiling information to the HTML,
in ``paste.debug.profile``
* Capture ``print`` output and present it in the browser for
debugging, in ``paste.debug.prints``
* Validate all HTML output from applications using the `WDG Validator
<http://www.htmlhelp.com/tools/validator/>`_, appending any errors
or warnings to the page, in ``paste.debug.wdg_validator``
Other Tools
-----------
* A file monitor to allow restarting the server when files have been
updated (for automatic restarting when editing code) in
``paste.reloader``
* A class for generating and traversing URLs, and creating associated
HTML code, in ``paste.url``
The latest version is available in a `Subversion repository
<http://svn.pythonpaste.org/Paste/trunk#egg=Paste-dev>`_.
For the latest changes see the `news file
<http://pythonpaste.org/news.html>`_.
""",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet :: WWW/HTTP :: WSGI",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware",
"Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
"Framework :: Paste",
],
keywords='web application server wsgi',
author="Ian Bicking",
author_email="ianb@colorstudy.com",
url="http://pythonpaste.org",
license="MIT",
packages=find_packages(exclude=['ez_setup', 'examples', 'packages']),
package_data=finddata.find_package_data(),
namespace_packages=['paste'],
zip_safe=False,
extras_require={
'subprocess': [],
'hotshot': [],
'Flup': ['flup'],
'Paste': [],
'openid': ['python-openid'],
},
entry_points="""
[paste.app_factory]
cgi = paste.cgiapp:make_cgi_application [subprocess]
static = paste.urlparser:make_static
pkg_resources = paste.urlparser:make_pkg_resources
urlparser = paste.urlparser:make_url_parser
proxy = paste.proxy:make_proxy
test = paste.debug.debugapp:make_test_app
test_slow = paste.debug.debugapp:make_slow_app
transparent_proxy = paste.proxy:make_transparent_proxy
watch_threads = paste.debug.watchthreads:make_watch_threads
[paste.composite_factory]
urlmap = paste.urlmap:urlmap_factory
cascade = paste.cascade:make_cascade
[paste.filter_app_factory]
error_catcher = paste.exceptions.errormiddleware:make_error_middleware
cgitb = paste.cgitb_catcher:make_cgitb_middleware
flup_session = paste.flup_session:make_session_middleware [Flup]
gzip = paste.gzipper:make_gzip_middleware
httpexceptions = paste.httpexceptions:make_middleware
lint = paste.lint:make_middleware
printdebug = paste.debug.prints:PrintDebugMiddleware
profile = paste.debug.profile:make_profile_middleware [hotshot]
recursive = paste.recursive:make_recursive_middleware
# This isn't good enough to deserve the name egg:Paste#session:
paste_session = paste.session:make_session_middleware
wdg_validate = paste.debug.wdg_validate:make_wdg_validate_middleware [subprocess]
evalerror = paste.evalexception.middleware:make_eval_exception
auth_tkt = paste.auth.auth_tkt:make_auth_tkt_middleware
auth_basic = paste.auth.basic:make_basic
auth_digest = paste.auth.digest:make_digest
auth_form = paste.auth.form:make_form
grantip = paste.auth.grantip:make_grantip
openid = paste.auth.open_id:make_open_id_middleware [openid]
pony = paste.pony:make_pony
errordocument = paste.errordocument:make_errordocument
auth_cookie = paste.auth.cookie:make_auth_cookie
translogger = paste.translogger:make_filter
config = paste.config:make_config_filter
registry = paste.registry:make_registry_manager
[paste.server_runner]
http = paste.httpserver:server_runner
""",
)
|