qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 09/22] qapi: add match_nofail helper


From: John Snow
Subject: Re: [PATCH 09/22] qapi: add match_nofail helper
Date: Mon, 26 Apr 2021 13:48:36 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

On 4/25/21 3:54 AM, Markus Armbruster wrote:
John Snow <jsnow@redhat.com> writes:

Mypy cannot generally understand that these regex functions cannot
possibly fail. Add a _nofail helper that clarifies this for mypy.

Convention wants a blank line here.


Tooling failure.

stg pop -a
while stg push; and stg edit --sign; done

(Will fix, but not so sure about fixing the tool...)

Signed-off-by: John Snow <jsnow@redhat.com>
---
  scripts/qapi/common.py |  8 +++++++-
  scripts/qapi/main.py   |  6 ++----
  scripts/qapi/parser.py | 13 +++++++------
  3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index cbd3fd81d36..d38c1746767 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -12,7 +12,7 @@
  # See the COPYING file in the top-level directory.
import re
-from typing import Optional, Sequence
+from typing import Match, Optional, Sequence
#: Magic string that gets removed along with all space to its right.
@@ -210,3 +210,9 @@ def gen_endif(ifcond: Sequence[str]) -> str:
  #endif /* %(cond)s */
  ''', cond=ifc)
      return ret
+
+
+def match_nofail(pattern: str, string: str) -> Match[str]:
+    match = re.match(pattern, string)
+    assert match is not None
+    return match

Name it must_match()?  You choose.


If you think it reads genuinely better, sure.

I wish we could have more stating typing with less notational overhead,
but no free lunch...

[...]





reply via email to

[Prev in Thread] Current Thread [Next in Thread]