qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/16] python: add mypy support to python/qemu
@ 2020-06-04 20:22 John Snow
  2020-06-04 20:22 ` [PATCH v3 01/16] python/qmp.py: Define common types John Snow
                   ` (17 more replies)
  0 siblings, 18 replies; 34+ messages in thread
From: John Snow @ 2020-06-04 20:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Eduardo Habkost, qemu-block, John Snow, Max Reitz,
	Cleber Rosa, philmd

Based-on: 20200604195252.20739-1-jsnow@redhat.com

This series is extracted from my larger series that attempted to bundle
our python module as an installable module. These fixes don't require that,
so they are being sent first as I think there's less up for debate in here.

This requires my "refactor shutdown" patch as a pre-requisite.

v3:
001/16:[----] [--] 'python/qmp.py: Define common types'
002/16:[----] [--] 'iotests.py: use qemu.qmp type aliases'
003/16:[----] [--] 'python/qmp.py: re-absorb MonitorResponseError'
004/16:[----] [--] 'python/qmp.py: Do not return None from cmd_obj'
005/16:[0002] [FC] 'python/qmp.py: add casts to JSON deserialization'
006/16:[----] [--] 'python/qmp.py: add QMPProtocolError'
007/16:[----] [-C] 'python/machine.py: Fix monitor address typing'
008/16:[----] [--] 'python/machine.py: reorder __init__'
009/16:[----] [-C] 'python/machine.py: Don't modify state in _base_args()'
010/16:[down] 'python/machine.py: Handle None events in events_wait'
011/16:[----] [--] 'python/machine.py: use qmp.command'
012/16:[----] [--] 'python/machine.py: Add _qmp access shim'
013/16:[----] [--] 'python/machine.py: fix _popen access'
014/16:[----] [--] 'python/qemu: make 'args' style arguments immutable'
015/16:[----] [--] 'iotests.py: Adjust HMP kwargs typing'
016/16:[0007] [FC] 'python/qemu: Add mypy type annotations'

005: Removed a cast, per Kevin Wolf's tip
010: Renamed with correct function name;
     Rewrote docstring and added comments
016: Use SocketAddrT instead of Union[Tuple[str,str],str]

"v2":
- This version supports iotests 297
- Many patches merged by Phil are removed
- Replaces iotests.py type aliases with centralized ones
  (See patch 2)
- Imports etc are reworked to use the non-installable
  package layout instead. (Mostly important for patch 3)

Testing this out:
- You'll need Python3.6+
- I encourage you to use a virtual environment!
- You don't necessarily need these exact versions, but I didn't test the
  lower bounds, use older versions at your peril:
  - pylint==2.5.0
  - mypy=0.770
  - flake8=3.7.8

> cd ~/src/qemu/python/
> flake8 qemu
> mypy --strict qemu
> cd qemu
> pylint *.py

These should all 100% pass.

---

Open RFC: What's the right way to hook this into make check to prevent
regressions?

John Snow (16):
  python/qmp.py: Define common types
  iotests.py: use qemu.qmp type aliases
  python/qmp.py: re-absorb MonitorResponseError
  python/qmp.py: Do not return None from cmd_obj
  python/qmp.py: add casts to JSON deserialization
  python/qmp.py: add QMPProtocolError
  python/machine.py: Fix monitor address typing
  python/machine.py: reorder __init__
  python/machine.py: Don't modify state in _base_args()
  python/machine.py: Handle None events in events_wait
  python/machine.py: use qmp.command
  python/machine.py: Add _qmp access shim
  python/machine.py: fix _popen access
  python/qemu: make 'args' style arguments immutable
  iotests.py: Adjust HMP kwargs typing
  python/qemu: Add mypy type annotations

 python/qemu/accel.py          |   8 +-
 python/qemu/machine.py        | 286 ++++++++++++++++++++--------------
 python/qemu/qmp.py            | 111 +++++++++----
 python/qemu/qtest.py          |  53 ++++---
 scripts/render_block_graph.py |   7 +-
 tests/qemu-iotests/iotests.py |  11 +-
 6 files changed, 298 insertions(+), 178 deletions(-)

-- 
2.21.3



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2020-06-26 20:36 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-04 20:22 [PATCH v3 00/16] python: add mypy support to python/qemu John Snow
2020-06-04 20:22 ` [PATCH v3 01/16] python/qmp.py: Define common types John Snow
2020-06-04 20:22 ` [PATCH v3 02/16] iotests.py: use qemu.qmp type aliases John Snow
2020-06-04 20:22 ` [PATCH v3 03/16] python/qmp.py: re-absorb MonitorResponseError John Snow
2020-06-04 20:22 ` [PATCH v3 04/16] python/qmp.py: Do not return None from cmd_obj John Snow
2020-06-04 20:22 ` [PATCH v3 05/16] python/qmp.py: add casts to JSON deserialization John Snow
2020-06-04 20:22 ` [PATCH v3 06/16] python/qmp.py: add QMPProtocolError John Snow
2020-06-04 20:22 ` [PATCH v3 07/16] python/machine.py: Fix monitor address typing John Snow
2020-06-04 20:22 ` [PATCH v3 08/16] python/machine.py: reorder __init__ John Snow
2020-06-04 20:22 ` [PATCH v3 09/16] python/machine.py: Don't modify state in _base_args() John Snow
2020-06-04 20:22 ` [PATCH v3 10/16] python/machine.py: Handle None events in events_wait John Snow
2020-06-04 20:22 ` [PATCH v3 11/16] python/machine.py: use qmp.command John Snow
2020-06-04 20:22 ` [PATCH v3 12/16] python/machine.py: Add _qmp access shim John Snow
2020-06-20  8:14   ` Philippe Mathieu-Daudé
2020-06-20  8:20     ` Philippe Mathieu-Daudé
2020-06-22 10:23       ` Kevin Wolf
2020-06-22 11:32         ` Philippe Mathieu-Daudé
2020-06-26 20:34           ` John Snow
2020-06-22 14:24         ` John Snow
2020-06-04 20:22 ` [PATCH v3 13/16] python/machine.py: fix _popen access John Snow
2020-06-04 20:22 ` [PATCH v3 14/16] python/qemu: make 'args' style arguments immutable John Snow
2020-06-04 20:22 ` [PATCH v3 15/16] iotests.py: Adjust HMP kwargs typing John Snow
2020-06-04 20:22 ` [PATCH v3 16/16] python/qemu: Add mypy type annotations John Snow
2020-06-05  9:26 ` [PATCH v3 00/16] python: add mypy support to python/qemu Kevin Wolf
2020-06-08 15:19   ` John Snow
2020-06-08 15:33     ` Kevin Wolf
2020-06-08 17:41       ` Philippe Mathieu-Daudé
2020-06-09  8:58         ` Markus Armbruster
2020-06-16 17:58           ` applying mailing list review tags (was: Re: [PATCH v3 00/16] python: add mypy support to python/qemu) John Snow
2020-06-17  3:33             ` Philippe Mathieu-Daudé
2020-06-17 15:25               ` [PATCH v3 00/16] python: add mypy support to python/qemu John Snow
2020-06-17 15:04             ` applying mailing list review tags (was: Re: [PATCH v3 00/16] python: add mypy support to python/qemu) Paolo Bonzini
2020-06-17 17:18 ` [PATCH v3 00/16] python: add mypy support to python/qemu Philippe Mathieu-Daudé
2020-06-17 17:18   ` John Snow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).