| | |
| | | |
| | | .. _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 |
| | |
| | | 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 |
| | |
| | | - 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: |
| | | |