GeezerVison is showing github.com — code.interact() gives SyntaxError instead of SyntaxWarning · Issue #97562 · python/cpython
code.interact() gives SyntaxError instead of SyntaxWarning #97562DescriptionBug report
In the example below, the normal interpreter only emits a SyntaxWarning which, upon execution, gives rise to a TypeError, whereas code.interact() gives a SyntaxError right away.
Python 3.11.0rc2 (main, Sep 11 2022, 20:22:52) [MSC v.1933 64 bit (AMD64)] on win32
>>> def test():
... [1, 2, 3]()
...
<stdin>:2: SyntaxWarning: 'list' object is not callable; perhaps you missed a comma?
>>> test()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in test
TypeError: 'list' object is not callable
>>>
>>> import code
>>> code.interact()
(InteractiveConsole)
>>> def test():
... [1, 2, 3]()
File "<console>", line 2
SyntaxError: 'list' object is not callable; perhaps you missed a comma?
In addition to the above, I have been able to reproduce this with Python 3.9 and 3.10, but not with earlier Python versions. Activityvstinner commented on Sep 26, 2022 serhiy-storchaka commented on Sep 26, 2022 aroberge commented on Oct 24, 2022 ContributorAuthor More actions This was not fixed.
> python
Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def test():
... [1, 2, 3]()
...
<stdin>:2: SyntaxWarning: 'list' object is not callable; perhaps you missed a comma?
>>> test()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in test
TypeError: 'list' object is not callable
>>> import code
>>> code.interact()
Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> def test():
... [1, 2, 3]()
File "<console>", line 2
SyntaxError: 'list' object is not callable; perhaps you missed a comma?
serhiy-storchaka commented on Oct 25, 2022 aroberge commented on Oct 25, 2022 ContributorAuthor More actions I got a warning with 3.12.0a1, but not with 3.11.0. I assume it will be fixed in 3.11.1 and this can remained closed. vstinner commented on Nov 3, 2022 I confirm that the fix is not in Python 3.11.0 final: you will have to wait for Python 3.11.1 bugfix release.
Python 3.11.0 has the bug (raise SyntaxError):
$ /opt/py311/bin/python3 -m code
Python 3.11.0 (main, Oct 31 2022, 12:39:47) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> def test(): [1, 2, 3]()
File "<console>", line 1
SyntaxError: 'list' object is not callable; perhaps you missed a comma?
>>>
now exiting InteractiveConsole...
The 3.11 development branch has the fix (display a warning):
vstinner@mona$ ./python -m code
Python 3.11.0+ (heads/3.11:eb023a84d9, Nov 3 2022, 15:59:57) [GCC 12.2.1 20220819 (Red Hat 12.2.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> def test(): [1, 2, 3]()
...
<console>:1: SyntaxWarning: 'list' object is not callable; perhaps you missed a comma?
>>>
now exiting InteractiveConsole...
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|