Message ID | 20201006235817.3280413-1-jsnow@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | python/qemu: strictly typed mypy conversion, pt2 | expand |
On 10/6/20 7:57 PM, John Snow wrote: > Continuing where I left off prior to the 5.1 release, this series > touches up a few odds and ends and introduces mypy hints. > > What's new: > > - Using isort to solidify import order > - Patches adding small corrections and typing for console_socket > - A few error class changes for qmp.py > > Like my QAPI series, this requires: > > - pylint >= 2.6.0 > - flake8 >= 3.8.0 > - mypy >= 0.770 > - isort >= 4.3.0 (Presumably...) > > What this series doesn't do: > > - Create a proper python package > - Establish a CI test to prevent regressions > - Fix the docstring conventions in the library > > Those are coming soon! (and in the order mentioned.) > > Changes against the last version of this series that was sent prior to > 5.1: > > 001/20:[down] 'python/qemu: use isort to lay out imports' > 002/20:[0005] [FC] 'python/machine.py: Fix monitor address typing' > 003/20:[0015] [FC] 'python/machine.py: reorder __init__' > 004/20:[0009] [FC] 'python/machine.py: Don't modify state in _base_args()' > 005/20:[0002] [FC] 'python/machine.py: Handle None events in events_wait' > 006/20:[0006] [FC] 'python/machine.py: use qmp.command' > 007/20:[----] [-C] 'python/machine.py: Add _qmp access shim' > 008/20:[----] [-C] 'python/machine.py: fix _popen access' > 009/20:[0006] [FC] 'python/qemu: make 'args' style arguments immutable' > 010/20:[----] [--] 'iotests.py: Adjust HMP kwargs typing' > 011/20:[0010] [FC] 'python/qemu: Add mypy type annotations' > 012/20:[down] 'python/qemu/console_socket.py: Correct type of recv()' > 013/20:[down] 'python/qemu/console_socket.py: fix typing of settimeout' > 014/20:[down] 'python/qemu/console_socket.py: Clarify type of drain_thread' > 015/20:[down] 'python/qemu/console_socket.py: Add type hint annotations' > 016/20:[down] 'python/console_socket: avoid encoding to/from string' > 017/20:[down] 'python/qemu/qmp.py: Preserve error context on re-raise' > 018/20:[down] 'python/qemu/qmp.py: re-raise OSError when encountered' > 019/20:[down] 'python/qemu/qmp.py: Straighten out exception hierarchy' > 020/20:[down] 'python: add mypy config' > > 02: import order differences, context changes from console_socket.py > 03: (minor) changes for console_socket, RB-s dropped just in case > 04: import order differences > 05: import order differences > 06: import order differences > 09: import order differences > 11: import order differences, small changes for console_socket > > John Snow (20): > python/qemu: use isort to lay out imports > 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/console_socket.py: Correct type of recv() > python/qemu/console_socket.py: fix typing of settimeout > python/qemu/console_socket.py: Clarify type of drain_thread > python/qemu/console_socket.py: Add type hint annotations > python/console_socket: avoid encoding to/from string > python/qemu/qmp.py: Preserve error context on re-raise > python/qemu/qmp.py: re-raise OSError when encountered > python/qemu/qmp.py: Straighten out exception hierarchy > python: add mypy config > > python/mypy.ini | 4 + > python/qemu/.isort.cfg | 7 + > python/qemu/accel.py | 9 +- > python/qemu/console_socket.py | 54 +++--- > python/qemu/machine.py | 306 +++++++++++++++++++++------------- > python/qemu/qmp.py | 114 ++++++++----- > python/qemu/qtest.py | 55 +++--- > tests/qemu-iotests/iotests.py | 2 +- > 8 files changed, 331 insertions(+), 220 deletions(-) > create mode 100644 python/mypy.ini > create mode 100644 python/qemu/.isort.cfg > Thanks, I am staging patches 1-17 -- alongside the Python maintainers patch I have been kicking around -- to my python branch. Cleaning up the error classes in 18-19 is looking more fiddly, so I'm spinning it out into a new small series for better review. https://gitlab.com/jsnow/qemu.git python https://gitlab.com/jsnow/qemu/-/tree/python --js