qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] iotests: Fix up python style in 300


From: John Snow
Subject: Re: [PATCH] iotests: Fix up python style in 300
Date: Mon, 1 Mar 2021 11:50:18 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0

On 2/26/21 2:04 AM, Vladimir Sementsov-Ogievskiy wrote:
16.02.2021 02:21, John Snow wrote:
On 2/15/21 5:05 PM, Eric Blake wrote:
Break some long lines, and relax our type hints to be more generic to
any JSON, in order to more easily permit the additional JSON depth now
possible in migration parameters.  Detected by iotest 297.

Fixes: ca4bfec41d56
  (qemu-iotests: 300: Add test case for modifying persistence of bitmap)
Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>

Reviewed-by: John Snow <jsnow@redhat.com>

---
  tests/qemu-iotests/300 | 10 ++++++----
  1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/qemu-iotests/300 b/tests/qemu-iotests/300
index 63036f6a6e13..adb927629747 100755
--- a/tests/qemu-iotests/300
+++ b/tests/qemu-iotests/300
@@ -22,7 +22,7 @@
  import os
  import random
  import re
-from typing import Dict, List, Optional, Union
+from typing import Dict, List, Optional

  import iotests

@@ -30,7 +30,7 @@ import iotests
  # pylint: disable=wrong-import-order
  import qemu

-BlockBitmapMapping = List[Dict[str, Union[str, List[Dict[str, str]]]]]
+BlockBitmapMapping = List[Dict[str, object]]


Assuming iotest 297 didn't yap about this, I think this has the necessary power for this file and we don't have to work any harder.

If in the future you try to treat e.g. bmap['persistent'] as a particular kind of value (string? bool? int?) mypy will likely complain about that a little, saying it has no insight into the type beyond "object".

If *that* becomes annoying, you can degrade this type to use 'Any' instead of 'object' and even those checks will cease.

Probably at some future moment we'll have generated python types for QAPI structures ? :)


That's my hope, yes!

Typing the QAPI generator is something I see as a step to doing this so that we can safely work on the QAPI generator a bit more vigorously.

Marc-Andre is adding rust backends, I'd like to add either a Python or a JSON-Schema backend to help generate a fully typed SDK for us in Python.

I don't know how suitable those tools will be to use in the test suite; I suspect that every last build of QEMU from the development tree will have to possibly re-generate such a Python module.

When I get a little closer to a prototype for this I will try to announce it. In the meantime I am very fastidiously trying to strictly type the QAPI generator and move it to ./python/qemu/qapi.

--js




reply via email to

[Prev in Thread] Current Thread [Next in Thread]