Eric Blake <ebl...@redhat.com> writes: > On 9/24/19 8:28 AM, Markus Armbruster wrote: >> We track source locations with a dict of the form >> >> {'file': FNAME, 'line': LINENO, parent': PARENT} >> >> where PARENT is None for the main file, and the include directive's >> source location for included files. >> >> This is servicable enough, but the next commit will add information, >> and that's going to come out cleaner if we turn this into a class. So >> do that. >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- > >> class QAPIError(Exception): >> - def __init__(self, fname, line, col, incl_info, msg): >> + def __init__(self, info, col, msg): >> Exception.__init__(self) > > Unrelated to this patch, but I just noticed > https://docs.quantifiedcode.com/python-anti-patterns/ today (in part > based on my question on another patch about using 'list.get(key, False)' > rather than 'key in list and list[key]'). In particular, I found > https://docs.quantifiedcode.com/python-anti-patterns/correctness/missing_argument_to_super.html > which recommends using: > > def __init__(...): > super(QAPIError, self).__init__() > > (because of Python 2), while other sits state that with python 3, you > can further get away with: > > def __init__(...): > super().__init(...) > > Should we be switching our code base to use super() in more places, > rather than hard-coding the parent class name?
I intend to switch to super() in a future 'bye Python 2' series.