diff --git a/trepan/processor/cmdfns.py b/trepan/processor/cmdfns.py index 86506b4b..f65a8f9b 100644 --- a/trepan/processor/cmdfns.py +++ b/trepan/processor/cmdfns.py @@ -19,7 +19,6 @@ ''' import os, sys, tempfile import pyficache -from xdis import IS_PYPY def source_tempfile_remap(prefix, text): fd = tempfile.NamedTemporaryFile(suffix='.py', @@ -34,12 +33,11 @@ def source_tempfile_remap(prefix, text): def deparse_fn(code): try: - from uncompyle6.semantics.fragments import deparse_code + from uncompyle6.semantics.fragments import code_deparse except ImportError: return None - sys_version = sys.version_info[0] + (sys.version_info[1] / 10.0) try: - deparsed = deparse_code(sys_version, code, is_pypy=IS_PYPY) + deparsed = code_deparse(code) return deparsed.text.strip() except: raise diff --git a/trepan/processor/cmdproc.py b/trepan/processor/cmdproc.py index a99febce..ba2e5941 100644 --- a/trepan/processor/cmdproc.py +++ b/trepan/processor/cmdproc.py @@ -30,7 +30,7 @@ from trepan.lib import stack as Mstack from trepan.lib import thred as Mthread from trepan.processor import complete as Mcomplete -from trepan.processor.cmdfns import deparse_fn +from trepan.processor.cmdfns import deparse_fn, source_tempfile_remap from trepan.lib.deparse import deparse_and_cache # arg_split culled from ipython's routine @@ -165,6 +165,7 @@ def print_location(proc_obj): # the stack. Hence the looping below which in practices loops # once and sometimes twice. remapped_file = None + source_text = None while i_stack >= 0: frame_lineno = proc_obj.stack[i_stack] i_stack -= 1 @@ -182,16 +183,8 @@ def print_location(proc_obj): remapped_file = filename filename = pyficache.unmap_file(filename) if '' == filename: - fd = tempfile.NamedTemporaryFile(suffix='.py', - prefix='eval_string', - delete=False) - with fd: - fd.write(dbgr_obj.eval_string) - fd.close() - pass - pyficache.remap_file(fd.name, '') - remapped = cmdfns.source_tempfile_remap('eval_string', - dbgr_obj.eval_string) + remapped = source_tempfile_remap('eval_string', + dbgr_obj.eval_string) pyficache.remap_file(filename, remapped) filename = remapped lineno = pyficache.unmap_file_line(filename, lineno) @@ -222,7 +215,8 @@ def print_location(proc_obj): pyficache.update_cache(filename) line = pyficache.getline(filename, lineno, opts) if not line: - if filename.startswith("