Home | History | Annotate | Download | only in docs
      1 Features
      2 ========
      3 
      4 Testing
      5 -------
      6 
      7 * A fixture for testing WSGI applications conveniently and in-process,
      8   in :class:`paste.fixture.TestApp`
      9 
     10 * A fixture for testing command-line applications, also in
     11   :class:`paste.fixture.TestFileEnvironment`
     12 
     13 * Check components for WSGI-compliance in :mod:`paste.lint`
     14 
     15 * Check filesystem changes, with :mod:`paste.debug.fsdiff`
     16 
     17 Server
     18 ------
     19 
     20 * A threaded HTTP server in :mod:`paste.httpserver`
     21 
     22 * A tool for seeing and killing errant threads in the HTTP server, in
     23   :mod:`paste.debug.watchthreads`
     24 
     25 Dispatching
     26 -----------
     27 
     28 * Chain and cascade WSGI applications (returning the first non-error
     29   response) in :mod:`paste.cascade`
     30 
     31 * Dispatch to several WSGI applications based on URL prefixes, in
     32   :mod:`paste.urlmap`
     33 
     34 * Allow applications to make subrequests and forward requests
     35   internally, in :mod:`paste.recursive`
     36 
     37 * Redirect error pages (e.g., 404 Not Found) to custom error pages, in
     38   :mod:`paste.errordocument`.
     39 
     40 Web Application
     41 ---------------
     42 
     43 * Easily deal with incoming requests and sending a response in
     44   :mod:`paste.wsgiwrappers`
     45 
     46 * Work directly with the WSGI environment in :mod:`paste.request`
     47 
     48 * Run CGI programs as WSGI applications in :mod:`paste.cgiapp`
     49 
     50 * Traverse files and load WSGI applications from ``.py`` files (or
     51   static files), in :mod:`paste.urlparser`
     52 
     53 * Serve static directories of files, also in :mod:`paste.urlparser`; also
     54   serve using the Setuptools ``pkg_resources`` resource API.
     55 
     56 * Proxy to other servers, treating external HTTP servers as WSGI
     57   applications, in :mod:`paste.proxy`.
     58 
     59 * Serve files (with support for ``If-Modified-Since``, etc) in
     60   :mod:`paste.fileapp`
     61 
     62 Tools
     63 -----
     64 
     65 * Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
     66   into proper responses in :mod:`paste.httpexceptions`
     67 
     68 * Manage HTTP header fields with :mod:`paste.httpheaders`
     69 
     70 * Handle authentication/identification of requests in :mod:`paste.auth`
     71 
     72 * Create sessions in :mod:`paste.session` and :mod:`paste.flup_session`
     73 
     74 * Gzip responses in :mod:`paste.gzipper`
     75 
     76 * A wide variety of routines for manipulating WSGI requests and
     77   producing responses, in :mod:`paste.request`, :mod:`paste.response` and
     78   :mod:`paste.wsgilib`.
     79 
     80 * Create Apache-style logs in :mod:`paste.translogger`
     81 
     82 * Handy request and response wrappers in :mod:`paste.wsgiwrappers`
     83 
     84 * Handling of request-local module globals sanely in :mod:`paste.registry`
     85 
     86 Authentication
     87 --------------
     88 
     89 * Authentication using cookies in :mod:`paste.auth.cookie` and
     90   :mod:`paste.auth.auth_tkt`; login form in :mod:`paste.auth.form`
     91 
     92 * Authentication using `OpenID <http://openid.net/>`_ in
     93   :mod:`paste.auth.open_id`, using `CAS
     94   <http://www.ja-sig.org/products/cas/>`_ in :mod:`paste.auth.cas`
     95 
     96 * HTTP authentication in :mod:`paste.auth.basic` and
     97   :mod:`paste.auth.digest`
     98 
     99 * Dispatch to different authentication methods based on User-Agent, in
    100   :mod:`paste.auth.multi`
    101 
    102 * Grant roles based on IP addresses, in :mod:`paste.auth.grantip`
    103 
    104 Debugging Filters
    105 -----------------
    106 
    107 * Catch (optionally email) errors with extended tracebacks (using
    108   Zope/ZPT conventions) in :mod:`paste.exceptions`
    109 
    110 * During debugging, show tracebacks with information about each stack
    111   frame, including an interactive prompt that runs in the individual
    112   stack frames, in :mod:`paste.evalexception`.
    113 
    114 * Catch errors presenting a `cgitb
    115   <http://python.org/doc/current/lib/module-cgitb.html>`_-based
    116   output, in :mod:`paste.cgitb_catcher`.
    117 
    118 * Profile each request and append profiling information to the HTML,
    119   in :mod:`paste.debug.profile`
    120 
    121 * Capture ``print`` output and present it in the browser for
    122   debugging, in :mod:`paste.debug.prints`
    123 
    124 * Validate all HTML output from applications using the `WDG Validator
    125   <http://www.htmlhelp.com/tools/validator/>`_, appending any errors
    126   or warnings to the page, in :mod:`paste.debug.wdg_validator`
    127 
    128 Other Tools
    129 -----------
    130 
    131 * A file monitor to allow restarting the server when files have been
    132   updated (for automatic restarting when editing code) in
    133   :mod:`paste.reloader`
    134 
    135 * A class for generating and traversing URLs, and creating associated
    136   HTML code, in :mod:`paste.url`
    137 
    138 * A small templating language (for internal use) in
    139   :mod:`paste.util.template`
    140 
    141 * A class to help with loops in templates, in :mod:`paste.util.looper`
    142 
    143 * Import modules and objects given a string, in
    144   :mod:`paste.util.import_string`
    145 
    146 * Ordered dictionary that can have multiple values with the same key,
    147   in :mod:`paste.util.multidict`
    148 
    149