Skip to content

Commit

Permalink
Python 3.9.0a3
Browse files Browse the repository at this point in the history
  • Loading branch information
ambv committed Jan 24, 2020
1 parent 9017e0b commit c33378d
Show file tree
Hide file tree
Showing 89 changed files with 1,024 additions and 275 deletions.
4 changes: 2 additions & 2 deletions Include/patchlevel.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 9
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 2
#define PY_RELEASE_SERIAL 3

/* Version as a string */
#define PY_VERSION "3.9.0a2+"
#define PY_VERSION "3.9.0a3"
/*--end constants--*/

/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
Expand Down
167 changes: 115 additions & 52 deletions Lib/pydoc_data/topics.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Wed Dec 18 22:05:39 2019
# Autogenerated by Sphinx on Fri Jan 24 22:03:37 2020
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
Expand Down Expand Up @@ -470,24 +470,25 @@
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
' BLOCK\n'
' SUITE\n'
' else:\n'
' BLOCK2\n'
' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
'\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
' BLOCK\n'
' SUITE\n'
' else:\n'
' BLOCK2\n'
' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
Expand All @@ -507,23 +508,27 @@
'\n'
'The following code:\n'
'\n'
' async with EXPR as VAR:\n'
' BLOCK\n'
' async with EXPRESSION as TARGET:\n'
' SUITE\n'
'\n'
'Is semantically equivalent to:\n'
'is semantically equivalent to:\n'
'\n'
' mgr = (EXPR)\n'
' aexit = type(mgr).__aexit__\n'
' aenter = type(mgr).__aenter__(mgr)\n'
' manager = (EXPRESSION)\n'
' aenter = type(manager).__aenter__\n'
' aexit = type(manager).__aexit__\n'
' value = await aenter(manager)\n'
' hit_except = False\n'
'\n'
' VAR = await aenter\n'
' try:\n'
' BLOCK\n'
' TARGET = value\n'
' SUITE\n'
' except:\n'
' if not await aexit(mgr, *sys.exc_info()):\n'
' hit_except = True\n'
' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
' else:\n'
' await aexit(mgr, None, None, None)\n'
' finally:\n'
' if not hit_except:\n'
' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
Expand Down Expand Up @@ -2519,11 +2524,13 @@
'"with_item")\n'
' is evaluated to obtain a context manager.\n'
'\n'
'2. The context manager’s "__exit__()" is loaded for later use.\n'
'2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
'3. The context manager’s "__enter__()" method is invoked.\n'
'3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
'4. If a target was included in the "with" statement, the return\n'
'4. The context manager’s "__enter__()" method is invoked.\n'
'\n'
'5. If a target was included in the "with" statement, the return\n'
' value from "__enter__()" is assigned to it.\n'
'\n'
' Note: The "with" statement guarantees that if the '
Expand All @@ -2536,9 +2543,9 @@
'occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
'5. The suite is executed.\n'
'6. The suite is executed.\n'
'\n'
'6. The context manager’s "__exit__()" method is invoked. If an\n'
'7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, '
'and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
Expand All @@ -2560,18 +2567,42 @@
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
'The following code:\n'
'\n'
' with EXPRESSION as TARGET:\n'
' SUITE\n'
'\n'
'is semantically equivalent to:\n'
'\n'
' manager = (EXPRESSION)\n'
' enter = type(manager).__enter__\n'
' exit = type(manager).__exit__\n'
' value = enter(manager)\n'
' hit_except = False\n'
'\n'
' try:\n'
' TARGET = value\n'
' SUITE\n'
' except:\n'
' hit_except = True\n'
' if not exit(manager, *sys.exc_info()):\n'
' raise\n'
' finally:\n'
' if not hit_except:\n'
' exit(manager, None, None, None)\n'
'\n'
'With more than one item, the context managers are processed as '
'if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
' suite\n'
' SUITE\n'
'\n'
'is equivalent to\n'
'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
' suite\n'
' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context '
'expressions.\n'
Expand Down Expand Up @@ -2935,24 +2966,25 @@
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
' BLOCK\n'
' SUITE\n'
' else:\n'
' BLOCK2\n'
' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
'\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
' BLOCK\n'
' SUITE\n'
' else:\n'
' BLOCK2\n'
' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
Expand All @@ -2972,23 +3004,27 @@
'\n'
'The following code:\n'
'\n'
' async with EXPR as VAR:\n'
' BLOCK\n'
' async with EXPRESSION as TARGET:\n'
' SUITE\n'
'\n'
'Is semantically equivalent to:\n'
'is semantically equivalent to:\n'
'\n'
' mgr = (EXPR)\n'
' aexit = type(mgr).__aexit__\n'
' aenter = type(mgr).__aenter__(mgr)\n'
' manager = (EXPRESSION)\n'
' aenter = type(manager).__aenter__\n'
' aexit = type(manager).__aexit__\n'
' value = await aenter(manager)\n'
' hit_except = False\n'
'\n'
' VAR = await aenter\n'
' try:\n'
' BLOCK\n'
' TARGET = value\n'
' SUITE\n'
' except:\n'
' if not await aexit(mgr, *sys.exc_info()):\n'
' hit_except = True\n'
' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
' else:\n'
' await aexit(mgr, None, None, None)\n'
' finally:\n'
' if not hit_except:\n'
' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
Expand Down Expand Up @@ -6808,7 +6844,7 @@
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
'object.__rpow__(self, other)\n'
'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
Expand Down Expand Up @@ -9483,7 +9519,7 @@
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
'object.__rpow__(self, other)\n'
'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
Expand Down Expand Up @@ -9874,9 +9910,8 @@
'best\n'
' performances, but only used at the first encoding '
'error. Enable the\n'
' development mode ("-X" "dev" option), or use a debug '
'build, to\n'
' check *errors*.\n'
' Python Development Mode, or use a debug build to check '
'*errors*.\n'
'\n'
' Changed in version 3.1: Support for keyword arguments '
'added.\n'
Expand Down Expand Up @@ -12401,6 +12436,8 @@
'dictionary. This\n'
' is a shortcut for "reversed(d.keys())".\n'
'\n'
' New in version 3.8.\n'
'\n'
' setdefault(key[, default])\n'
'\n'
' If *key* is in the dictionary, return its value. If '
Expand Down Expand Up @@ -13606,11 +13643,13 @@
'1. The context expression (the expression given in the "with_item")\n'
' is evaluated to obtain a context manager.\n'
'\n'
'2. The context manager’s "__exit__()" is loaded for later use.\n'
'2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
'3. The context manager’s "__enter__()" method is invoked.\n'
'3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
'4. If a target was included in the "with" statement, the return\n'
'4. The context manager’s "__enter__()" method is invoked.\n'
'\n'
'5. If a target was included in the "with" statement, the return\n'
' value from "__enter__()" is assigned to it.\n'
'\n'
' Note: The "with" statement guarantees that if the "__enter__()"\n'
Expand All @@ -13620,9 +13659,9 @@
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
'5. The suite is executed.\n'
'6. The suite is executed.\n'
'\n'
'6. The context manager’s "__exit__()" method is invoked. If an\n'
'7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
'three\n'
Expand All @@ -13642,17 +13681,41 @@
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
'The following code:\n'
'\n'
' with EXPRESSION as TARGET:\n'
' SUITE\n'
'\n'
'is semantically equivalent to:\n'
'\n'
' manager = (EXPRESSION)\n'
' enter = type(manager).__enter__\n'
' exit = type(manager).__exit__\n'
' value = enter(manager)\n'
' hit_except = False\n'
'\n'
' try:\n'
' TARGET = value\n'
' SUITE\n'
' except:\n'
' hit_except = True\n'
' if not exit(manager, *sys.exc_info()):\n'
' raise\n'
' finally:\n'
' if not hit_except:\n'
' exit(manager, None, None, None)\n'
'\n'
'With more than one item, the context managers are processed as if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
' suite\n'
' SUITE\n'
'\n'
'is equivalent to\n'
'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
' suite\n'
' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context expressions.\n'
'\n'
Expand Down
Loading

0 comments on commit c33378d

Please sign in to comment.