diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/util.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/sqlalchemy/util.py b/lib/sqlalchemy/util.py index ddcab7822..b41aed8bc 100644 --- a/lib/sqlalchemy/util.py +++ b/lib/sqlalchemy/util.py @@ -181,21 +181,23 @@ class frozendict(dict): class _probe(dict): def __missing__(self, key): return 1 + try: - _probe()['missing'] - py25_dict = dict -except KeyError: - class py25_dict(dict): - def __getitem__(self, key): - try: - return dict.__getitem__(self, key) - except KeyError: + try: + _probe()['missing'] + py25_dict = dict + except KeyError: + class py25_dict(dict): + def __getitem__(self, key): try: - missing = self.__missing__ - except AttributeError: - raise KeyError(key) - else: - return missing(key) + return dict.__getitem__(self, key) + except KeyError: + try: + missing = self.__missing__ + except AttributeError: + raise KeyError(key) + else: + return missing(key) finally: del _probe |
