Skip to content

Commit b07ead3

Browse files
committed
Merge tag 'v3.9.0a3'
Python 3.9.0a3
2 parents 40c0809 + c33378d commit b07ead3

File tree

89 files changed

+1024
-275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1024
-275
lines changed

Include/patchlevel.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
#define PY_MINOR_VERSION 9
2121
#define PY_MICRO_VERSION 0
2222
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
23-
#define PY_RELEASE_SERIAL 2
23+
#define PY_RELEASE_SERIAL 3
2424

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

2929
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

Lib/pydoc_data/topics.py

Lines changed: 115 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
# Autogenerated by Sphinx on Wed Dec 18 22:05:39 2019
2+
# Autogenerated by Sphinx on Fri Jan 24 22:03:37 2020
33
topics = {'assert': 'The "assert" statement\n'
44
'**********************\n'
55
'\n'
@@ -470,24 +470,25 @@
470470
'The following code:\n'
471471
'\n'
472472
' async for TARGET in ITER:\n'
473-
' BLOCK\n'
473+
' SUITE\n'
474474
' else:\n'
475-
' BLOCK2\n'
475+
' SUITE2\n'
476476
'\n'
477477
'Is semantically equivalent to:\n'
478478
'\n'
479479
' iter = (ITER)\n'
480480
' iter = type(iter).__aiter__(iter)\n'
481481
' running = True\n'
482+
'\n'
482483
' while running:\n'
483484
' try:\n'
484485
' TARGET = await type(iter).__anext__(iter)\n'
485486
' except StopAsyncIteration:\n'
486487
' running = False\n'
487488
' else:\n'
488-
' BLOCK\n'
489+
' SUITE\n'
489490
' else:\n'
490-
' BLOCK2\n'
491+
' SUITE2\n'
491492
'\n'
492493
'See also "__aiter__()" and "__anext__()" for details.\n'
493494
'\n'
@@ -507,23 +508,27 @@
507508
'\n'
508509
'The following code:\n'
509510
'\n'
510-
' async with EXPR as VAR:\n'
511-
' BLOCK\n'
511+
' async with EXPRESSION as TARGET:\n'
512+
' SUITE\n'
512513
'\n'
513-
'Is semantically equivalent to:\n'
514+
'is semantically equivalent to:\n'
514515
'\n'
515-
' mgr = (EXPR)\n'
516-
' aexit = type(mgr).__aexit__\n'
517-
' aenter = type(mgr).__aenter__(mgr)\n'
516+
' manager = (EXPRESSION)\n'
517+
' aenter = type(manager).__aenter__\n'
518+
' aexit = type(manager).__aexit__\n'
519+
' value = await aenter(manager)\n'
520+
' hit_except = False\n'
518521
'\n'
519-
' VAR = await aenter\n'
520522
' try:\n'
521-
' BLOCK\n'
523+
' TARGET = value\n'
524+
' SUITE\n'
522525
' except:\n'
523-
' if not await aexit(mgr, *sys.exc_info()):\n'
526+
' hit_except = True\n'
527+
' if not await aexit(manager, *sys.exc_info()):\n'
524528
' raise\n'
525-
' else:\n'
526-
' await aexit(mgr, None, None, None)\n'
529+
' finally:\n'
530+
' if not hit_except:\n'
531+
' await aexit(manager, None, None, None)\n'
527532
'\n'
528533
'See also "__aenter__()" and "__aexit__()" for details.\n'
529534
'\n'
@@ -2519,11 +2524,13 @@
25192524
'"with_item")\n'
25202525
' is evaluated to obtain a context manager.\n'
25212526
'\n'
2522-
'2. The context manager’s "__exit__()" is loaded for later use.\n'
2527+
'2. The context manager’s "__enter__()" is loaded for later use.\n'
25232528
'\n'
2524-
'3. The context manager’s "__enter__()" method is invoked.\n'
2529+
'3. The context manager’s "__exit__()" is loaded for later use.\n'
25252530
'\n'
2526-
'4. If a target was included in the "with" statement, the return\n'
2531+
'4. The context manager’s "__enter__()" method is invoked.\n'
2532+
'\n'
2533+
'5. If a target was included in the "with" statement, the return\n'
25272534
' value from "__enter__()" is assigned to it.\n'
25282535
'\n'
25292536
' Note: The "with" statement guarantees that if the '
@@ -2536,9 +2543,9 @@
25362543
'occurring\n'
25372544
' within the suite would be. See step 6 below.\n'
25382545
'\n'
2539-
'5. The suite is executed.\n'
2546+
'6. The suite is executed.\n'
25402547
'\n'
2541-
'6. The context manager’s "__exit__()" method is invoked. If an\n'
2548+
'7. The context manager’s "__exit__()" method is invoked. If an\n'
25422549
' exception caused the suite to be exited, its type, value, '
25432550
'and\n'
25442551
' traceback are passed as arguments to "__exit__()". Otherwise, '
@@ -2560,18 +2567,42 @@
25602567
'proceeds\n'
25612568
' at the normal location for the kind of exit that was taken.\n'
25622569
'\n'
2570+
'The following code:\n'
2571+
'\n'
2572+
' with EXPRESSION as TARGET:\n'
2573+
' SUITE\n'
2574+
'\n'
2575+
'is semantically equivalent to:\n'
2576+
'\n'
2577+
' manager = (EXPRESSION)\n'
2578+
' enter = type(manager).__enter__\n'
2579+
' exit = type(manager).__exit__\n'
2580+
' value = enter(manager)\n'
2581+
' hit_except = False\n'
2582+
'\n'
2583+
' try:\n'
2584+
' TARGET = value\n'
2585+
' SUITE\n'
2586+
' except:\n'
2587+
' hit_except = True\n'
2588+
' if not exit(manager, *sys.exc_info()):\n'
2589+
' raise\n'
2590+
' finally:\n'
2591+
' if not hit_except:\n'
2592+
' exit(manager, None, None, None)\n'
2593+
'\n'
25632594
'With more than one item, the context managers are processed as '
25642595
'if\n'
25652596
'multiple "with" statements were nested:\n'
25662597
'\n'
25672598
' with A() as a, B() as b:\n'
2568-
' suite\n'
2599+
' SUITE\n'
25692600
'\n'
2570-
'is equivalent to\n'
2601+
'is semantically equivalent to:\n'
25712602
'\n'
25722603
' with A() as a:\n'
25732604
' with B() as b:\n'
2574-
' suite\n'
2605+
' SUITE\n'
25752606
'\n'
25762607
'Changed in version 3.1: Support for multiple context '
25772608
'expressions.\n'
@@ -2935,24 +2966,25 @@
29352966
'The following code:\n'
29362967
'\n'
29372968
' async for TARGET in ITER:\n'
2938-
' BLOCK\n'
2969+
' SUITE\n'
29392970
' else:\n'
2940-
' BLOCK2\n'
2971+
' SUITE2\n'
29412972
'\n'
29422973
'Is semantically equivalent to:\n'
29432974
'\n'
29442975
' iter = (ITER)\n'
29452976
' iter = type(iter).__aiter__(iter)\n'
29462977
' running = True\n'
2978+
'\n'
29472979
' while running:\n'
29482980
' try:\n'
29492981
' TARGET = await type(iter).__anext__(iter)\n'
29502982
' except StopAsyncIteration:\n'
29512983
' running = False\n'
29522984
' else:\n'
2953-
' BLOCK\n'
2985+
' SUITE\n'
29542986
' else:\n'
2955-
' BLOCK2\n'
2987+
' SUITE2\n'
29562988
'\n'
29572989
'See also "__aiter__()" and "__anext__()" for details.\n'
29582990
'\n'
@@ -2972,23 +3004,27 @@
29723004
'\n'
29733005
'The following code:\n'
29743006
'\n'
2975-
' async with EXPR as VAR:\n'
2976-
' BLOCK\n'
3007+
' async with EXPRESSION as TARGET:\n'
3008+
' SUITE\n'
29773009
'\n'
2978-
'Is semantically equivalent to:\n'
3010+
'is semantically equivalent to:\n'
29793011
'\n'
2980-
' mgr = (EXPR)\n'
2981-
' aexit = type(mgr).__aexit__\n'
2982-
' aenter = type(mgr).__aenter__(mgr)\n'
3012+
' manager = (EXPRESSION)\n'
3013+
' aenter = type(manager).__aenter__\n'
3014+
' aexit = type(manager).__aexit__\n'
3015+
' value = await aenter(manager)\n'
3016+
' hit_except = False\n'
29833017
'\n'
2984-
' VAR = await aenter\n'
29853018
' try:\n'
2986-
' BLOCK\n'
3019+
' TARGET = value\n'
3020+
' SUITE\n'
29873021
' except:\n'
2988-
' if not await aexit(mgr, *sys.exc_info()):\n'
3022+
' hit_except = True\n'
3023+
' if not await aexit(manager, *sys.exc_info()):\n'
29893024
' raise\n'
2990-
' else:\n'
2991-
' await aexit(mgr, None, None, None)\n'
3025+
' finally:\n'
3026+
' if not hit_except:\n'
3027+
' await aexit(manager, None, None, None)\n'
29923028
'\n'
29933029
'See also "__aenter__()" and "__aexit__()" for details.\n'
29943030
'\n'
@@ -6808,7 +6844,7 @@
68086844
'object.__rfloordiv__(self, other)\n'
68096845
'object.__rmod__(self, other)\n'
68106846
'object.__rdivmod__(self, other)\n'
6811-
'object.__rpow__(self, other)\n'
6847+
'object.__rpow__(self, other[, modulo])\n'
68126848
'object.__rlshift__(self, other)\n'
68136849
'object.__rrshift__(self, other)\n'
68146850
'object.__rand__(self, other)\n'
@@ -9483,7 +9519,7 @@
94839519
'object.__rfloordiv__(self, other)\n'
94849520
'object.__rmod__(self, other)\n'
94859521
'object.__rdivmod__(self, other)\n'
9486-
'object.__rpow__(self, other)\n'
9522+
'object.__rpow__(self, other[, modulo])\n'
94879523
'object.__rlshift__(self, other)\n'
94889524
'object.__rrshift__(self, other)\n'
94899525
'object.__rand__(self, other)\n'
@@ -9874,9 +9910,8 @@
98749910
'best\n'
98759911
' performances, but only used at the first encoding '
98769912
'error. Enable the\n'
9877-
' development mode ("-X" "dev" option), or use a debug '
9878-
'build, to\n'
9879-
' check *errors*.\n'
9913+
' Python Development Mode, or use a debug build to check '
9914+
'*errors*.\n'
98809915
'\n'
98819916
' Changed in version 3.1: Support for keyword arguments '
98829917
'added.\n'
@@ -12401,6 +12436,8 @@
1240112436
'dictionary. This\n'
1240212437
' is a shortcut for "reversed(d.keys())".\n'
1240312438
'\n'
12439+
' New in version 3.8.\n'
12440+
'\n'
1240412441
' setdefault(key[, default])\n'
1240512442
'\n'
1240612443
' If *key* is in the dictionary, return its value. If '
@@ -13606,11 +13643,13 @@
1360613643
'1. The context expression (the expression given in the "with_item")\n'
1360713644
' is evaluated to obtain a context manager.\n'
1360813645
'\n'
13609-
'2. The context manager’s "__exit__()" is loaded for later use.\n'
13646+
'2. The context manager’s "__enter__()" is loaded for later use.\n'
1361013647
'\n'
13611-
'3. The context manager’s "__enter__()" method is invoked.\n'
13648+
'3. The context manager’s "__exit__()" is loaded for later use.\n'
1361213649
'\n'
13613-
'4. If a target was included in the "with" statement, the return\n'
13650+
'4. The context manager’s "__enter__()" method is invoked.\n'
13651+
'\n'
13652+
'5. If a target was included in the "with" statement, the return\n'
1361413653
' value from "__enter__()" is assigned to it.\n'
1361513654
'\n'
1361613655
' Note: The "with" statement guarantees that if the "__enter__()"\n'
@@ -13620,9 +13659,9 @@
1362013659
' target list, it will be treated the same as an error occurring\n'
1362113660
' within the suite would be. See step 6 below.\n'
1362213661
'\n'
13623-
'5. The suite is executed.\n'
13662+
'6. The suite is executed.\n'
1362413663
'\n'
13625-
'6. The context manager’s "__exit__()" method is invoked. If an\n'
13664+
'7. The context manager’s "__exit__()" method is invoked. If an\n'
1362613665
' exception caused the suite to be exited, its type, value, and\n'
1362713666
' traceback are passed as arguments to "__exit__()". Otherwise, '
1362813667
'three\n'
@@ -13642,17 +13681,41 @@
1364213681
'proceeds\n'
1364313682
' at the normal location for the kind of exit that was taken.\n'
1364413683
'\n'
13684+
'The following code:\n'
13685+
'\n'
13686+
' with EXPRESSION as TARGET:\n'
13687+
' SUITE\n'
13688+
'\n'
13689+
'is semantically equivalent to:\n'
13690+
'\n'
13691+
' manager = (EXPRESSION)\n'
13692+
' enter = type(manager).__enter__\n'
13693+
' exit = type(manager).__exit__\n'
13694+
' value = enter(manager)\n'
13695+
' hit_except = False\n'
13696+
'\n'
13697+
' try:\n'
13698+
' TARGET = value\n'
13699+
' SUITE\n'
13700+
' except:\n'
13701+
' hit_except = True\n'
13702+
' if not exit(manager, *sys.exc_info()):\n'
13703+
' raise\n'
13704+
' finally:\n'
13705+
' if not hit_except:\n'
13706+
' exit(manager, None, None, None)\n'
13707+
'\n'
1364513708
'With more than one item, the context managers are processed as if\n'
1364613709
'multiple "with" statements were nested:\n'
1364713710
'\n'
1364813711
' with A() as a, B() as b:\n'
13649-
' suite\n'
13712+
' SUITE\n'
1365013713
'\n'
13651-
'is equivalent to\n'
13714+
'is semantically equivalent to:\n'
1365213715
'\n'
1365313716
' with A() as a:\n'
1365413717
' with B() as b:\n'
13655-
' suite\n'
13718+
' SUITE\n'
1365613719
'\n'
1365713720
'Changed in version 3.1: Support for multiple context expressions.\n'
1365813721
'\n'

0 commit comments

Comments
 (0)