qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Cleber Rosa <crosa@redhat.com>, John Snow <jsnow@redhat.com>,
	qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>,
	Michael Roth <mdroth@linux.vnet.ibm.com>
Subject: [PATCH 04/26] qapi/source.py: Add default arguments to QAPISourceInfo
Date: Tue, 22 Sep 2020 18:35:03 -0400	[thread overview]
Message-ID: <20200922223525.4085762-5-jsnow@redhat.com> (raw)
In-Reply-To: <20200922223525.4085762-1-jsnow@redhat.com>

The parser tries to create an object as QAPISourceInfo(None, None,
None). Add some defaults to QAPISourceInfo such that we don't need to
pass explicit as many explicit nothings.

Having the defaults nearby the code in source.py also helps remind us
that they might be unset.

Using a numerical 0 to mean "no line" is nicer to type than using None
for the same.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 scripts/qapi/parser.py | 2 +-
 scripts/qapi/source.py | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index d0f35fe03e..db4e9ae872 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -67,7 +67,7 @@ def __init__(self, fname, previously_included=None, incl_info=None):
             with open(self._fname, 'r', encoding='utf-8') as fp:
                 self.src = fp.read()
         except IOError as e:
-            raise QAPISemError(incl_info or QAPISourceInfo(None, None, None),
+            raise QAPISemError(incl_info or QAPISourceInfo(None),
                                "can't read %s file '%s': %s"
                                % ("include" if incl_info else "schema",
                                   self._fname,
diff --git a/scripts/qapi/source.py b/scripts/qapi/source.py
index ba991d798f..d1de9e36b1 100644
--- a/scripts/qapi/source.py
+++ b/scripts/qapi/source.py
@@ -30,7 +30,10 @@ def __init__(self) -> None:
 class QAPISourceInfo:
     T = TypeVar('T', bound='QAPISourceInfo')
 
-    def __init__(self: T, fname: str, line: int, parent: Optional[T]):
+    def __init__(self: T,
+                 fname: str,
+                 line: int = 0,
+                 parent: Optional[T] = None):
         self.fname = fname
         self.line = line
         self.parent = parent
@@ -53,7 +56,7 @@ def loc(self) -> str:
         if self.fname is None:
             return sys.argv[0]
         ret = self.fname
-        if self.line is not None:
+        if self.line:
             ret += ':%d' % self.line
         return ret
 
-- 
2.26.2



  parent reply	other threads:[~2020-09-22 22:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-22 22:34 [PATCH 00/26] qapi: static typing conversion, pt5 John Snow
2020-09-22 22:35 ` [PATCH 01/26] qapi/parser.py: refactor parsing routine into method John Snow
2020-09-22 22:35 ` [PATCH 02/26] qapi/parser.py: group variable declarations in __init__ John Snow
2020-09-22 22:35 ` [PATCH 03/26] qapi/parser.py: use 'with' statement for opening files John Snow
2020-09-22 22:35 ` John Snow [this message]
2020-09-22 22:35 ` [PATCH 05/26] qapi/parser.py: start source info at line 0 John Snow
2020-09-22 22:35 ` [PATCH 06/26] qapi/parser.py: raise QAPIParseError during file opening John Snow
2020-09-22 22:35 ` [PATCH 07/26] qapi/parser.py: fully remove 'null' constant John Snow
2020-09-22 22:35 ` [PATCH 08/26] qapi/parser.py: Assert lexer value is a string John Snow
2020-09-22 22:35 ` [PATCH 09/26] qapi/parser.py: assert get_expr returns object in outer loop John Snow
2020-09-22 22:35 ` [PATCH 10/26] qapi/parser.py: assert object keys are strings John Snow
2020-09-22 22:35 ` [PATCH 11/26] qapi/parser.py: Convert several methods to @classmethod John Snow
2020-09-22 22:35 ` [PATCH 12/26] qapi/parser.py: add casts to pragma checks John Snow
2020-09-22 22:35 ` [PATCH 13/26] qapi/parser.py: add type hint annotations John Snow
2020-09-22 22:35 ` [PATCH 14/26] qapi/parser.py: add docstrings John Snow
2020-09-22 22:35 ` [PATCH 15/26] qapi/parser.py: add ParsedExpression type John Snow
2020-09-22 22:35 ` [PATCH 16/26] qapi/pragma.py: Move QAPISchemaPragma into its own module John Snow
2020-09-22 22:35 ` [PATCH 17/26] qapi/pragma.py: Move pragma parsing out of parser.py John Snow
2020-09-22 22:35 ` [PATCH 18/26] qapi/parser.py: Modify _include() to use parser state John Snow
2020-09-22 22:35 ` [PATCH 19/26] qapi/parser.py: add parent argument John Snow
2020-09-22 22:35 ` [PATCH 20/26] qapi/parser.py: remove unused check_args_section arguments John Snow
2020-09-22 22:35 ` [PATCH 21/26] qapi/parser.py: QAPIDoc: convert @staticmethod to @classmethod John Snow
2020-09-22 22:35 ` [PATCH 22/26] qapi/parser.py: add type hint annotations (QAPIDoc) John Snow
2020-09-22 22:35 ` [PATCH 23/26] qapi/parser.py: enable mypy checks John Snow
2020-09-22 22:35 ` [PATCH 24/26] qapi/parser.py: remove one and two-letter variables John Snow
2020-09-22 22:35 ` [PATCH 25/26] qapi/parser.py: Silence too-few-public-methods warning John Snow
2020-09-22 22:35 ` [PATCH 26/26] qapi/parser.py: enable pylint checks John Snow
2020-09-22 22:54 ` [PATCH 00/26] qapi: static typing conversion, pt5 John Snow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200922223525.4085762-5-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=armbru@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).