Features¶
Testing¶
- A fixture for testing WSGI applications conveniently and in-process,
in
paste.fixture.TestApp - A fixture for testing command-line applications, also in
paste.fixture.TestFileEnvironment - Check components for WSGI-compliance in
paste.lint - Check filesystem changes, with
paste.debug.fsdiff
Server¶
- A threaded HTTP server in
paste.httpserver - A tool for seeing and killing errant threads in the HTTP server, in
paste.debug.watchthreads
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 - Redirect error pages (e.g., 404 Not Found) to custom error pages, in
paste.errordocument.
Web Application¶
- Easily deal with incoming requests and sending a response in
paste.wsgiwrappers - Work directly with the WSGI environment in
paste.request - Run CGI programs as WSGI applications in
paste.cgiapp - Traverse files and load WSGI applications from
.pyfiles (or static files), inpaste.urlparser - Serve static directories of files, also in
paste.urlparser; also serve using the Setuptoolspkg_resourcesresource API. - Proxy to other servers, treating external HTTP servers as WSGI
applications, in
paste.proxy. - Serve files (with support for
If-Modified-Since, etc) inpaste.fileapp
Tools¶
- Catch HTTP-related exceptions (e.g.,
HTTPNotFound) and turn them into proper responses inpaste.httpexceptions - Manage HTTP header fields with
paste.httpheaders - Handle authentication/identification of requests in
paste.auth - Create sessions in
paste.sessionandpaste.flup_session - Gzip responses in
paste.gzipper - A wide variety of routines for manipulating WSGI requests and
producing responses, in
paste.request,paste.responseandpaste.wsgilib. - Create Apache-style logs in
paste.translogger - Handy request and response wrappers in
paste.wsgiwrappers - Handling of request-local module globals sanely in
paste.registry
Authentication¶
- Authentication using cookies in
paste.auth.cookieandpaste.auth.auth_tkt; login form inpaste.auth.form - Authentication using OpenID in
paste.auth.open_id, using CAS inpaste.auth.cas - HTTP authentication in
paste.auth.basicandpaste.auth.digest - Dispatch to different authentication methods based on User-Agent, in
paste.auth.multi - Grant roles based on IP addresses, in
paste.auth.grantip
Debugging Filters¶
- Catch (optionally email) errors with extended tracebacks (using
Zope/ZPT conventions) in
paste.exceptions - During debugging, show tracebacks with information about each stack
frame, including an interactive prompt that runs in the individual
stack frames, in
paste.evalexception. - Catch errors presenting a cgitb-based
output, in
paste.cgitb_catcher. - Profile each request and append profiling information to the HTML,
in
paste.debug.profile - Capture
printoutput and present it in the browser for debugging, inpaste.debug.prints - Validate all HTML output from applications using the WDG 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 - A small templating language (for internal use) in
paste.util.template - A class to help with loops in templates, in
paste.util.looper - Import modules and objects given a string, in
paste.util.import_string - Ordered dictionary that can have multiple values with the same key,
in
paste.util.multidict