Re: [PATCH v2 23/25] python: remove the old QMP package
On Wed, Dec 15, 2021 at 02:39:37PM -0500, John Snow wrote: > Thank you for your service! > > Signed-off-by: John Snow > --- > python/PACKAGE.rst | 4 +- > python/README.rst | 2 +- > python/qemu/qmp/README.rst | 9 - > python/qemu/qmp/__init__.py | 396 > python/qemu/qmp/py.typed| 0 > python/setup.cfg| 3 +- > 6 files changed, 4 insertions(+), 410 deletions(-) > delete mode 100644 python/qemu/qmp/README.rst > delete mode 100644 python/qemu/qmp/__init__.py > delete mode 100644 python/qemu/qmp/py.typed > > diff --git a/python/PACKAGE.rst b/python/PACKAGE.rst > index b0b86cc4c3..ddfa9ba3f5 100644 > --- a/python/PACKAGE.rst > +++ b/python/PACKAGE.rst > @@ -8,11 +8,11 @@ to change at any time. > Usage > - > > -The ``qemu.qmp`` subpackage provides a library for communicating with > +The ``qemu.aqmp`` subpackage provides a library for communicating with > QMP servers. The ``qemu.machine`` subpackage offers rudimentary > facilities for launching and managing QEMU processes. Refer to each > package's documentation > -(``>>> help(qemu.qmp)``, ``>>> help(qemu.machine)``) > +(``>>> help(qemu.aqmp)``, ``>>> help(qemu.machine)``) > for more information. > > Contributing > diff --git a/python/README.rst b/python/README.rst > index fcf74f69ea..eb5213337d 100644 > --- a/python/README.rst > +++ b/python/README.rst > @@ -3,7 +3,7 @@ QEMU Python Tooling > > This directory houses Python tooling used by the QEMU project to build, > configure, and test QEMU. It is organized by namespace (``qemu``), and > -then by package (e.g. ``qemu/machine``, ``qemu/qmp``, etc). > +then by package (e.g. ``qemu/machine``, ``qemu/aqmp``, etc). > > ``setup.py`` is used by ``pip`` to install this tooling to the current > environment. ``setup.cfg`` provides the packaging configuration used by > diff --git a/python/qemu/qmp/README.rst b/python/qemu/qmp/README.rst > deleted file mode 100644 > index 5bfb82535f..00 > --- a/python/qemu/qmp/README.rst > +++ /dev/null > @@ -1,9 +0,0 @@ > -qemu.qmp package > - > - > -This package provides a library used for connecting to and communicating > -with QMP servers. It is used extensively by iotests, vm tests, > -avocado tests, and other utilities in the ./scripts directory. It is > -not a fully-fledged SDK and is subject to change at any time. > - > -See the documentation in ``__init__.py`` for more information. > diff --git a/python/qemu/qmp/__init__.py b/python/qemu/qmp/__init__.py > deleted file mode 100644 > index 4e08641154..00 > --- a/python/qemu/qmp/__init__.py > +++ /dev/null > @@ -1,396 +0,0 @@ > -""" > -QEMU Monitor Protocol (QMP) development library & tooling. > - > -This package provides a fairly low-level class for communicating to QMP > -protocol servers, as implemented by QEMU, the QEMU Guest Agent, and the > -QEMU Storage Daemon. This library is not intended for production use. > - > -`QEMUMonitorProtocol` is the primary class of interest, and all errors > -raised derive from `QMPError`. > -""" > - > -# Copyright (C) 2009, 2010 Red Hat Inc. > -# > -# Authors: > -# Luiz Capitulino > -# > -# This work is licensed under the terms of the GNU GPL, version 2. See > -# the COPYING file in the top-level directory. > - > -import errno > -import json > -import logging > -import socket > -import struct > -from types import TracebackType > -from typing import ( > -Any, > -Dict, > -List, > -Optional, > -TextIO, > -Tuple, > -Type, > -TypeVar, > -Union, > -cast, > -) > - > - > -#: QMPMessage is an entire QMP message of any kind. > -QMPMessage = Dict[str, Any] > - > -#: QMPReturnValue is the 'return' value of a command. > -QMPReturnValue = object > - > -#: QMPObject is any object in a QMP message. > -QMPObject = Dict[str, object] > - > -# QMPMessage can be outgoing commands or incoming events/returns. > -# QMPReturnValue is usually a dict/json object, but due to QAPI's > -# 'returns-whitelist', it can actually be anything. > -# > -# {'return': {}} is a QMPMessage, > -# {} is the QMPReturnValue. > - > - > -InternetAddrT = Tuple[str, int] > -UnixAddrT = str > -SocketAddrT = Union[InternetAddrT, UnixAddrT] > - > - > -class QMPError(Exception): > -""" > -QMP base exception > -""" > - > - > -class QMPConnectError(QMPError): > -""" > -QMP connection exception > -""" > - > - > -class QMPCapabilitiesError(QMPError): > -""" > -QMP negotiate capabilities exception > -""" > - > - > -class QMPTimeoutError(QMPError): > -""" > -QMP timeout exception > -""" > - > - > -class QMPProtocolError(QMPError): > -""" > -QMP protocol error; unexpected response > -""" > - > - > -class QMPResponseError(QMPError): > -""" > -Represents erroneous QMP monitor reply > -""" > -def __init__(self, reply: QMPMessage): > -try: > -desc = reply['error']['desc'] > -
Re: [PATCH v2 23/25] python: remove the old QMP package
15.12.2021 22:39, John Snow wrote: Thank you for your service! Signed-off-by: John Snow Reviewed-by: Vladimir Sementsov-Ogievskiy -- Best regards, Vladimir
[PATCH v2 23/25] python: remove the old QMP package
Thank you for your service! Signed-off-by: John Snow --- python/PACKAGE.rst | 4 +- python/README.rst | 2 +- python/qemu/qmp/README.rst | 9 - python/qemu/qmp/__init__.py | 396 python/qemu/qmp/py.typed| 0 python/setup.cfg| 3 +- 6 files changed, 4 insertions(+), 410 deletions(-) delete mode 100644 python/qemu/qmp/README.rst delete mode 100644 python/qemu/qmp/__init__.py delete mode 100644 python/qemu/qmp/py.typed diff --git a/python/PACKAGE.rst b/python/PACKAGE.rst index b0b86cc4c3..ddfa9ba3f5 100644 --- a/python/PACKAGE.rst +++ b/python/PACKAGE.rst @@ -8,11 +8,11 @@ to change at any time. Usage - -The ``qemu.qmp`` subpackage provides a library for communicating with +The ``qemu.aqmp`` subpackage provides a library for communicating with QMP servers. The ``qemu.machine`` subpackage offers rudimentary facilities for launching and managing QEMU processes. Refer to each package's documentation -(``>>> help(qemu.qmp)``, ``>>> help(qemu.machine)``) +(``>>> help(qemu.aqmp)``, ``>>> help(qemu.machine)``) for more information. Contributing diff --git a/python/README.rst b/python/README.rst index fcf74f69ea..eb5213337d 100644 --- a/python/README.rst +++ b/python/README.rst @@ -3,7 +3,7 @@ QEMU Python Tooling This directory houses Python tooling used by the QEMU project to build, configure, and test QEMU. It is organized by namespace (``qemu``), and -then by package (e.g. ``qemu/machine``, ``qemu/qmp``, etc). +then by package (e.g. ``qemu/machine``, ``qemu/aqmp``, etc). ``setup.py`` is used by ``pip`` to install this tooling to the current environment. ``setup.cfg`` provides the packaging configuration used by diff --git a/python/qemu/qmp/README.rst b/python/qemu/qmp/README.rst deleted file mode 100644 index 5bfb82535f..00 --- a/python/qemu/qmp/README.rst +++ /dev/null @@ -1,9 +0,0 @@ -qemu.qmp package - - -This package provides a library used for connecting to and communicating -with QMP servers. It is used extensively by iotests, vm tests, -avocado tests, and other utilities in the ./scripts directory. It is -not a fully-fledged SDK and is subject to change at any time. - -See the documentation in ``__init__.py`` for more information. diff --git a/python/qemu/qmp/__init__.py b/python/qemu/qmp/__init__.py deleted file mode 100644 index 4e08641154..00 --- a/python/qemu/qmp/__init__.py +++ /dev/null @@ -1,396 +0,0 @@ -""" -QEMU Monitor Protocol (QMP) development library & tooling. - -This package provides a fairly low-level class for communicating to QMP -protocol servers, as implemented by QEMU, the QEMU Guest Agent, and the -QEMU Storage Daemon. This library is not intended for production use. - -`QEMUMonitorProtocol` is the primary class of interest, and all errors -raised derive from `QMPError`. -""" - -# Copyright (C) 2009, 2010 Red Hat Inc. -# -# Authors: -# Luiz Capitulino -# -# This work is licensed under the terms of the GNU GPL, version 2. See -# the COPYING file in the top-level directory. - -import errno -import json -import logging -import socket -import struct -from types import TracebackType -from typing import ( -Any, -Dict, -List, -Optional, -TextIO, -Tuple, -Type, -TypeVar, -Union, -cast, -) - - -#: QMPMessage is an entire QMP message of any kind. -QMPMessage = Dict[str, Any] - -#: QMPReturnValue is the 'return' value of a command. -QMPReturnValue = object - -#: QMPObject is any object in a QMP message. -QMPObject = Dict[str, object] - -# QMPMessage can be outgoing commands or incoming events/returns. -# QMPReturnValue is usually a dict/json object, but due to QAPI's -# 'returns-whitelist', it can actually be anything. -# -# {'return': {}} is a QMPMessage, -# {} is the QMPReturnValue. - - -InternetAddrT = Tuple[str, int] -UnixAddrT = str -SocketAddrT = Union[InternetAddrT, UnixAddrT] - - -class QMPError(Exception): -""" -QMP base exception -""" - - -class QMPConnectError(QMPError): -""" -QMP connection exception -""" - - -class QMPCapabilitiesError(QMPError): -""" -QMP negotiate capabilities exception -""" - - -class QMPTimeoutError(QMPError): -""" -QMP timeout exception -""" - - -class QMPProtocolError(QMPError): -""" -QMP protocol error; unexpected response -""" - - -class QMPResponseError(QMPError): -""" -Represents erroneous QMP monitor reply -""" -def __init__(self, reply: QMPMessage): -try: -desc = reply['error']['desc'] -except KeyError: -desc = reply -super().__init__(desc) -self.reply = reply - - -class QEMUMonitorProtocol: -""" -Provide an API to connect to QEMU via QEMU Monitor Protocol (QMP) and then -allow to handle commands and events. -""" - -#: Logger object for debugging messages -logger = logging.getLogger('QMP') - -def __init__(self,