[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 03/25] qapi: New QAPISourceInfo, replacing dict
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 03/25] qapi: New QAPISourceInfo, replacing dict |
Date: |
Wed, 25 Sep 2019 08:40:52 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Eric Blake <address@hidden> 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 <address@hidden>
>> ---
>
>> 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.
- [PATCH 00/25] qapi: Pay back some frontend technical debt, Markus Armbruster, 2019/09/24
- [PATCH 01/25] qapi: Tighten QAPISchemaFOO.check() assertions, Markus Armbruster, 2019/09/24
- [PATCH 03/25] qapi: New QAPISourceInfo, replacing dict, Markus Armbruster, 2019/09/24
- [PATCH 02/25] qapi: Rename .owner to .defined_in, Markus Armbruster, 2019/09/24
- [PATCH 10/25] qapi: Use check_name_str() where it suffices, Markus Armbruster, 2019/09/24
- [PATCH 17/25] qapi: Move context-free checking to the proper place, Markus Armbruster, 2019/09/24
- [PATCH 11/25] qapi: Report invalid '*' prefix like any other invalid name, Markus Armbruster, 2019/09/24
- [PATCH 24/25] qapi: Improve reporting of redefinition, Markus Armbruster, 2019/09/24