The Python Paste package contains Python modules that help in implementing WSGI middleware.
The package includes a WSGI wrapper for CGI applications. It also includes a simple webserver that can produce WSGI requests.
WSGI middleware
The WSGI standard is an interface that allows applications to use Python code to handle HTTP requests. A WSGI application is passed a Python representation of an HTTP request by an application, and returns content which will normally eventually be rendered by a web browser. A common use for this is when a web server serves content created by Python code.
There are, however, other uses: WSGI middleware is Python code that receives a WSGI request and then performs logic based upon this request, before passing the request on to a WSGI application or more WSGI middleware. WSGI middleware appears to an application as a server, and to the server as an application. This is analogous to the function of pipes on Unix systems. Functionality provided by WSGI middleware may include authentication, logging, URL redirection, creation of sessions, and compression.
Paste helps in developing such WSGI middleware systems. For example, it is used in the Pylons web application framework.
Subcomponents of Paste
Paste has been a long-running open source project, dating from at least 2005. As it has grown, it has unbundled several other utilities from the Paste core. These utilities are part of the Paste project, but form their own packages and have their own version numbers. They include:
Paste Deploy is a system for finding and configuring WSGI applications and servers.
Paste Script, ScriptType, INITools, Tempita, WaitForIt, WPHP, WSGIFilter, and WSGIProxy are other notable bundles.
WebTest
WebOb is a wrapper around the WSGI environment.
WebTest and WebOb have migrated and are now part of the Pylons project.