summaryrefslogtreecommitdiff
path: root/python/qemu/aqmp/__init__.py
blob: 05f467c1415360169e9c66c8d27ee0abe6517617 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
"""
QEMU Monitor Protocol (QMP) development library & tooling.

This package provides a fairly low-level class for communicating
asynchronously with QMP protocol servers, as implemented by QEMU, the
QEMU Guest Agent, and the QEMU Storage Daemon.

`QMPClient` provides the main functionality of this package. All errors
raised by this library derive from `AQMPError`, see `aqmp.error` for
additional detail. See `aqmp.events` for an in-depth tutorial on
managing QMP events.
"""

# Copyright (C) 2020, 2021 John Snow for Red Hat, Inc.
#
# Authors:
#  John Snow <jsnow@redhat.com>
#
# Based on earlier work by Luiz Capitulino <lcapitulino@redhat.com>.
#
# This work is licensed under the terms of the GNU GPL, version 2.  See
# the COPYING file in the top-level directory.

import logging

from .error import AQMPError
from .events import EventListener
from .message import Message
from .protocol import (
    ConnectError,
    Runstate,
    SocketAddrT,
    StateError,
)
from .qmp_client import ExecInterruptedError, ExecuteError, QMPClient


# Suppress logging unless an application engages it.
logging.getLogger('qemu.aqmp').addHandler(logging.NullHandler())


# The order of these fields impact the Sphinx documentation order.
__all__ = (
    # Classes, most to least important
    'QMPClient',
    'Message',
    'EventListener',
    'Runstate',

    # Exceptions, most generic to most explicit
    'AQMPError',
    'StateError',
    'ConnectError',
    'ExecuteError',
    'ExecInterruptedError',

    # Type aliases
    'SocketAddrT',
)