47 lines
1.2 KiB
Python
47 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:
|
||
|
"""
|
||
|
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,
|
||
|
)
|