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
.py
files (or static files), inpaste.urlparser
- Serve static directories of files, also in
paste.urlparser
; also serve using the Setuptoolspkg_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) 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.session
andpaste.flup_session
- Gzip responses in
paste.gzipper
- A wide variety of routines for manipulating WSGI requests and
producing responses, in
paste.request
,paste.response
andpaste.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.cookie
andpaste.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.basic
andpaste.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
print
output 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