Chris McDonough
2012-07-13 3d7c54c13e61f48f6cf3cb6fac5e6fdc8cd208f7
- Backport bug fix from master: On at least one 64-bit Ubuntu system under
Python 3.2, using the ``view_config`` decorator caused a ``RuntimeError:
dictionary changed size during iteration`` exception. It no longer does.
See https://github.com/Pylons/pyramid/issues/635 for more information.

- Closes #635.
2 files modified
11 ■■■■ changed files
CHANGES.txt 5 ●●●●● patch | view | raw | blame | history
pyramid/view.py 6 ●●●● patch | view | raw | blame | history
CHANGES.txt
@@ -4,6 +4,11 @@
- Backport bug fix from master: Explicit url dispatch regexes can now contain
  colons.  https://github.com/Pylons/pyramid/issues/629
- Backport bug fix from master: On at least one 64-bit Ubuntu system under
  Python 3.2, using the ``view_config`` decorator caused a ``RuntimeError:
  dictionary changed size during iteration`` exception.  It no longer does.
  See https://github.com/Pylons/pyramid/issues/635 for more information.
1.3.2 (2012-05-19)
==================
pyramid/view.py
@@ -199,7 +199,7 @@
                 custom_predicates=default, context=default,
                 decorator=default, mapper=default, http_cache=default,
                 match_param=default):
        L = locals()
        L = dict(locals()) # See issue #635 for dict() rationale
        if (context is not default) or (for_ is not default):
            L['context'] = context or for_
        for k, v in L.items():
@@ -367,7 +367,7 @@
                 path_info=default,  custom_predicates=default, 
                 decorator=default, mapper=default, match_param=default, 
                 append_slash=False):
        L = locals()
        L = dict(locals()) # See issue #635 for dict() rationale
        for k, v in L.items():
            if k not in ('self', 'L') and v is not default:
                self.__dict__[k] = v
@@ -432,7 +432,7 @@
                 xhr=default, accept=default, header=default,
                 path_info=default,  custom_predicates=default, 
                 decorator=default, mapper=default, match_param=default):
        L = locals()
        L = dict(locals()) # See issue #635 for dict() rationale
        for k, v in L.items():
            if k not in ('self', 'L') and v is not default:
                self.__dict__[k] = v