__init__.py (1762B)
1""" 2QEMU Monitor Protocol (QMP) development library & tooling. 3 4This package provides a fairly low-level class for communicating 5asynchronously with QMP protocol servers, as implemented by QEMU, the 6QEMU Guest Agent, and the QEMU Storage Daemon. 7 8`QMPClient` provides the main functionality of this package. All errors 9raised by this library dervive from `AQMPError`, see `aqmp.error` for 10additional detail. See `aqmp.events` for an in-depth tutorial on 11managing QMP events. 12""" 13 14# Copyright (C) 2020, 2021 John Snow for Red Hat, Inc. 15# 16# Authors: 17# John Snow <jsnow@redhat.com> 18# 19# Based on earlier work by Luiz Capitulino <lcapitulino@redhat.com>. 20# 21# This work is licensed under the terms of the GNU GPL, version 2. See 22# the COPYING file in the top-level directory. 23 24import logging 25import warnings 26 27from .error import AQMPError 28from .events import EventListener 29from .message import Message 30from .protocol import ConnectError, Runstate, StateError 31from .qmp_client import ExecInterruptedError, ExecuteError, QMPClient 32 33 34_WMSG = """ 35 36The Asynchronous QMP library is currently in development and its API 37should be considered highly fluid and subject to change. It should 38not be used by any other scripts checked into the QEMU tree. 39 40Proceed with caution! 41""" 42 43warnings.warn(_WMSG, FutureWarning) 44 45# Suppress logging unless an application engages it. 46logging.getLogger('qemu.aqmp').addHandler(logging.NullHandler()) 47 48 49# The order of these fields impact the Sphinx documentation order. 50__all__ = ( 51 # Classes, most to least important 52 'QMPClient', 53 'Message', 54 'EventListener', 55 'Runstate', 56 57 # Exceptions, most generic to most explicit 58 'AQMPError', 59 'StateError', 60 'ConnectError', 61 'ExecuteError', 62 'ExecInterruptedError', 63)