]> Git Repo - qemu.git/commitdiff
python/qemu/machine: QEMUMachine: improve qmp() method
authorVladimir Sementsov-Ogievskiy <[email protected]>
Tue, 24 Aug 2021 08:38:46 +0000 (11:38 +0300)
committerHanna Reitz <[email protected]>
Wed, 1 Sep 2021 12:03:47 +0000 (14:03 +0200)
We often call qmp() with unpacking dict, like qmp('foo', **{...}).
mypy don't really like it, it thinks that passed unpacked dict is a
positional argument and complains that it type should be bool (because
second argument of qmp() is conv_keys: bool).

Allow passing dict directly, simplifying interface, and giving a way to
satisfy mypy.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Max Reitz <[email protected]>
Reviewed-by: John Snow <[email protected]>
Message-Id: <20210824083856[email protected]>
Signed-off-by: Hanna Reitz <[email protected]>
python/qemu/machine/machine.py

index 3fde73cf108e5ea76741753f815a62c68db98fa7..6ec18570d90300bec897e36d2ace99028218147e 100644 (file)
@@ -578,11 +578,21 @@ class QEMUMachine:
         return args
 
     def qmp(self, cmd: str,
-            conv_keys: bool = True,
+            args_dict: Optional[Dict[str, object]] = None,
+            conv_keys: Optional[bool] = None,
             **args: Any) -> QMPMessage:
         """
         Invoke a QMP command and return the response dict
         """
+        if args_dict is not None:
+            assert not args
+            assert conv_keys is None
+            args = args_dict
+            conv_keys = False
+
+        if conv_keys is None:
+            conv_keys = True
+
         qmp_args = self._qmp_args(conv_keys, args)
         return self._qmp.cmd(cmd, args=qmp_args)
 
This page took 0.032191 seconds and 4 git commands to generate.