Features

Testing

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 .py files (or static files), in paste.urlparser

  • Serve static directories of files, also in paste.urlparser; also serve using the Setuptools pkg_resources resource API.

  • Proxy to other servers, treating external HTTP servers as WSGI applications, in paste.proxy.

  • Serve files (with support for If-Modified-Since, etc) in paste.fileapp

Tools

Authentication

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 print output and present it in the browser for debugging, in paste.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