Steve Piercy
2015-11-21 26ce2d8018d63df9ad7efd11778e65d10896aeda
Merge pull request #2149 from stevepiercy/1.6-branch

backport #2146 and #2147 to 1.6 branch
2 files modified
31 ■■■■ changed files
docs/designdefense.rst 27 ●●●● patch | view | raw | blame | history
pyramid/static.py 4 ●●●● 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:
pyramid/static.py
@@ -212,8 +212,8 @@
    uses a supplied manifest file to map an asset path to a cache-busted
    version of the path.
    The ``manifest_spec`` can be an absolute path or a :term:`asset spec`
    pointing to a package-relative file.
    The ``manifest_spec`` can be an absolute path or a :term:`asset
    specification` pointing to a package-relative file.
    The manifest file is expected to conform to the following simple JSON
    format: