Skip to content

Commit

Permalink
pythongh-115881: Document feature_version limitations (python#115980)
Browse files Browse the repository at this point in the history
  • Loading branch information
hauntsaninja authored and diegorusso committed Apr 17, 2024
1 parent b2a1d8a commit 2a783a3
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions Doc/library/ast.rst
Expand Up @@ -2183,12 +2183,15 @@ and classes for traversing abstract syntax trees:
modified to correspond to :pep:`484` "signature type comments",
e.g. ``(str, int) -> List[str]``.

Also, setting ``feature_version`` to a tuple ``(major, minor)``
will attempt to parse using that Python version's grammar.
Currently ``major`` must equal to ``3``. For example, setting
``feature_version=(3, 4)`` will allow the use of ``async`` and
``await`` as variable names. The lowest supported version is
``(3, 7)``; the highest is ``sys.version_info[0:2]``.
Setting ``feature_version`` to a tuple ``(major, minor)`` will result in
a "best-effort" attempt to parse using that Python version's grammar.
For example, setting ``feature_version=(3, 9)`` will attempt to disallow
parsing of :keyword:`match` statements.
Currently ``major`` must equal to ``3``. The lowest supported version is
``(3, 7)`` (and this may increase in future Python versions);
the highest is ``sys.version_info[0:2]``. "Best-effort" attempt means there
is no guarantee that the parse (or success of the parse) is the same as
when run on the Python version corresponding to ``feature_version``.

If source contains a null character ('\0'), :exc:`ValueError` is raised.

Expand Down

0 comments on commit 2a783a3

Please sign in to comment.