scripts/qmp-shell: use isinstance() instead of type()

A bit more idiomatic, and quiets some linter warnings.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210607200649.1840382-17-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
John Snow 2021-06-07 16:06:23 -04:00
parent 73f699c903
commit 90bd8eb8dc

View File

@ -195,13 +195,13 @@ class QMPShell(qmp.QEMUMonitorProtocol):
for path in optpath[:-1]: for path in optpath[:-1]:
curpath.append(path) curpath.append(path)
obj = parent.get(path, {}) obj = parent.get(path, {})
if type(obj) is not dict: if not isinstance(obj, dict):
msg = 'Cannot use "{:s}" as both leaf and non-leaf key' msg = 'Cannot use "{:s}" as both leaf and non-leaf key'
raise QMPShellError(msg.format('.'.join(curpath))) raise QMPShellError(msg.format('.'.join(curpath)))
parent[path] = obj parent[path] = obj
parent = obj parent = obj
if optpath[-1] in parent: if optpath[-1] in parent:
if type(parent[optpath[-1]]) is dict: if isinstance(parent[optpath[-1]], dict):
msg = 'Cannot use "{:s}" as both leaf and non-leaf key' msg = 'Cannot use "{:s}" as both leaf and non-leaf key'
raise QMPShellError(msg.format('.'.join(curpath))) raise QMPShellError(msg.format('.'.join(curpath)))
raise QMPShellError(f'Cannot set "{key}" multiple times') raise QMPShellError(f'Cannot set "{key}" multiple times')