Features¶
Testing¶
A fixture for testing WSGI applications conveniently and in-process, in
paste.fixture.TestAppA fixture for testing command-line applications, also in
paste.fixture.TestFileEnvironmentCheck components for WSGI-compliance in
paste.lintCheck filesystem changes, with
paste.debug.fsdiff
Server¶
A threaded HTTP server in
paste.httpserverA 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.cascadeDispatch to several WSGI applications based on URL prefixes, in
paste.urlmapAllow applications to make subrequests and forward requests internally, in
paste.recursiveRedirect 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.wsgiwrappersWork directly with the WSGI environment in
paste.requestRun CGI programs as WSGI applications in
paste.cgiappTraverse files and load WSGI applications from
.pyfiles (or static files), inpaste.urlparserServe 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.httpexceptionsManage HTTP header fields with
paste.httpheadersHandle authentication/identification of requests in
paste.authCreate sessions in
paste.sessionandpaste.flup_sessionGzip responses in
paste.gzipperA wide variety of routines for manipulating WSGI requests and producing responses, in
paste.request,paste.responseandpaste.wsgilib.Create Apache-style logs in
paste.transloggerHandy request and response wrappers in
paste.wsgiwrappersHandling of request-local module globals sanely in
paste.registry
Authentication¶
Authentication using cookies in
paste.auth.cookieandpaste.auth.auth_tkt; login form inpaste.auth.formAuthentication using OpenID in
paste.auth.open_id, using CAS inpaste.auth.casHTTP authentication in
paste.auth.basicandpaste.auth.digestDispatch to different authentication methods based on User-Agent, in
paste.auth.multiGrant roles based on IP addresses, in
paste.auth.grantip
Debugging Filters¶
Catch (optionally email) errors with extended tracebacks (using Zope/ZPT conventions) in
paste.exceptionsDuring 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 traceback in
paste.cgitb_catcher.Profile each request and append profiling information to the HTML, in
paste.debug.profileCapture
printoutput and present it in the browser for debugging, inpaste.debug.printsValidate 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.reloaderA class for generating and traversing URLs, and creating associated HTML code, in
paste.urlA small templating language (for internal use) in
paste.util.templateA class to help with loops in templates, in
paste.util.looperImport modules and objects given a string, in
paste.util.import_stringOrdered dictionary that can have multiple values with the same key, in
paste.util.multidict