developer-features.txt 4.4 KB

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