diff options
Diffstat (limited to 'python/helpers/pydev/pydevd_frame_utils.py')
-rw-r--r-- | python/helpers/pydev/pydevd_frame_utils.py | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/python/helpers/pydev/pydevd_frame_utils.py b/python/helpers/pydev/pydevd_frame_utils.py index 23becca0570d..0c9e8446d19c 100644 --- a/python/helpers/pydev/pydevd_frame_utils.py +++ b/python/helpers/pydev/pydevd_frame_utils.py @@ -1,11 +1,11 @@ -class Frame: +class Frame(object): def __init__( self, f_back, f_fileno, f_code, f_locals, - f_globals={}, + f_globals=None, f_trace=None): self.f_back = f_back self.f_lineno = f_fileno @@ -14,8 +14,31 @@ class Frame: self.f_globals = f_globals self.f_trace = f_trace + if self.f_globals is None: + self.f_globals = {} -class FCode: + +class FCode(object): def __init__(self, name, filename): self.co_name = name - self.co_filename = filename
\ No newline at end of file + self.co_filename = filename + + +def add_exception_to_frame(frame, exception_info): + frame.f_locals['__exception__'] = exception_info + + +def just_raised(trace): + if trace is None: + return False + return trace.tb_next is None + + +def cached_call(obj, func, *args): + cached_name = '_cached_' + func.__name__ + if not hasattr(obj, cached_name): + setattr(obj, cached_name, func(*args)) + + return getattr(obj, cached_name) + + |