From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
qemu-block@nongnu.org, John Snow <jsnow@redhat.com>,
Max Reitz <mreitz@redhat.com>, Cleber Rosa <crosa@redhat.com>,
philmd@redhat.com
Subject: [PATCH v5 00/16] python: add mypy support to python/qemu
Date: Fri, 10 Jul 2020 01:22:04 -0400 [thread overview]
Message-ID: <20200710052220.3306-1-jsnow@redhat.com> (raw)
Based-on: 20200710050649.32434-1-jsnow@redhat.com
This series modifies the python/qemu library to comply with mypy --strict,
pylint, and flake8.
This requires my "refactor shutdown" patch as a pre-requisite.
v5: (Things unchanged omitted)
003/16:[----] [-C] 'python/qmp.py: re-absorb MonitorResponseError'
009/16:[----] [-C] 'python/machine.py: Don't modify state in _base_args()'
012/16:[0004] [FC] 'python/machine.py: Add _qmp access shim'
013/16:[0002] [FC] 'python/machine.py: fix _popen access'
016/16:[0004] [FC] 'python/qemu: Add mypy type annotations'
-- Rebased on "refactor shutdown" v5
12: Dependent changes from more extensive shutdown() refactoring
13: Dependent changes; one less ._popen access.
16: Dependent changes; _post_shutdown return annotation fell down here.
wait annotation got bumped up to the previous series.
v4:
- Rebased on "refactor shutdown" v4
- Fixed _qmp access for scripts that disable QMP
v3:
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.
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 | 296 ++++++++++++++++++++--------------
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, 301 insertions(+), 185 deletions(-)
--
2.21.3
next reply other threads:[~2020-07-10 5:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-10 5:22 John Snow [this message]
2020-07-10 5:22 ` [PATCH v5 01/16] python/qmp.py: Define common types John Snow
2020-07-10 5:22 ` [PATCH v5 02/16] iotests.py: use qemu.qmp type aliases John Snow
2020-07-10 5:22 ` [PATCH v5 03/16] python/qmp.py: re-absorb MonitorResponseError John Snow
2020-07-10 5:22 ` [PATCH v5 04/16] python/qmp.py: Do not return None from cmd_obj John Snow
2020-07-10 5:22 ` [PATCH v5 05/16] python/qmp.py: add casts to JSON deserialization John Snow
2020-07-10 5:22 ` [PATCH v5 06/16] python/qmp.py: add QMPProtocolError John Snow
2020-07-10 5:22 ` [PATCH v5 07/16] python/machine.py: Fix monitor address typing John Snow
2020-07-10 5:22 ` [PATCH v5 08/16] python/machine.py: reorder __init__ John Snow
2020-07-10 5:22 ` [PATCH v5 09/16] python/machine.py: Don't modify state in _base_args() John Snow
2020-07-10 5:22 ` [PATCH v5 10/16] python/machine.py: Handle None events in events_wait John Snow
2020-07-10 5:22 ` [PATCH v5 11/16] python/machine.py: use qmp.command John Snow
2020-07-10 5:22 ` [PATCH v5 12/16] python/machine.py: Add _qmp access shim John Snow
2020-07-13 9:37 ` Philippe Mathieu-Daudé
2020-07-10 5:22 ` [PATCH v5 13/16] python/machine.py: fix _popen access John Snow
2020-07-13 9:31 ` Philippe Mathieu-Daudé
2020-07-10 5:22 ` [PATCH v5 14/16] python/qemu: make 'args' style arguments immutable John Snow
2020-07-10 5:22 ` [PATCH v5 15/16] iotests.py: Adjust HMP kwargs typing John Snow
2020-07-10 5:22 ` [PATCH v5 16/16] python/qemu: Add mypy type annotations John Snow
2020-07-13 9:36 ` Philippe Mathieu-Daudé
2020-07-14 19:25 ` [PATCH v5 00/16] python: add mypy support to python/qemu Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200710052220.3306-1-jsnow@redhat.com \
--to=jsnow@redhat.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=philmd@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.