From fb5b7eabbc5cd8f872bf5dbc4a1bdbd0b5d6abae Mon Sep 17 00:00:00 2001 From: Ram Rachum Date: Sun, 28 Apr 2019 22:27:50 +0300 Subject: [PATCH] IronPython doesn't always have frame.f_globals, fix #75 --- pysnooper/__init__.py | 2 +- pysnooper/tracer.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pysnooper/__init__.py b/pysnooper/__init__.py index a5ea960..a7e0464 100644 --- a/pysnooper/__init__.py +++ b/pysnooper/__init__.py @@ -7,7 +7,7 @@ import collections __VersionInfo = collections.namedtuple('VersionInfo', ('major', 'minor', 'micro')) -__version__ = '0.0.22' +__version__ = '0.0.23' __version_info__ = __VersionInfo(*(map(int, __version__.split('.')))) del collections, __VersionInfo # Avoid polluting the namespace diff --git a/pysnooper/tracer.py b/pysnooper/tracer.py index 048d798..bc4dbd0 100644 --- a/pysnooper/tracer.py +++ b/pysnooper/tracer.py @@ -54,7 +54,7 @@ def get_local_reprs(frame, variables=()): for variable in variables: try: result[variable] = get_shortish_repr( - eval(variable, frame.f_globals, frame.f_locals) + eval(variable, (frame.f_globals or {}), frame.f_locals) ) except Exception: pass @@ -71,7 +71,7 @@ source_cache_by_file_name = {} def get_source_from_frame(frame): - module_name = frame.f_globals.get('__name__') or '' + module_name = (frame.f_globals or {}).get('__name__') or '' if module_name: try: return source_cache_by_module_name[module_name] @@ -83,7 +83,7 @@ def get_source_from_frame(frame): return source_cache_by_file_name[file_name] except KeyError: pass - loader = frame.f_globals.get('__loader__') + loader = (frame.f_globals or {}).get('__loader__') source = None if hasattr(loader, 'get_source'):