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...
[...]