[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/16] python: add mypy support to python/qemu
From: |
John Snow |
Subject: |
[PATCH v2 00/16] python: add mypy support to python/qemu |
Date: |
Tue, 2 Jun 2020 17:45:12 -0400 |
Requires: 20200602194844.15258-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.
"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 event_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 | 267 ++++++++++++++++++++--------------
python/qemu/qmp.py | 111 ++++++++++----
python/qemu/qtest.py | 54 ++++---
scripts/render_block_graph.py | 7 +-
tests/qemu-iotests/iotests.py | 11 +-
6 files changed, 285 insertions(+), 173 deletions(-)
--
2.21.3
- [PATCH v2 00/16] python: add mypy support to python/qemu,
John Snow <=
- [PATCH v2 03/16] python/qmp.py: re-absorb MonitorResponseError, John Snow, 2020/06/02
- [PATCH v2 01/16] python/qmp.py: Define common types, John Snow, 2020/06/02
- [PATCH v2 02/16] iotests.py: use qemu.qmp type aliases, John Snow, 2020/06/02
- [PATCH v2 04/16] python/qmp.py: Do not return None from cmd_obj, John Snow, 2020/06/02
- [PATCH v2 05/16] python/qmp.py: add casts to JSON deserialization, John Snow, 2020/06/02
- [PATCH v2 06/16] python/qmp.py: add QMPProtocolError, John Snow, 2020/06/02
- [PATCH v2 09/16] python/machine.py: Don't modify state in _base_args(), John Snow, 2020/06/02
- [PATCH v2 07/16] python/machine.py: Fix monitor address typing, John Snow, 2020/06/02