[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 22/25] qapi/error.py: move QAPIParseError to parser.py
From: |
Markus Armbruster |
Subject: |
[PULL 22/25] qapi/error.py: move QAPIParseError to parser.py |
Date: |
Fri, 30 Apr 2021 13:48:35 +0200 |
From: John Snow <jsnow@redhat.com>
Keeping it in error.py will create some cyclic import problems when we
add types to the QAPISchemaParser. Callers don't need to know the
details of QAPIParseError unless they are parsing or dealing directly
with the parser, so this won't create any harsh new requirements for
callers in the general case.
Update error.py with a little docstring that gives a nod to where the
error may now be found.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20210421192233.3542904-6-jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
scripts/qapi/error.py | 22 ++++++++--------------
scripts/qapi/parser.py | 14 +++++++++++++-
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/scripts/qapi/error.py b/scripts/qapi/error.py
index d0bc7af6e7..6723c5a9d9 100644
--- a/scripts/qapi/error.py
+++ b/scripts/qapi/error.py
@@ -1,7 +1,5 @@
# -*- coding: utf-8 -*-
#
-# QAPI error classes
-#
# Copyright (c) 2017-2019 Red Hat Inc.
#
# Authors:
@@ -11,6 +9,14 @@
# This work is licensed under the terms of the GNU GPL, version 2.
# See the COPYING file in the top-level directory.
+"""
+QAPI error classes
+
+Common error classes used throughout the package. Additional errors may
+be defined in other modules. At present, `QAPIParseError` is defined in
+parser.py.
+"""
+
class QAPIError(Exception):
"""Base class for all exceptions from the QAPI package."""
@@ -33,17 +39,5 @@ def __str__(self):
return loc + ': ' + self.msg
-class QAPIParseError(QAPISourceError):
- """Error class for all QAPI schema parsing errors."""
- def __init__(self, parser, msg):
- col = 1
- for ch in parser.src[parser.line_pos:parser.pos]:
- if ch == '\t':
- col = (col + 7) % 8 + 1
- else:
- col += 1
- super().__init__(parser.info, msg, col)
-
-
class QAPISemError(QAPISourceError):
"""Error class for semantic QAPI errors."""
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index 58267c3db9..ca5e8e18e0 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -18,10 +18,22 @@
import os
import re
-from .error import QAPIParseError, QAPISemError
+from .error import QAPISemError, QAPISourceError
from .source import QAPISourceInfo
+class QAPIParseError(QAPISourceError):
+ """Error class for all QAPI schema parsing errors."""
+ def __init__(self, parser, msg):
+ col = 1
+ for ch in parser.src[parser.line_pos:parser.pos]:
+ if ch == '\t':
+ col = (col + 7) % 8 + 1
+ else:
+ col += 1
+ super().__init__(parser.info, msg, col)
+
+
class QAPISchemaParser:
def __init__(self, fname, previously_included=None, incl_info=None):
--
2.26.3
- [PULL 14/25] qapi/expr: Only explicitly prohibit 'Kind' nor 'List' for type names, (continued)
- [PULL 14/25] qapi/expr: Only explicitly prohibit 'Kind' nor 'List' for type names, Markus Armbruster, 2021/04/30
- [PULL 10/25] qapi/expr.py: add type hint annotations, Markus Armbruster, 2021/04/30
- [PULL 09/25] qapi/expr.py: Modify check_keys to accept any Collection, Markus Armbruster, 2021/04/30
- [PULL 01/25] qapi/expr: Comment cleanup, Markus Armbruster, 2021/04/30
- [PULL 16/25] qapi/expr.py: Use tuples instead of lists for static data, Markus Armbruster, 2021/04/30
- [PULL 05/25] qapi/expr.py: Add assertion for union type 'check_dict', Markus Armbruster, 2021/04/30
- [PULL 25/25] qapi/error.py: enable mypy checks, Markus Armbruster, 2021/04/30
- [PULL 19/25] qapi/error: Use Python3-style super(), Markus Armbruster, 2021/04/30
- [PULL 23/25] qapi/error.py: enable pylint checks, Markus Armbruster, 2021/04/30
- [PULL 20/25] qapi/error: Make QAPISourceError 'col' parameter optional, Markus Armbruster, 2021/04/30
- [PULL 22/25] qapi/error.py: move QAPIParseError to parser.py,
Markus Armbruster <=
- [PULL 24/25] qapi/error: Add type hints, Markus Armbruster, 2021/04/30
- [PULL 02/25] qapi/expr.py: Remove 'info' argument from nested check_if_str, Markus Armbruster, 2021/04/30
- [PULL 07/25] qapi/expr.py: Check type of union and alternate 'data' member, Markus Armbruster, 2021/04/30
- [PULL 15/25] qapi/expr.py: Add docstrings, Markus Armbruster, 2021/04/30
- [PULL 17/25] qapi/expr: Update authorship and copyright information, Markus Armbruster, 2021/04/30
- [PULL 21/25] qapi/error: assert QAPISourceInfo is not None, Markus Armbruster, 2021/04/30
- [PULL 18/25] qapi/error: Repurpose QAPIError as an abstract base exception class, Markus Armbruster, 2021/04/30
- Re: [PULL 00/25] QAPI patches patches for 2021-04-30, Peter Maydell, 2021/04/30