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.

Reply via email to