scripts/qapi/parser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
re.match(r'^ *', ...) can't fail, but mypy doesn't know that and
complains:
scripts/qapi/parser.py:444: error: Item "None" of "Match[str] | None" has no attribute "end" [union-attr]
Work around by using must_match() instead.
Fixes: 8107ba47fd78 (qapi: Add documentation format validation)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
scripts/qapi/parser.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py
index 1bb1af7051..c3cf33904e 100644
--- a/scripts/qapi/parser.py
+++ b/scripts/qapi/parser.py
@@ -441,7 +441,7 @@ def get_doc_line(self) -> Optional[str]:
self._literal_mode = True
self._literal_mode_indent = 0
elif self._literal_mode and line:
- indent = re.match(r'^ *', line).end()
+ indent = must_match(r'\s*', line).end()
if self._literal_mode_indent == 0:
self._literal_mode_indent = indent
elif indent < self._literal_mode_indent:
--
2.49.0
On 11/5/25 16:22, Markus Armbruster wrote: > re.match(r'^ *', ...) can't fail, but mypy doesn't know that and > complains: > > scripts/qapi/parser.py:444: error: Item "None" of "Match[str] | None" has no attribute "end" [union-attr] > > Work around by using must_match() instead. > > Fixes: 8107ba47fd78 (qapi: Add documentation format validation) > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > scripts/qapi/parser.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py > index 1bb1af7051..c3cf33904e 100644 > --- a/scripts/qapi/parser.py > +++ b/scripts/qapi/parser.py > @@ -441,7 +441,7 @@ def get_doc_line(self) -> Optional[str]: > self._literal_mode = True > self._literal_mode_indent = 0 > elif self._literal_mode and line: > - indent = re.match(r'^ *', line).end() > + indent = must_match(r'\s*', line).end() > if self._literal_mode_indent == 0: > self._literal_mode_indent = indent > elif indent < self._literal_mode_indent: Thanks. I'm going to queue this so that it's in the next CI run. r~
Richard Henderson <richard.henderson@linaro.org> writes: > On 11/5/25 16:22, Markus Armbruster wrote: >> re.match(r'^ *', ...) can't fail, but mypy doesn't know that and >> complains: >> scripts/qapi/parser.py:444: error: Item "None" of "Match[str] | None" has no attribute "end" [union-attr] >> Work around by using must_match() instead. >> Fixes: 8107ba47fd78 (qapi: Add documentation format validation) >> Signed-off-by: Markus Armbruster <armbru@redhat.com> >> --- >> scripts/qapi/parser.py | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py >> index 1bb1af7051..c3cf33904e 100644 >> --- a/scripts/qapi/parser.py >> +++ b/scripts/qapi/parser.py >> @@ -441,7 +441,7 @@ def get_doc_line(self) -> Optional[str]: >> self._literal_mode = True >> self._literal_mode_indent = 0 >> elif self._literal_mode and line: >> - indent = re.match(r'^ *', line).end() >> + indent = must_match(r'\s*', line).end() >> if self._literal_mode_indent == 0: >> self._literal_mode_indent = indent >> elif indent < self._literal_mode_indent: > > Thanks. I'm going to queue this so that it's in the next CI run. Yes, please!
On 05.11.25 18:22, Markus Armbruster wrote: > re.match(r'^ *', ...) can't fail, but mypy doesn't know that and > complains: > > scripts/qapi/parser.py:444: error: Item "None" of "Match[str] | None" has no attribute "end" [union-attr] > > Work around by using must_match() instead. > > Fixes: 8107ba47fd78 (qapi: Add documentation format validation) > Signed-off-by: Markus Armbruster<armbru@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> -- Best regards, Vladimir
© 2016 - 2025 Red Hat, Inc.