FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-122461: Document that compile() and ast.parse() raise SyntaxError for null bytes by devdanzin · Pull Request #122462 · python/cpython · GitHub

/ cpython Public

gh-122461: Document that compile() and ast.parse() raise SyntaxError for null bytes - #122462

Open
devdanzin wants to merge 3 commits into
python:mainfrom
devdanzin:doc_null_bytes
Open

gh-122461: Document that compile() and ast.parse() raise SyntaxError for null bytes#122462
devdanzin wants to merge 3 commits into
python:mainfrom
devdanzin:doc_null_bytes

Conversation

devdanzin commented Jul 30, 2024
edited by github-actions Bot
Loading

Copy link
Copy Markdown
Member

Update docs for compile() and ast.parse() because they raise SyntaxError instead of ValueError for null bytes since #97594.


📚 Documentation preview 📚: https://cpython-previews--122462.org.readthedocs.build/

Copy link
Copy Markdown
Member Author

Requesting review from @JelleZijlstra.

JelleZijlstra self-requested a review July 30, 2024 13:50
Eclips4 added needs backport to 3.12 only security fixes needs backport to 3.13 bugs and security fixes labels Jul 30, 2024
Comment thread Doc/library/ast.rst Outdated
Comment thread Doc/library/ast.rst Outdated
Comment thread Doc/library/functions.rst Outdated
Comment thread Doc/library/functions.rst Outdated

Copy link
Copy Markdown
Member Author

Thank you both for the reviews!

serhiy-storchaka left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Note that UnicodeEncodeError (which is a subclass of ValueError) can still be raised if the source string is not encodable.

Copy link
Copy Markdown
Member

There are also mentions of ValueError in the codeop documentation and docstrings. I do not know whether they are still valid.

Copy link
Copy Markdown
Member Author

Note that UnicodeEncodeError (which is a subclass of ValueError) can still be raised if the source string is not encodable.

Yes, for code such as ast.parse("\ud800"). Should this possibility be added to the documentation?

Plus MemoryError and RecursionError are possible for too deeply nested code.

Copy link
Copy Markdown
Member

OverflowError is documented in codeop, and it can still be raised. For example:

>>> import ast
>>> try: ast.parse('x'*2**31, '?', 'exec')
... except BaseException as err: e = err
... 
>>> str(e)
'Parser column offset overflow - source line is too big'
>>> type(e)
<class 'OverflowError'>

I do not know whether ValueError other than UnicodeEncodeError can be raised, but it is safer to document ValueError, OverflowError and RecursionError in all these places. I do not think that it is worth to document MemoryError or say KeyboardInterrupt specially, because they depend rather on the environment than on the input and you cannot fix them.

devdanzin commented Jul 31, 2024
edited
Loading

Copy link
Copy Markdown
Member Author

Would this count?

>>> ast.parse("", feature_version=(2,2))
Traceback (most recent call last):
  File "<python-input-2>", line 1, in <module>
    ast.parse("", feature_version=(2,2))
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "~\PycharmProjects\cpython\Lib\ast.py", line 50, in parse
    raise ValueError(f"Unsupported major version: {major}")
ValueError: Unsupported major version: 2

Edit: here's another one:

>>> ast.parse("", "\0")
Traceback (most recent call last):
  File "<python-input-9>", line 1, in <module>
    ast.parse("", "\0")
    ~~~~~~~~~^^^^^^^^^^
  File "~\PycharmProjects\cpython\Lib\ast.py", line 53, in parse
    return compile(source, filename, mode, flags,
                   _feature_version=feature_version, optimize=optimize)
ValueError: embedded null character

hugovk removed the needs backport to 3.12 only security fixes label Apr 10, 2025

python-cla-bot Bot commented Apr 18, 2025
edited
Loading

Copy link
Copy Markdown

All commit authors signed the Contributor License Agreement.

serhiy-storchaka added the needs backport to 3.14 bugs and security fixes label May 8, 2025

Copy link
Copy Markdown

This PR is stale because it has been open for 30 days with no activity.

github-actions Bot added the stale Stale PR or inactive for long period of time. label Apr 17, 2026
serhiy-storchaka added the needs backport to 3.15 pre-release feature fixes, bugs and security fixes label May 30, 2026
github-actions Bot removed the stale Stale PR or inactive for long period of time. label Jun 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting review docs Documentation in the Doc dir needs backport to 3.13 bugs and security fixes needs backport to 3.14 bugs and security fixes needs backport to 3.15 pre-release feature fixes, bugs and security fixes skip news

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

5 participants


Back | FazBrowse Home | New Git URL