summary refs log tree commit diff stats
path: root/python/qemu/qmp
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2022-07-22 15:42:23 -0400
committerJohn Snow <jsnow@redhat.com>2025-09-15 14:36:01 -0400
commitcb0e43804038e47bbaf0179ce67df678ec13a392 (patch)
tree8b1d205a4d54c5af2a79f4cdb75f332af272fcb9 /python/qemu/qmp
parent2d26741fc5170e51621eb365a34460fadb5f969e (diff)
downloadfocaccia-qemu-cb0e43804038e47bbaf0179ce67df678ec13a392.tar.gz
focaccia-qemu-cb0e43804038e47bbaf0179ce67df678ec13a392.zip
python: backport 'EventListener: add __repr__ method'
When the object is not stateful, this repr method prints what you'd
expect. In cases where there are pending events, the output is augmented
to illustrate that.

The object itself has no idea if it's "active" or not, so it cannot
convey that information.

Signed-off-by: John Snow <jsnow@redhat.com>
cherry picked from commit python-qemu-qmp@8a6f2e136dae395fec8aa5fd77487cfe12d9e05e
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'python/qemu/qmp')
-rw-r--r--python/qemu/qmp/events.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/python/qemu/qmp/events.py b/python/qemu/qmp/events.py
index 6199776cc6..6658349619 100644
--- a/python/qemu/qmp/events.py
+++ b/python/qemu/qmp/events.py
@@ -497,6 +497,21 @@ class EventListener:
         #: Optional, secondary event filter.
         self.event_filter: Optional[EventFilter] = event_filter
 
+    def __repr__(self) -> str:
+        args: List[str] = []
+        if self.names:
+            args.append(f"names={self.names!r}")
+        if self.event_filter:
+            args.append(f"event_filter={self.event_filter!r}")
+
+        if self._queue.qsize():
+            state = f"<pending={self._queue.qsize()}>"
+        else:
+            state = ''
+
+        argstr = ", ".join(args)
+        return f"{type(self).__name__}{state}({argstr})"
+
     @property
     def history(self) -> Tuple[Message, ...]:
         """