[Python-Dev] Issue #26204: compiler now emits a SyntaxWarning on constant statement

Yury Selivanov yselivanov.ml at gmail.com
Tue Feb 9 17:15:47 EST 2016



On 2016-02-08 8:02 PM, Steven D'Aprano wrote:
> On Mon, Feb 08, 2016 at 05:43:25PM -0500, Yury Selivanov wrote:
>>
>> On 2016-02-08 5:19 PM, Terry Reedy wrote:
>>> On 2/8/2016 4:51 PM, Victor Stinner wrote:
>>>> 2016-02-08 22:28 GMT+01:00 Alexander Walters <tritium-list at sdamon.com>:
>>>>> What incantation do you need to do to make that behavior apparent?
>>>> I didn't know. I just checked. It's assert used with a non-empty tuple:
>>>>
>>>>>>> assert ("tuple",)
>>>> <stdin>:1: SyntaxWarning: assertion is always true, perhaps remove
>>>> parentheses?
>>> I think this should be left to linters also.
>>>
>> I agree.  I'd remove that warning.
>
> Please don't remove the warning, it is very useful.
>
> Compare an assertion written correctly:
>
> py> assert 1==2, "Error in arithmetic"
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> AssertionError: Error in arithmetic
>
>
> with the simple mistake of wrapping the "tuple" in parens:
>
> py> assert (1==2, "Error in arithmetic")
> <stdin>:1: SyntaxWarning: assertion is always true, perhaps remove parentheses?
> py>

You're right!  It's indeed a trap that we should warn about.

Thanks!

Yury



More information about the Python-Dev mailing list