[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/1] sphinx/qapidoc: Tidy up pylint warning raise-missing-fro
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 1/1] sphinx/qapidoc: Tidy up pylint warning raise-missing-from |
Date: |
Fri, 03 Nov 2023 17:02:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Peter Maydell <peter.maydell@linaro.org> writes:
> On Fri, 3 Nov 2023 at 03:08, John Snow <jsnow@redhat.com> wrote:
>>
>> On Wed, Oct 25, 2023 at 6:10 AM Markus Armbruster <armbru@redhat.com> wrote:
>> >
>> > Pylint advises:
>> >
>> > docs/sphinx/qapidoc.py:518:12: W0707: Consider explicitly re-raising
>> > using 'raise ExtensionError(str(err)) from err' (raise-missing-from)
>> >
>> > From its manual:
>> >
>> > Python's exception chaining shows the traceback of the current
>> > exception, but also of the original exception. When you raise a
>> > new exception after another exception was caught it's likely that
>> > the second exception is a friendly re-wrapping of the first
>> > exception. In such cases `raise from` provides a better link
>> > between the two tracebacks in the final error.
>> >
>> > Makes sense, so do it.
>> >
>> > Signed-off-by: Markus Armbruster <armbru@redhat.com>
>>
>> In this case it probably doesn't make a difference because Sphinx has
>> its own formatting for displaying the errors, but it's good hygiene.
>>
>> Reviewed-by: John Snow <jsnow@redhat.com>
>
> Has somebody checked that the error Sphinx shows to the user
> is still the friendly one? The only reason to raise
> this error is so that Sphinx will catch it and display
> the friendly string, so anything about tracebacks is a red
> herring -- if the traceback is shown to the user then we got
> something wrong.
The exception type doesn't change, only the backtrace stored within the
exception. Can't see how its catching could be affected.
To be sure, stick a '} at the beginning of qapi-schema.json and run
sphinx-build. Result:
Extension error:
/work/armbru/qemu/docs/../qapi/qapi-schema.json:1:1: expected '{', '[',
string, or boolean
Satisfied?