On 4/25/21 3:54 AM, Markus Armbruster wrote:
John Snow <js...@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 <js...@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