| # Copyright (c) 2017-2019 Red Hat Inc. |
| # Markus Armbruster <armbru@redhat.com> |
| # Marc-André Lureau <marcandre.lureau@redhat.com> |
| # This work is licensed under the terms of the GNU GPL, version 2. |
| # See the COPYING file in the top-level directory. |
| Common error classes used throughout the package. Additional errors may |
| be defined in other modules. At present, `QAPIParseError` is defined in |
| from typing import Optional |
| from .source import QAPISourceInfo |
| class QAPIError(Exception): |
| """Base class for all exceptions from the QAPI package.""" |
| class QAPISourceError(QAPIError): |
| """Error class for all exceptions identifying a source location.""" |
| info: Optional[QAPISourceInfo], |
| col: Optional[int] = None): |
| def __str__(self) -> str: |
| assert self.info is not None |
| assert self.info.line is not None |
| return loc + ': ' + self.msg |
| class QAPISemError(QAPISourceError): |
| """Error class for semantic QAPI errors.""" |