On 5/14/20 7:53 AM, John Snow wrote: > Bring our these files up to speed with pylint 2.5.0. > Add a pylintrc file to formalize which pylint subset > we are targeting. > > The similarity ignore is there to suppress similarity > reports across imports, which for typing constants, > are going to trigger this report erroneously. > > Signed-off-by: John Snow <[email protected]> > --- > python/qemu/lib/machine.py | 6 ++-- > python/qemu/lib/pylintrc | 58 ++++++++++++++++++++++++++++++++++++++ > python/qemu/lib/qtest.py | 42 +++++++++++++++++---------- > 3 files changed, 88 insertions(+), 18 deletions(-) > create mode 100644 python/qemu/lib/pylintrc > > diff --git a/python/qemu/lib/machine.py b/python/qemu/lib/machine.py > index e3ea523571..c79fc8fb89 100644 > --- a/python/qemu/lib/machine.py > +++ b/python/qemu/lib/machine.py > @@ -58,7 +58,7 @@ def __init__(self, reply): > self.reply = reply > > > -class QEMUMachine(object): > +class QEMUMachine: > """ > A QEMU VM > > @@ -242,7 +242,7 @@ def _base_args(self): > 'chardev=mon,mode=control']) > if self._machine is not None: > args.extend(['-machine', self._machine]) > - for i in range(self._console_index): > + for _ in range(self._console_index): > args.extend(['-serial', 'null']) > if self._console_set: > self._console_address = os.path.join(self._sock_dir, > @@ -383,7 +383,7 @@ def shutdown(self, has_quit: bool = False) -> None: > command = ' '.join(self._qemu_full_args) > else: > command = '' > - LOG.warning(msg, -exitcode, command) > + LOG.warning(msg, -int(exitcode), command) > > self._launched = False > > diff --git a/python/qemu/lib/pylintrc b/python/qemu/lib/pylintrc > new file mode 100644 > index 0000000000..5d6ae7367d > --- /dev/null > +++ b/python/qemu/lib/pylintrc > @@ -0,0 +1,58 @@ > +[MASTER] > + > +[MESSAGES CONTROL] > + > +# Disable the message, report, category or checker with the given id(s). You > +# can either give multiple identifiers separated by comma (,) or put this > +# option multiple times (only on the command line, not in the configuration > +# file where it should appear only once). You can also use "--disable=all" to > +# disable everything first and then reenable specific checks. For example, if > +# you want to run only the similarities checker, you can use "--disable=all > +# --enable=similarities". If you want to run only the classes checker, but > have > +# no Warning level messages displayed, use "--disable=all --enable=classes > +# --disable=W". > +disable=too-many-arguments, > + too-many-instance-attributes, > + too-many-public-methods,
Reviewed-by: Philippe Mathieu-Daudé <[email protected]> > + > +[REPORTS] > + > +[REFACTORING] > + > +[MISCELLANEOUS] > + > +[LOGGING] > + > +[BASIC] > + > +# Good variable names which should always be accepted, separated by a comma. > +good-names=i, > + j, > + k, > + ex, > + Run, > + _, > + fd, > + > +[VARIABLES] > + > +[STRING] > + > +[SPELLING] > + > +[FORMAT] > + > +[SIMILARITIES] > + > +# Ignore imports when computing similarities. > +ignore-imports=yes > + > +[TYPECHECK] > + > +[CLASSES] > + > +[IMPORTS] > + > +[DESIGN] > + > +[EXCEPTIONS] > diff --git a/python/qemu/lib/qtest.py b/python/qemu/lib/qtest.py > index d24ad04256..53d814c064 100644 > --- a/python/qemu/lib/qtest.py > +++ b/python/qemu/lib/qtest.py > @@ -1,5 +1,11 @@ > -# QEMU qtest library > -# > +""" > +QEMU qtest library > + > +qtest offers the QEMUQtestProtocol and QEMUQTestMachine classes, which > +offer a connection to QEMU's qtest protocol socket, and a qtest-enabled > +subclass of QEMUMachine, respectively. > +""" > + > # Copyright (C) 2015 Red Hat Inc. > # > # Authors: > @@ -17,19 +23,21 @@ > from .machine import QEMUMachine > > > -class QEMUQtestProtocol(object): > +class QEMUQtestProtocol: > + """ > + QEMUQtestProtocol implements a connection to a qtest socket. > + > + :param address: QEMU address, can be either a unix socket path (string) > + or a tuple in the form ( address, port ) for a TCP > + connection > + :param server: server mode, listens on the socket (bool) > + :raise socket.error: on socket connection errors > + > + .. note:: > + No conection is estabalished by __init__(), this is done > + by the connect() or accept() methods. > + """ > def __init__(self, address, server=False): > - """ > - Create a QEMUQtestProtocol object. > - > - @param address: QEMU address, can be either a unix socket path > (string) > - or a tuple in the form ( address, port ) for a TCP > - connection > - @param server: server mode, listens on the socket (bool) > - @raise socket.error on socket connection errors > - @note No connection is established, this is done by the connect() or > - accept() methods > - """ > self._address = address > self._sock = self._get_sock() > self._sockfile = None > @@ -73,15 +81,19 @@ def cmd(self, qtest_cmd): > return resp > > def close(self): > + """Close this socket.""" > self._sock.close() > self._sockfile.close() > > def settimeout(self, timeout): > + """Set a timeout, in seconds.""" > self._sock.settimeout(timeout) > > > class QEMUQtestMachine(QEMUMachine): > - '''A QEMU VM''' > + """ > + A QEMU VM, with a qtest socket available. > + """ > > def __init__(self, binary, args=None, name=None, test_dir="/var/tmp", > socket_scm_helper=None, sock_dir=None): >
