python: backport 'qmp-tui: Do not crash if optional dependencies are not met'
Based on the discussion at https://github.com/pypa/pip/issues/9726 - even though the setuptools documentation implies that it is possible to guard script execution with optional dependency groups, this is not true in practice with the scripts generated by pip. Just do the simple thing and guard the import statements. Signed-off-by: John Snow <jsnow@redhat.com> cherry picked from commit python-qemu-qmp@df520dcacf9a75dd4c82ab1129768de4128b554c Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
fcaeeb7653
commit
fd0ed46d4e
1 changed files with 15 additions and 4 deletions
|
|
@ -21,6 +21,7 @@ import json
|
|||
import logging
|
||||
from logging import Handler, LogRecord
|
||||
import signal
|
||||
import sys
|
||||
from typing import (
|
||||
List,
|
||||
Optional,
|
||||
|
|
@ -30,10 +31,20 @@ from typing import (
|
|||
cast,
|
||||
)
|
||||
|
||||
from pygments import lexers
|
||||
from pygments import token as Token
|
||||
import urwid
|
||||
import urwid_readline
|
||||
|
||||
try:
|
||||
from pygments import lexers
|
||||
from pygments import token as Token
|
||||
import urwid
|
||||
import urwid_readline
|
||||
except ModuleNotFoundError as exc:
|
||||
print(
|
||||
f"Module '{exc.name}' not found.",
|
||||
"You need the optional 'tui' group: pip install qemu.qmp[tui]",
|
||||
sep='\n',
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
from .error import ProtocolError
|
||||
from .legacy import QEMUMonitorProtocol, QMPBadPortError
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue