On 6/7/21 4:06 PM, John Snow wrote:
> Based-on: <20210603003719.1321369-1-jsnow@redhat.com>
> Based-on: <20210604155532.1499282-1-jsnow@redhat.com>
> CI: https://gitlab.com/jsnow/qemu/-/pipelines/316425665
> GitLab: https://gitlab.com/jsnow/qemu/-/commits/python-package-qmp-shell
>
> This series follows:
>
> 1. [PATCH v3 00/19] Python: move /scripts/qmp/qom* to /python/qemu/qmp/qom*
> 2. [PATCH 00/11] python: move /scripts/qmp/gemu-ga-client.py to qemu.qmp package
>
> and finishes moving stuff in ./scripts/qmp/ into ./python/qemu/qmp/*.
>
> The benefits of this are:
>
> 1. Improved protection against accidental regression in qmp-using
> scripts as we refactor QMP to introduce Async QMP and OOB support
> 2. Availability of common qmp command-line tools as part of the qemu.qmp
> package
> 3. No more sys.path hacking for qemu.qmp-using utilities
> 4. Newly 100% clean linting baseline to use as an aid in reviewing
> future patches.
>
> This series is largely minor refactors, linting and typing cleanups,
> followed by the move into the python packaging folder at the very end of
> the series.
>
> John Snow (42):
> scripts/qmp-shell: apply isort rules
> scripts/qmp-shell: Apply flake8 rules
> scripts/qmp-shell: fix show_banner signature
> scripts/qmp-shell: fix exception handling
> scripts/qmp-shell: fix connect method signature
> scripts/qmp-shell: remove shadowed variable from _print()
> scripts/qmp-shell: use @classmethod where appropriate
> scripts/qmp-shell: Use python3-style super()
> scripts/qmp-shell: declare verbose in __init__
> scripts/qmp-shell: use triple-double-quote docstring style
> scripts/qmp-shell: ignore visit_Name name
> scripts/qmp-shell: make QMPCompleter returns explicit
> scripts/qmp-shell: rename one and two-letter variables
> scripts/qmp-shell: fix shell history exception handling
> scripts/qmp-shell: remove if-raise-else patterns
> scripts/qmp-shell: use isinstance() instead of type()
> scripts/qmp-shell: use argparse
> scripts/qmp-shell: Add pretty attribute to HMP shell
> scripts/qmp-shell: Make verbose a public attribute
> scripts/qmp-shell: move get_prompt() to prompt property
> scripts/qmp-shell: remove prompt argument from read_exec_command
> scripts/qmp-shell: move the REPL functionality into QMPShell
> scripts/qmp-shell: Fix "FuzzyJSON" parser
> scripts/qmp-shell: refactor QMPCompleter
> scripts/qmp-shell: initialize completer early
> python/qmp: add QMPObject type alias
> scripts/qmp-shell: add mypy types
> scripts/qmp-shell: Accept SocketAddrT instead of string
> scripts/qmp-shell: unprivatize 'pretty' property
> python/qmp: return generic type from context manager
> scripts/qmp-shell: Use context manager instead of atexit
> scripts/qmp-shell: use logging to show warnings
> scripts/qmp-shell: remove TODO
> scripts/qmp-shell: Fix empty-transaction invocation
> scripts/qmp-shell: Remove too-broad-exception
> scripts/qmp-shell: convert usage comment to docstring
> scripts/qmp-shell: remove double-underscores
> scripts/qmp-shell: make QMPShellError inherit QMPError
> scripts/qmp-shell: add docstrings
> scripts/qmp-shell: move to python/qemu/qmp/qmp_shell.py
> python: add qmp-shell entry point
> scripts/qmp-shell: add redirection shim
>
> python/qemu/qmp/__init__.py | 8 +-
> python/qemu/qmp/qmp_shell.py | 535 +++++++++++++++++++++++++++++++++++
> python/setup.cfg | 1 +
> scripts/qmp/qmp-shell | 437 +---------------------------
> 4 files changed, 546 insertions(+), 435 deletions(-)
> create mode 100644 python/qemu/qmp/qmp_shell.py
>
Preliminarily staged to my Python branch:
https://gitlab.com/jsnow/qemu/-/tree/python
CI: https://gitlab.com/jsnow/qemu/-/pipelines/320710762
I intend to send the PR collecting these 72 cleanup patches this Friday.
--js