46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
"""
|
|
This file is about errors in Python files and not about exception handling in
|
|
Jedi.
|
|
"""
|
|
|
|
|
|
def parso_to_jedi_errors(grammar, module_node):
|
|
return [SyntaxError(e) for e in grammar.iter_errors(module_node)]
|
|
|
|
|
|
class SyntaxError(object):
|
|
"""
|
|
Syntax errors are generated by :meth:`.Script.get_syntax_errors`.
|
|
"""
|
|
def __init__(self, parso_error):
|
|
self._parso_error = parso_error
|
|
|
|
@property
|
|
def line(self):
|
|
"""The line where the error starts (starting with 1)."""
|
|
return self._parso_error.start_pos[0]
|
|
|
|
@property
|
|
def column(self):
|
|
"""The column where the error starts (starting with 0)."""
|
|
return self._parso_error.start_pos[1]
|
|
|
|
@property
|
|
def until_line(self):
|
|
"""The line where the error ends (starting with 1)."""
|
|
return self._parso_error.end_pos[0]
|
|
|
|
@property
|
|
def until_column(self):
|
|
"""The column where the error ends (starting with 0)."""
|
|
return self._parso_error.end_pos[1]
|
|
|
|
def get_message(self):
|
|
return self._parso_error.message
|
|
|
|
def __repr__(self):
|
|
return '<%s from=%s to=%s>' % (
|
|
self.__class__.__name__,
|
|
self._parso_error.start_pos,
|
|
self._parso_error.end_pos,
|
|
)
|