29 lines
853 B
Python
29 lines
853 B
Python
from typing import List
|
|
|
|
import mypy.errors
|
|
|
|
|
|
class Errors:
|
|
def __init__(self) -> None:
|
|
self.num_errors = 0
|
|
self.num_warnings = 0
|
|
self._errors = mypy.errors.Errors()
|
|
|
|
def error(self, msg: str, path: str, line: int) -> None:
|
|
self._errors.report(line, None, msg, severity='error', file=path)
|
|
self.num_errors += 1
|
|
|
|
def note(self, msg: str, path: str, line: int) -> None:
|
|
self._errors.report(line, None, msg, severity='note', file=path)
|
|
|
|
def warning(self, msg: str, path: str, line: int) -> None:
|
|
self._errors.report(line, None, msg, severity='warning', file=path)
|
|
self.num_warnings += 1
|
|
|
|
def new_messages(self) -> List[str]:
|
|
return self._errors.new_messages()
|
|
|
|
def flush_errors(self) -> None:
|
|
for error in self.new_messages():
|
|
print(error)
|