Skip to content

Commit

Permalink
python/qemu: Adjust traceback typing
Browse files Browse the repository at this point in the history
mypy considers it incorrect to use `bool` to statically return false,
because it will assume that it could conceivably return True, and gives
different analysis in that case. Use a None return to achieve the same
effect, but make mypy happy.

Note: Pylint considers function signatures as code that might trip the
duplicate-code checker. I'd rather not disable this as it does not
trigger often in practice, so I'm disabling it as a one-off and filed a
change request; see pylint-dev/pylint#3619

Signed-off-by: John Snow <jsnow@redhat.com>
Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200514055403.18902-14-jsnow@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
  • Loading branch information
jnsnow authored and philmd committed May 31, 2020
1 parent 0add048 commit 1dda040
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
8 changes: 6 additions & 2 deletions python/qemu/machine.py
Expand Up @@ -24,6 +24,8 @@
import shutil
import socket
import tempfile
from typing import Optional, Type
from types import TracebackType

from . import qmp

Expand Down Expand Up @@ -124,9 +126,11 @@ def __init__(self, binary, args=None, wrapper=None, name=None,
def __enter__(self):
return self

def __exit__(self, exc_type, exc_val, exc_tb):
def __exit__(self,
exc_type: Optional[Type[BaseException]],
exc_val: Optional[BaseException],
exc_tb: Optional[TracebackType]) -> None:
self.shutdown()
return False

def add_monitor_null(self):
"""
Expand Down
10 changes: 8 additions & 2 deletions python/qemu/qmp.py
Expand Up @@ -14,7 +14,9 @@
from typing import (
Optional,
TextIO,
Type,
)
from types import TracebackType


class QMPError(Exception):
Expand Down Expand Up @@ -146,10 +148,14 @@ def __enter__(self):
# Implement context manager enter function.
return self

def __exit__(self, exc_type, exc_value, exc_traceback):
def __exit__(self,
# pylint: disable=duplicate-code
# see https://github.com/PyCQA/pylint/issues/3619
exc_type: Optional[Type[BaseException]],
exc_val: Optional[BaseException],
exc_tb: Optional[TracebackType]) -> None:
# Implement context manager exit function.
self.close()
return False

def connect(self, negotiate=True):
"""
Expand Down

0 comments on commit 1dda040

Please sign in to comment.