]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-115881: Document feature_version limitations (#115980) (#116173)
authorShantanu <12621235+hauntsaninja@users.noreply.github.com>
Fri, 1 Mar 2024 01:56:06 +0000 (17:56 -0800)
committerGitHub <noreply@github.com>
Fri, 1 Mar 2024 01:56:06 +0000 (01:56 +0000)
Doc/library/ast.rst

index 793e9ee1c8e4098d158af4aa066b74c6772f3548..6be58747be751c12ae87670735c9d225125e83f6 100644 (file)
@@ -2178,12 +2178,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, 4)``; 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, 4)`` (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.