bpo-35766: Change format for feature_version to (major, minor) (GH-13992) (GH-13993)

(A single int is still allowed, but undocumented.)

https://bugs.python.org/issue35766
(cherry picked from commit 10b55c1643b512b3a2cae8ab89c53683a13ca43e)

Co-authored-by: Guido van Rossum <guido@python.org>
diff --git a/Lib/ast.py b/Lib/ast.py
index 64e7a25..70fbbdd 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -28,7 +28,7 @@
 
 
 def parse(source, filename='<unknown>', mode='exec', *,
-          type_comments=False, feature_version=-1):
+          type_comments=False, feature_version=None):
     """
     Parse the source into an AST node.
     Equivalent to compile(source, filename, mode, PyCF_ONLY_AST).
@@ -37,6 +37,13 @@
     flags = PyCF_ONLY_AST
     if type_comments:
         flags |= PyCF_TYPE_COMMENTS
+    if isinstance(feature_version, tuple):
+        major, minor = feature_version  # Should be a 2-tuple.
+        assert major == 3
+        feature_version = minor
+    elif feature_version is None:
+        feature_version = -1
+    # Else it should be an int giving the minor version for 3.x.
     return compile(source, filename, mode, flags,
                    feature_version=feature_version)