Skip to content
Snippets Groups Projects
Commit db12abc2 authored by John Snow's avatar John Snow
Browse files

scripts/qmp-shell: refactor QMPCompleter


list is a generic type, but we expect to use strings directly. We could
subclass list[str], but pylint does not presently understand that
invocation.

Change this class to envelop a list instead of *being* a list, for
simpler mypy typing.

Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Message-id: 20210607200649.1840382-25-jsnow@redhat.com
Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
parent 6faf2384
No related branches found
No related tags found
No related merge requests found
......@@ -78,9 +78,17 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
from qemu import qmp
class QMPCompleter(list):
def complete(self, text, state):
for cmd in self:
class QMPCompleter:
# NB: Python 3.9+ will probably allow us to subclass list[str] directly,
# but pylint as of today does not know that List[str] is simply 'list'.
def __init__(self) -> None:
self._matches: List[str] = []
def append(self, value: str) -> None:
return self._matches.append(value)
def complete(self, text: str, state: int) -> Optional[str]:
for cmd in self._matches:
if cmd.startswith(text):
if state == 0:
return cmd
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment