Steve Piercy
2015-11-21 2ce1643f3dcb0d8dfaee20e87210336ac2346cd4
Merge pull request #2150 from stevepiercy/1.5-branch

use intersphinx links to webob objects (backport #2147)
1 files modified
27 ■■■■ changed files
docs/designdefense.rst 27 ●●●● patch | view | raw | blame | history
docs/designdefense.rst
@@ -907,23 +907,22 @@
.. _http_exception_hierarchy:
Pyramid Uses its Own HTTP Exception Class Hierarchy Rather Than ``webob.exc``
-----------------------------------------------------------------------------
Pyramid uses its own HTTP exception class hierarchy rather than :mod:`webob.exc`
--------------------------------------------------------------------------------
.. versionadded:: 1.1
The HTTP exception classes defined in :mod:`pyramid.httpexceptions` are very
much like the ones defined in ``webob.exc``
(e.g. :class:`~pyramid.httpexceptions.HTTPNotFound`,
:class:`~pyramid.httpexceptions.HTTPForbidden`, etc).  They have the same
names and largely the same behavior and all have a very similar
implementation, but not the same identity.  Here's why they have a separate
identity:
much like the ones defined in :mod:`webob.exc`, (e.g.,
:class:`~pyramid.httpexceptions.HTTPNotFound` or
:class:`~pyramid.httpexceptions.HTTPForbidden`).  They have the same names and
largely the same behavior, and all have a very similar implementation, but not
the same identity.  Here's why they have a separate identity:
- Making them separate allows the HTTP exception classes to subclass
  :class:`pyramid.response.Response`.  This speeds up response generation
  slightly due to the way the Pyramid router works.  The same speedup could
  be gained by monkeypatching ``webob.response.Response`` but it's usually
  slightly due to the way the Pyramid router works.  The same speedup could be
  gained by monkeypatching :class:`webob.response.Response`, but it's usually
  the case that monkeypatching turns out to be evil and wrong.
- Making them separate allows them to provide alternate ``__call__`` logic
@@ -933,7 +932,7 @@
  value of ``RequestClass`` (:class:`pyramid.request.Request`).
- Making them separate allows us freedom from having to think about backwards
  compatibility code present in ``webob.exc`` having to do with Python 2.4,
  compatibility code present in :mod:`webob.exc` having to do with Python 2.4,
  which we no longer support in Pyramid 1.1+.
- We change the behavior of two classes
@@ -944,9 +943,9 @@
- Making them separate allows us to influence the docstrings of the exception
  classes to provide Pyramid-specific documentation.
- Making them separate allows us to silence a stupid deprecation warning
  under Python 2.6 when the response objects are used as exceptions (related
  to ``self.message``).
- Making them separate allows us to silence a stupid deprecation warning under
  Python 2.6 when the response objects are used as exceptions (related to
  ``self.message``).
.. _simpler_traversal_model: