Skip to content
Python Paste (core) repository
Python JavaScript
Branch: master
Clone or download
Latest commit 13fe3fa Jul 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs release 3.1.0 Jul 24, 2019
paste Fix WSGIResponse.__call__ on Python 3. (#27) Jul 24, 2019
tests Fix WSGIResponse.__call__ on Python 3. (#27) Jul 24, 2019
.gitignore Prepare docs for publishing to RTFD Oct 24, 2018
.hgignore Don't raise StopIteration from generator, return instead Jun 8, 2018
.travis.yml Enable coverage reporting via codecov (#10) Oct 30, 2018 Don't raise StopIteration from generator, return instead Jun 8, 2018
README.rst add link to read the docs to README Oct 24, 2018
regen-docs Don't raise StopIteration from generator, return instead Jun 8, 2018
setup.cfg Depend on pytest instead of nose (#13) Nov 3, 2018 release 3.1.0 Jul 24, 2019
tox.ini Pytest fixes (#9) Oct 30, 2018


Paste is in maintenance mode and recently moved from bitbucket to github. Patches are accepted to keep it on life support, but for the most part, please consider using other options.

Paste provides 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.

See also:

Includes these features...


  • 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


  • 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.


  • 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-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

The official development repo is at

You can’t perform that action at this time.