diff options
Diffstat (limited to 'python/helpers/pydev/django_frame.py')
-rw-r--r-- | python/helpers/pydev/django_frame.py | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/python/helpers/pydev/django_frame.py b/python/helpers/pydev/django_frame.py deleted file mode 100644 index 4181572aed3c..000000000000 --- a/python/helpers/pydev/django_frame.py +++ /dev/null @@ -1,132 +0,0 @@ -from pydevd_file_utils import GetFileNameAndBaseFromFile -import pydev_log -import traceback -from pydevd_constants import DictContains - -def read_file(filename): - f = open(filename, "r") - try: - s = f.read() - finally: - f.close() - return s - - -def offset_to_line_number(text, offset): - curLine = 1 - curOffset = 0 - while curOffset < offset: - if curOffset == len(text): - return -1 - c = text[curOffset] - if c == '\n': - curLine += 1 - elif c == '\r': - curLine += 1 - if curOffset < len(text) and text[curOffset + 1] == '\n': - curOffset += 1 - - curOffset += 1 - - return curLine - - -def get_source(frame): - try: - node = frame.f_locals['self'] - if hasattr(node, 'source'): - return node.source - else: - pydev_log.error_once( - "WARNING: Template path is not available. Please set TEMPLATE_DEBUG=True " - "in your settings.py to make django template breakpoints working") - return None - - except: - pydev_log.debug(traceback.format_exc()) - return None - - -def get_template_file_name(frame): - try: - source = get_source(frame) - if source is None: - pydev_log.debug("Source is None\n") - return None - fname = source[0].name - - if fname == '<unknown source>': - pydev_log.debug("Source name is %s\n" % fname) - return None - else: - filename, base = GetFileNameAndBaseFromFile(fname) - return filename - except: - pydev_log.debug(traceback.format_exc()) - return None - - -def get_template_line(frame, template_frame_file): - source = get_source(frame) - try: - return offset_to_line_number(read_file(template_frame_file), source[1][0]) - except: - return None - - -class DjangoTemplateFrame: - def __init__( - self, - frame, - template_frame_file=None, - template_frame_line=None): - - if template_frame_file is None: - template_frame_file = get_template_file_name(frame) - - self.back_context = frame.f_locals['context'] - self.f_code = FCode('Django Template', template_frame_file) - - if template_frame_line is None: - template_frame_line = get_template_line(frame, template_frame_file) - self.f_lineno = template_frame_line - - self.f_back = frame - self.f_globals = {} - self.f_locals = self.collect_context() - self.f_trace = None - - def collect_context(self): - res = {} - try: - for d in self.back_context.dicts: - res.update(d) - except AttributeError: - pass - return res - - def changeVariable(self, name, value): - for d in self.back_context.dicts: - if DictContains(d, name): - d[name] = value - self.f_locals[name] = value - - -class FCode: - def __init__(self, name, filename): - self.co_name = name - self.co_filename = filename - - -def is_django_exception_break_context(frame): - try: - return frame.f_code.co_name in ['_resolve_lookup', 'find_template'] - except: - return False - - -def just_raised(trace): - if trace is None: - return False - return trace.tb_next is None - |