Chris McDonough
2011-07-12 82efa44c0d8f4b18b4f341519f54ecad68b56364
refs
author Chris McDonough <chrism@plope.com>
Tuesday, July 12, 2011 09:52 +0200
committer Chris McDonough <chrism@plope.com>
Tuesday, July 12, 2011 09:52 +0200
commit82efa44c0d8f4b18b4f341519f54ecad68b56364
tree 3abdcf96776957aacef3c8fcba53e68186d609e2 tree | zip | gz
parent f9896b60700ea4334f3df0a83f9b291e167b322d view | diff
- Previously, If a ``BeforeRender`` event subscriber added a value via the
``__setitem__`` or ``update`` methods of the event object with a key that
already existed in the renderer globals dictionary, a ``KeyError`` was
raised. With the deprecation of the "add_renderer_globals" feature of the
configurator, there was no way to override an existing value in the
renderer globals dictionary that already existed. Now, the event object
will overwrite an older value that is already in the globals dictionary
when its ``__setitem__`` or ``update`` is called (as well as the new
``setdefault`` method), just like a plain old dictionary. As a result, for
maximum interoperability with other third-party subscribers, if you write
an event subscriber meant to be used as a BeforeRender subscriber, your
subscriber code will now need to (using ``.get`` or ``__contains__`` of the
event object) ensure no value already exists in the renderer globals
dictionary before setting an overriding value.
5 files modified
114 ■■■■ changed files
CHANGES.txt 21 ●●●●● diff | view | raw | blame | history
docs/whatsnew-1.1.rst 16 ●●●●● diff | view | raw | blame | history
pyramid/events.py 43 ●●●●● diff | view | raw | blame | history
pyramid/interfaces.py 13 ●●●●● diff | view | raw | blame | history
pyramid/tests/test_events.py 21 ●●●●● diff | view | raw | blame | history