[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 4/7] qapi/expr: add typing workaround for AbstractSet
From: |
John Snow |
Subject: |
[PATCH v3 4/7] qapi/expr: add typing workaround for AbstractSet |
Date: |
Thu, 9 Feb 2023 13:47:55 -0500 |
mypy can only narrow the type of `Mapping[str, ...].keys() & Set[str]`
to `AbstractSet[str]` and not a `Set[str]`. As a result, if the type of
an expression is changed to a Mapping[], mypy is unsure if the .pop() is
safe.
A forthcoming commit does exactly that, so wrap the expression in a
set() constructor to force the intermediate expression to be resolved as
a mutable type.
Signed-off-by: John Snow <jsnow@redhat.com>
---
scripts/qapi/expr.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
index b56353bdf84..af802367eff 100644
--- a/scripts/qapi/expr.py
+++ b/scripts/qapi/expr.py
@@ -622,8 +622,8 @@ def check_expr(expr_elem: _JSONObject) -> None:
if 'include' in expr:
return
- metas = expr.keys() & {'enum', 'struct', 'union', 'alternate',
- 'command', 'event'}
+ metas = set(expr.keys() & {
+ 'enum', 'struct', 'union', 'alternate', 'command', 'event'})
if len(metas) != 1:
raise QAPISemError(
info,
--
2.39.0