mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Python 3.9.0a3
This commit is contained in:
		
							parent
							
								
									9017e0bd5e
								
							
						
					
					
						commit
						c33378df39
					
				
					 89 changed files with 1024 additions and 275 deletions
				
			
		| 
						 | 
					@ -20,10 +20,10 @@
 | 
				
			||||||
#define PY_MINOR_VERSION        9
 | 
					#define PY_MINOR_VERSION        9
 | 
				
			||||||
#define PY_MICRO_VERSION        0
 | 
					#define PY_MICRO_VERSION        0
 | 
				
			||||||
#define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_ALPHA
 | 
					#define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_ALPHA
 | 
				
			||||||
#define PY_RELEASE_SERIAL       2
 | 
					#define PY_RELEASE_SERIAL       3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Version as a string */
 | 
					/* Version as a string */
 | 
				
			||||||
#define PY_VERSION              "3.9.0a2+"
 | 
					#define PY_VERSION              "3.9.0a3"
 | 
				
			||||||
/*--end constants--*/
 | 
					/*--end constants--*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
 | 
					/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
# -*- coding: utf-8 -*-
 | 
					# -*- 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'
 | 
					topics = {'assert': 'The "assert" statement\n'
 | 
				
			||||||
           '**********************\n'
 | 
					           '**********************\n'
 | 
				
			||||||
           '\n'
 | 
					           '\n'
 | 
				
			||||||
| 
						 | 
					@ -470,24 +470,25 @@
 | 
				
			||||||
          'The following code:\n'
 | 
					          'The following code:\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          '   async for TARGET in ITER:\n'
 | 
					          '   async for TARGET in ITER:\n'
 | 
				
			||||||
          '       BLOCK\n'
 | 
					          '       SUITE\n'
 | 
				
			||||||
          '   else:\n'
 | 
					          '   else:\n'
 | 
				
			||||||
          '       BLOCK2\n'
 | 
					          '       SUITE2\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          'Is semantically equivalent to:\n'
 | 
					          'Is semantically equivalent to:\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          '   iter = (ITER)\n'
 | 
					          '   iter = (ITER)\n'
 | 
				
			||||||
          '   iter = type(iter).__aiter__(iter)\n'
 | 
					          '   iter = type(iter).__aiter__(iter)\n'
 | 
				
			||||||
          '   running = True\n'
 | 
					          '   running = True\n'
 | 
				
			||||||
 | 
					          '\n'
 | 
				
			||||||
          '   while running:\n'
 | 
					          '   while running:\n'
 | 
				
			||||||
          '       try:\n'
 | 
					          '       try:\n'
 | 
				
			||||||
          '           TARGET = await type(iter).__anext__(iter)\n'
 | 
					          '           TARGET = await type(iter).__anext__(iter)\n'
 | 
				
			||||||
          '       except StopAsyncIteration:\n'
 | 
					          '       except StopAsyncIteration:\n'
 | 
				
			||||||
          '           running = False\n'
 | 
					          '           running = False\n'
 | 
				
			||||||
          '       else:\n'
 | 
					          '       else:\n'
 | 
				
			||||||
          '           BLOCK\n'
 | 
					          '           SUITE\n'
 | 
				
			||||||
          '   else:\n'
 | 
					          '   else:\n'
 | 
				
			||||||
          '       BLOCK2\n'
 | 
					          '       SUITE2\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          'See also "__aiter__()" and "__anext__()" for details.\n'
 | 
					          'See also "__aiter__()" and "__anext__()" for details.\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
| 
						 | 
					@ -507,23 +508,27 @@
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          'The following code:\n'
 | 
					          'The following code:\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          '   async with EXPR as VAR:\n'
 | 
					          '   async with EXPRESSION as TARGET:\n'
 | 
				
			||||||
          '       BLOCK\n'
 | 
					          '       SUITE\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          'Is semantically equivalent to:\n'
 | 
					          'is semantically equivalent to:\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          '   mgr = (EXPR)\n'
 | 
					          '   manager = (EXPRESSION)\n'
 | 
				
			||||||
          '   aexit = type(mgr).__aexit__\n'
 | 
					          '   aenter = type(manager).__aenter__\n'
 | 
				
			||||||
          '   aenter = type(mgr).__aenter__(mgr)\n'
 | 
					          '   aexit = type(manager).__aexit__\n'
 | 
				
			||||||
 | 
					          '   value = await aenter(manager)\n'
 | 
				
			||||||
 | 
					          '   hit_except = False\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          '   VAR = await aenter\n'
 | 
					 | 
				
			||||||
          '   try:\n'
 | 
					          '   try:\n'
 | 
				
			||||||
          '       BLOCK\n'
 | 
					          '       TARGET = value\n'
 | 
				
			||||||
 | 
					          '       SUITE\n'
 | 
				
			||||||
          '   except:\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'
 | 
					          '           raise\n'
 | 
				
			||||||
          '   else:\n'
 | 
					          '   finally:\n'
 | 
				
			||||||
          '       await aexit(mgr, None, None, None)\n'
 | 
					          '       if not hit_except:\n'
 | 
				
			||||||
 | 
					          '           await aexit(manager, None, None, None)\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
          'See also "__aenter__()" and "__aexit__()" for details.\n'
 | 
					          'See also "__aenter__()" and "__aexit__()" for details.\n'
 | 
				
			||||||
          '\n'
 | 
					          '\n'
 | 
				
			||||||
| 
						 | 
					@ -2519,11 +2524,13 @@
 | 
				
			||||||
             '"with_item")\n'
 | 
					             '"with_item")\n'
 | 
				
			||||||
             '   is evaluated to obtain a context manager.\n'
 | 
					             '   is evaluated to obtain a context manager.\n'
 | 
				
			||||||
             '\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'
 | 
					             '\n'
 | 
				
			||||||
             '3. The context manager’s "__enter__()" method is invoked.\n'
 | 
					             '3. The context manager’s "__exit__()" is loaded for later use.\n'
 | 
				
			||||||
             '\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'
 | 
					             '   value from "__enter__()" is assigned to it.\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   Note: The "with" statement guarantees that if the '
 | 
					             '   Note: The "with" statement guarantees that if the '
 | 
				
			||||||
| 
						 | 
					@ -2536,9 +2543,9 @@
 | 
				
			||||||
             'occurring\n'
 | 
					             'occurring\n'
 | 
				
			||||||
             '     within the suite would be. See step 6 below.\n'
 | 
					             '     within the suite would be. See step 6 below.\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '5. The suite is executed.\n'
 | 
					             '6. The suite is executed.\n'
 | 
				
			||||||
             '\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, '
 | 
					             '   exception caused the suite to be exited, its type, value, '
 | 
				
			||||||
             'and\n'
 | 
					             'and\n'
 | 
				
			||||||
             '   traceback are passed as arguments to "__exit__()". Otherwise, '
 | 
					             '   traceback are passed as arguments to "__exit__()". Otherwise, '
 | 
				
			||||||
| 
						 | 
					@ -2560,18 +2567,42 @@
 | 
				
			||||||
             'proceeds\n'
 | 
					             'proceeds\n'
 | 
				
			||||||
             '   at the normal location for the kind of exit that was taken.\n'
 | 
					             '   at the normal location for the kind of exit that was taken.\n'
 | 
				
			||||||
             '\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 '
 | 
					             'With more than one item, the context managers are processed as '
 | 
				
			||||||
             'if\n'
 | 
					             'if\n'
 | 
				
			||||||
             'multiple "with" statements were nested:\n'
 | 
					             'multiple "with" statements were nested:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   with A() as a, B() as b:\n'
 | 
					             '   with A() as a, B() as b:\n'
 | 
				
			||||||
             '       suite\n'
 | 
					             '       SUITE\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'is equivalent to\n'
 | 
					             'is semantically equivalent to:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   with A() as a:\n'
 | 
					             '   with A() as a:\n'
 | 
				
			||||||
             '       with B() as b:\n'
 | 
					             '       with B() as b:\n'
 | 
				
			||||||
             '           suite\n'
 | 
					             '           SUITE\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'Changed in version 3.1: Support for multiple context '
 | 
					             'Changed in version 3.1: Support for multiple context '
 | 
				
			||||||
             'expressions.\n'
 | 
					             'expressions.\n'
 | 
				
			||||||
| 
						 | 
					@ -2935,24 +2966,25 @@
 | 
				
			||||||
             'The following code:\n'
 | 
					             'The following code:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   async for TARGET in ITER:\n'
 | 
					             '   async for TARGET in ITER:\n'
 | 
				
			||||||
             '       BLOCK\n'
 | 
					             '       SUITE\n'
 | 
				
			||||||
             '   else:\n'
 | 
					             '   else:\n'
 | 
				
			||||||
             '       BLOCK2\n'
 | 
					             '       SUITE2\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'Is semantically equivalent to:\n'
 | 
					             'Is semantically equivalent to:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   iter = (ITER)\n'
 | 
					             '   iter = (ITER)\n'
 | 
				
			||||||
             '   iter = type(iter).__aiter__(iter)\n'
 | 
					             '   iter = type(iter).__aiter__(iter)\n'
 | 
				
			||||||
             '   running = True\n'
 | 
					             '   running = True\n'
 | 
				
			||||||
 | 
					             '\n'
 | 
				
			||||||
             '   while running:\n'
 | 
					             '   while running:\n'
 | 
				
			||||||
             '       try:\n'
 | 
					             '       try:\n'
 | 
				
			||||||
             '           TARGET = await type(iter).__anext__(iter)\n'
 | 
					             '           TARGET = await type(iter).__anext__(iter)\n'
 | 
				
			||||||
             '       except StopAsyncIteration:\n'
 | 
					             '       except StopAsyncIteration:\n'
 | 
				
			||||||
             '           running = False\n'
 | 
					             '           running = False\n'
 | 
				
			||||||
             '       else:\n'
 | 
					             '       else:\n'
 | 
				
			||||||
             '           BLOCK\n'
 | 
					             '           SUITE\n'
 | 
				
			||||||
             '   else:\n'
 | 
					             '   else:\n'
 | 
				
			||||||
             '       BLOCK2\n'
 | 
					             '       SUITE2\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'See also "__aiter__()" and "__anext__()" for details.\n'
 | 
					             'See also "__aiter__()" and "__anext__()" for details.\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
| 
						 | 
					@ -2972,23 +3004,27 @@
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'The following code:\n'
 | 
					             'The following code:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   async with EXPR as VAR:\n'
 | 
					             '   async with EXPRESSION as TARGET:\n'
 | 
				
			||||||
             '       BLOCK\n'
 | 
					             '       SUITE\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'Is semantically equivalent to:\n'
 | 
					             'is semantically equivalent to:\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   mgr = (EXPR)\n'
 | 
					             '   manager = (EXPRESSION)\n'
 | 
				
			||||||
             '   aexit = type(mgr).__aexit__\n'
 | 
					             '   aenter = type(manager).__aenter__\n'
 | 
				
			||||||
             '   aenter = type(mgr).__aenter__(mgr)\n'
 | 
					             '   aexit = type(manager).__aexit__\n'
 | 
				
			||||||
 | 
					             '   value = await aenter(manager)\n'
 | 
				
			||||||
 | 
					             '   hit_except = False\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             '   VAR = await aenter\n'
 | 
					 | 
				
			||||||
             '   try:\n'
 | 
					             '   try:\n'
 | 
				
			||||||
             '       BLOCK\n'
 | 
					             '       TARGET = value\n'
 | 
				
			||||||
 | 
					             '       SUITE\n'
 | 
				
			||||||
             '   except:\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'
 | 
					             '           raise\n'
 | 
				
			||||||
             '   else:\n'
 | 
					             '   finally:\n'
 | 
				
			||||||
             '       await aexit(mgr, None, None, None)\n'
 | 
					             '       if not hit_except:\n'
 | 
				
			||||||
 | 
					             '           await aexit(manager, None, None, None)\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
             'See also "__aenter__()" and "__aexit__()" for details.\n'
 | 
					             'See also "__aenter__()" and "__aexit__()" for details.\n'
 | 
				
			||||||
             '\n'
 | 
					             '\n'
 | 
				
			||||||
| 
						 | 
					@ -6808,7 +6844,7 @@
 | 
				
			||||||
                  'object.__rfloordiv__(self, other)\n'
 | 
					                  'object.__rfloordiv__(self, other)\n'
 | 
				
			||||||
                  'object.__rmod__(self, other)\n'
 | 
					                  'object.__rmod__(self, other)\n'
 | 
				
			||||||
                  'object.__rdivmod__(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.__rlshift__(self, other)\n'
 | 
				
			||||||
                  'object.__rrshift__(self, other)\n'
 | 
					                  'object.__rrshift__(self, other)\n'
 | 
				
			||||||
                  'object.__rand__(self, other)\n'
 | 
					                  'object.__rand__(self, other)\n'
 | 
				
			||||||
| 
						 | 
					@ -9483,7 +9519,7 @@
 | 
				
			||||||
                 'object.__rfloordiv__(self, other)\n'
 | 
					                 'object.__rfloordiv__(self, other)\n'
 | 
				
			||||||
                 'object.__rmod__(self, other)\n'
 | 
					                 'object.__rmod__(self, other)\n'
 | 
				
			||||||
                 'object.__rdivmod__(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.__rlshift__(self, other)\n'
 | 
				
			||||||
                 'object.__rrshift__(self, other)\n'
 | 
					                 'object.__rrshift__(self, other)\n'
 | 
				
			||||||
                 'object.__rand__(self, other)\n'
 | 
					                 'object.__rand__(self, other)\n'
 | 
				
			||||||
| 
						 | 
					@ -9874,9 +9910,8 @@
 | 
				
			||||||
                   'best\n'
 | 
					                   'best\n'
 | 
				
			||||||
                   '   performances, but only used at the first encoding '
 | 
					                   '   performances, but only used at the first encoding '
 | 
				
			||||||
                   'error. Enable the\n'
 | 
					                   'error. Enable the\n'
 | 
				
			||||||
                   '   development mode ("-X" "dev" option), or use a debug '
 | 
					                   '   Python Development Mode, or use a debug build to check '
 | 
				
			||||||
                   'build, to\n'
 | 
					                   '*errors*.\n'
 | 
				
			||||||
                   '   check *errors*.\n'
 | 
					 | 
				
			||||||
                   '\n'
 | 
					                   '\n'
 | 
				
			||||||
                   '   Changed in version 3.1: Support for keyword arguments '
 | 
					                   '   Changed in version 3.1: Support for keyword arguments '
 | 
				
			||||||
                   'added.\n'
 | 
					                   'added.\n'
 | 
				
			||||||
| 
						 | 
					@ -12401,6 +12436,8 @@
 | 
				
			||||||
                 'dictionary. This\n'
 | 
					                 'dictionary. This\n'
 | 
				
			||||||
                 '      is a shortcut for "reversed(d.keys())".\n'
 | 
					                 '      is a shortcut for "reversed(d.keys())".\n'
 | 
				
			||||||
                 '\n'
 | 
					                 '\n'
 | 
				
			||||||
 | 
					                 '      New in version 3.8.\n'
 | 
				
			||||||
 | 
					                 '\n'
 | 
				
			||||||
                 '   setdefault(key[, default])\n'
 | 
					                 '   setdefault(key[, default])\n'
 | 
				
			||||||
                 '\n'
 | 
					                 '\n'
 | 
				
			||||||
                 '      If *key* is in the dictionary, return its value.  If '
 | 
					                 '      If *key* is in the dictionary, return its value.  If '
 | 
				
			||||||
| 
						 | 
					@ -13606,11 +13643,13 @@
 | 
				
			||||||
         '1. The context expression (the expression given in the "with_item")\n'
 | 
					         '1. The context expression (the expression given in the "with_item")\n'
 | 
				
			||||||
         '   is evaluated to obtain a context manager.\n'
 | 
					         '   is evaluated to obtain a context manager.\n'
 | 
				
			||||||
         '\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'
 | 
					         '\n'
 | 
				
			||||||
         '3. The context manager’s "__enter__()" method is invoked.\n'
 | 
					         '3. The context manager’s "__exit__()" is loaded for later use.\n'
 | 
				
			||||||
         '\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'
 | 
					         '   value from "__enter__()" is assigned to it.\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         '   Note: The "with" statement guarantees that if the "__enter__()"\n'
 | 
					         '   Note: The "with" statement guarantees that if the "__enter__()"\n'
 | 
				
			||||||
| 
						 | 
					@ -13620,9 +13659,9 @@
 | 
				
			||||||
         '     target list, it will be treated the same as an error occurring\n'
 | 
					         '     target list, it will be treated the same as an error occurring\n'
 | 
				
			||||||
         '     within the suite would be. See step 6 below.\n'
 | 
					         '     within the suite would be. See step 6 below.\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         '5. The suite is executed.\n'
 | 
					         '6. The suite is executed.\n'
 | 
				
			||||||
         '\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'
 | 
					         '   exception caused the suite to be exited, its type, value, and\n'
 | 
				
			||||||
         '   traceback are passed as arguments to "__exit__()". Otherwise, '
 | 
					         '   traceback are passed as arguments to "__exit__()". Otherwise, '
 | 
				
			||||||
         'three\n'
 | 
					         'three\n'
 | 
				
			||||||
| 
						 | 
					@ -13642,17 +13681,41 @@
 | 
				
			||||||
         'proceeds\n'
 | 
					         'proceeds\n'
 | 
				
			||||||
         '   at the normal location for the kind of exit that was taken.\n'
 | 
					         '   at the normal location for the kind of exit that was taken.\n'
 | 
				
			||||||
         '\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'
 | 
					         'With more than one item, the context managers are processed as if\n'
 | 
				
			||||||
         'multiple "with" statements were nested:\n'
 | 
					         'multiple "with" statements were nested:\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         '   with A() as a, B() as b:\n'
 | 
					         '   with A() as a, B() as b:\n'
 | 
				
			||||||
         '       suite\n'
 | 
					         '       SUITE\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         'is equivalent to\n'
 | 
					         'is semantically equivalent to:\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         '   with A() as a:\n'
 | 
					         '   with A() as a:\n'
 | 
				
			||||||
         '       with B() as b:\n'
 | 
					         '       with B() as b:\n'
 | 
				
			||||||
         '           suite\n'
 | 
					         '           SUITE\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
         'Changed in version 3.1: Support for multiple context expressions.\n'
 | 
					         'Changed in version 3.1: Support for multiple context expressions.\n'
 | 
				
			||||||
         '\n'
 | 
					         '\n'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										906
									
								
								Misc/NEWS.d/3.9.0a3.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										906
									
								
								Misc/NEWS.d/3.9.0a3.rst
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,906 @@
 | 
				
			||||||
 | 
					.. bpo: 39427
 | 
				
			||||||
 | 
					.. date: 2020-01-22-22-28-04
 | 
				
			||||||
 | 
					.. nonce: LiO-Eo
 | 
				
			||||||
 | 
					.. release date: 2020-01-24
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Document all possibilities for the ``-X`` options in the command line help
 | 
				
			||||||
 | 
					section. Patch by Pablo Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39421
 | 
				
			||||||
 | 
					.. date: 2020-01-22-15-53-37
 | 
				
			||||||
 | 
					.. nonce: O3nG7u
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix possible crashes when operating with the functions in the :mod:`heapq`
 | 
				
			||||||
 | 
					module and custom comparison operators.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39386
 | 
				
			||||||
 | 
					.. date: 2020-01-20-21-40-57
 | 
				
			||||||
 | 
					.. nonce: ULqD8t
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Prevent double awaiting of async iterator.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 17005
 | 
				
			||||||
 | 
					.. date: 2020-01-17-00-00-58
 | 
				
			||||||
 | 
					.. nonce: nTSxsy
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
 | 
				
			||||||
 | 
					offers functionality to perform topological sorting of graphs. Patch by
 | 
				
			||||||
 | 
					Pablo Galindo, Tim Peters and Larry Hastings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39320
 | 
				
			||||||
 | 
					.. date: 2020-01-15-15-33-44
 | 
				
			||||||
 | 
					.. nonce: b4hnJW
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Replace four complex bytecodes for building sequences with three simpler
 | 
				
			||||||
 | 
					ones.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following four bytecodes have been removed:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* BUILD_LIST_UNPACK
 | 
				
			||||||
 | 
					* BUILD_TUPLE_UNPACK
 | 
				
			||||||
 | 
					* BUILD_SET_UNPACK
 | 
				
			||||||
 | 
					* BUILD_TUPLE_UNPACK_WITH_CALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following three bytecodes have been added:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* LIST_TO_TUPLE
 | 
				
			||||||
 | 
					* LIST_EXTEND
 | 
				
			||||||
 | 
					* SET_UPDATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39336
 | 
				
			||||||
 | 
					.. date: 2020-01-15-01-39-29
 | 
				
			||||||
 | 
					.. nonce: nJ7W9I
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Import loaders which publish immutable module objects can now publish
 | 
				
			||||||
 | 
					immutable packages in addition to individual modules.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39322
 | 
				
			||||||
 | 
					.. date: 2020-01-13-15-18-13
 | 
				
			||||||
 | 
					.. nonce: aAs-1T
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Added a new function :func:`gc.is_finalized` to check if an object has been
 | 
				
			||||||
 | 
					finalized by the garbage collector. Patch by Pablo Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39048
 | 
				
			||||||
 | 
					.. date: 2020-01-13-14-45-22
 | 
				
			||||||
 | 
					.. nonce: iPsj81
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Improve the displayed error message when incorrect types are passed to
 | 
				
			||||||
 | 
					``async with`` statements by looking up the :meth:`__aenter__` special
 | 
				
			||||||
 | 
					method before the :meth:`__aexit__` special method when entering an
 | 
				
			||||||
 | 
					asynchronous context manager. Patch by Géry Ogam.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39235
 | 
				
			||||||
 | 
					.. date: 2020-01-09-10-01-18
 | 
				
			||||||
 | 
					.. nonce: RYwjoc
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix AST end location for lone generator expression in function call, e.g.
 | 
				
			||||||
 | 
					f(i for i in a).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39209
 | 
				
			||||||
 | 
					.. date: 2020-01-06-10-29-16
 | 
				
			||||||
 | 
					.. nonce: QHAONe
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Correctly handle multi-line tokens in interactive mode. Patch by Pablo
 | 
				
			||||||
 | 
					Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 1635741
 | 
				
			||||||
 | 
					.. date: 2020-01-05-13-40-08
 | 
				
			||||||
 | 
					.. nonce: QRTJVC
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Port _json extension module to multiphase initialization (:pep:`489`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39216
 | 
				
			||||||
 | 
					.. date: 2020-01-05-06-55-52
 | 
				
			||||||
 | 
					.. nonce: 74jLh9
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix constant folding optimization for positional only arguments - by Anthony
 | 
				
			||||||
 | 
					Sottile.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39215
 | 
				
			||||||
 | 
					.. date: 2020-01-04-17-25-34
 | 
				
			||||||
 | 
					.. nonce: xiqiIz
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix ``SystemError`` when nested function has annotation on positional-only
 | 
				
			||||||
 | 
					argument - by Anthony Sottile.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39200
 | 
				
			||||||
 | 
					.. date: 2020-01-04-01-14-32
 | 
				
			||||||
 | 
					.. nonce: 8Z9DYp
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Correct the error message when calling the :func:`min` or :func:`max` with
 | 
				
			||||||
 | 
					no arguments. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39200
 | 
				
			||||||
 | 
					.. date: 2020-01-03-14-50-14
 | 
				
			||||||
 | 
					.. nonce: Ip2_iI
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Correct the error message when trying to construct :class:`range` objects
 | 
				
			||||||
 | 
					with no arguments. Patch by Pablo Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39166
 | 
				
			||||||
 | 
					.. date: 2020-01-02-22-22-03
 | 
				
			||||||
 | 
					.. nonce: Qt-UeD
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix incorrect line execution reporting in trace functions when tracing the
 | 
				
			||||||
 | 
					last iteration of asynchronous for loops. Patch by Pablo Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39114
 | 
				
			||||||
 | 
					.. date: 2019-12-31-18-25-45
 | 
				
			||||||
 | 
					.. nonce: WG9alt
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix incorrent line execution reporting in trace functions when tracing
 | 
				
			||||||
 | 
					exception handlers with name binding. Patch by Pablo Galindo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39156
 | 
				
			||||||
 | 
					.. date: 2019-12-30-10-53-59
 | 
				
			||||||
 | 
					.. nonce: veT-CB
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Split the COMPARE_OP bytecode instruction into four distinct instructions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*  COMPARE_OP for rich comparisons
 | 
				
			||||||
 | 
					*  IS_OP for 'is' and 'is not' tests
 | 
				
			||||||
 | 
					*  CONTAINS_OP for 'in' and 'is not' tests
 | 
				
			||||||
 | 
					*  JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This improves the clarity of the interpreter and should provide a modest
 | 
				
			||||||
 | 
					speedup.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38588
 | 
				
			||||||
 | 
					.. date: 2019-12-29-19-13-54
 | 
				
			||||||
 | 
					.. nonce: pgXnNS
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix possible crashes in dict and list when calling
 | 
				
			||||||
 | 
					:c:func:`PyObject_RichCompareBool`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 13601
 | 
				
			||||||
 | 
					.. date: 2019-12-17-22-32-11
 | 
				
			||||||
 | 
					.. nonce: vNP4LC
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
 | 
				
			||||||
 | 
					redirected to a file. You can still make ``sys.stderr`` unbuffered by
 | 
				
			||||||
 | 
					passing the :option:`-u` command-line option or setting the
 | 
				
			||||||
 | 
					:envvar:`PYTHONUNBUFFERED` environment variable.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(Contributed by Jendrik Seipp in bpo-13601.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38610
 | 
				
			||||||
 | 
					.. date: 2019-10-31-14-30-39
 | 
				
			||||||
 | 
					.. nonce: fHdVMS
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix possible crashes in several list methods by holding strong references to
 | 
				
			||||||
 | 
					list elements when calling :c:func:`PyObject_RichCompareBool`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 32021
 | 
				
			||||||
 | 
					.. date: 2019-03-11-13-30-40
 | 
				
			||||||
 | 
					.. nonce: dpbtkP
 | 
				
			||||||
 | 
					.. section: Core and Builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Include brotli .br encoding in mimetypes encodings_map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39430
 | 
				
			||||||
 | 
					.. date: 2020-01-24-11-05-21
 | 
				
			||||||
 | 
					.. nonce: I0UQzM
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed race condition in lazy imports in :mod:`tarfile`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39413
 | 
				
			||||||
 | 
					.. date: 2020-01-24-10-10-25
 | 
				
			||||||
 | 
					.. nonce: 7XYDM8
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The :func:`os.unsetenv` function is now also available on Windows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39390
 | 
				
			||||||
 | 
					.. date: 2020-01-23-21-34-29
 | 
				
			||||||
 | 
					.. nonce: D2tSXk
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
 | 
				
			||||||
 | 
					The argument types are now str and List[str] again.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39395
 | 
				
			||||||
 | 
					.. date: 2020-01-23-03-05-41
 | 
				
			||||||
 | 
					.. nonce: 4dda42
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
 | 
				
			||||||
 | 
					available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39406
 | 
				
			||||||
 | 
					.. date: 2020-01-22-21-18-58
 | 
				
			||||||
 | 
					.. nonce: HMpe8x
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If ``setenv()`` C function is available, :func:`os.putenv` is now
 | 
				
			||||||
 | 
					implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
 | 
				
			||||||
 | 
					have to handle the environment variable memory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39396
 | 
				
			||||||
 | 
					.. date: 2020-01-21-09-00-42
 | 
				
			||||||
 | 
					.. nonce: 6UXQXE
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 29435
 | 
				
			||||||
 | 
					.. date: 2020-01-20-18-48-00
 | 
				
			||||||
 | 
					.. nonce: qqJ2Ax
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Allow :func:`tarfile.is_tarfile` to be used with file and file-like objects,
 | 
				
			||||||
 | 
					like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39377
 | 
				
			||||||
 | 
					.. date: 2020-01-20-13-00-35
 | 
				
			||||||
 | 
					.. nonce: QSFdaU
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Removed ``encoding`` option from :func:`json.loads`.  It has been deprecated
 | 
				
			||||||
 | 
					since Python 3.1.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39389
 | 
				
			||||||
 | 
					.. date: 2020-01-20-00-56-01
 | 
				
			||||||
 | 
					.. nonce: fEirIS
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Write accurate compression level metadata in :mod:`gzip` archives, rather
 | 
				
			||||||
 | 
					than always signaling maximum compression.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39366
 | 
				
			||||||
 | 
					.. date: 2020-01-17-18-14-51
 | 
				
			||||||
 | 
					.. nonce: Cv3NQS
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
 | 
				
			||||||
 | 
					:class:`nntplib.NNTP` have been removed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39357
 | 
				
			||||||
 | 
					.. date: 2020-01-16-11-24-00
 | 
				
			||||||
 | 
					.. nonce: bCwx-h
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0,
 | 
				
			||||||
 | 
					it was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an
 | 
				
			||||||
 | 
					open file object, to control how the file is opened. The *compresslevel*
 | 
				
			||||||
 | 
					parameter becomes keyword-only.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39353
 | 
				
			||||||
 | 
					.. date: 2020-01-16-10-21-48
 | 
				
			||||||
 | 
					.. nonce: ntp7Ql
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module
 | 
				
			||||||
 | 
					and the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
 | 
				
			||||||
 | 
					:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
 | 
				
			||||||
 | 
					:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39351
 | 
				
			||||||
 | 
					.. date: 2020-01-16-09-27-28
 | 
				
			||||||
 | 
					.. nonce: a-FQdv
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
 | 
				
			||||||
 | 
					deprecated since Python 3.1: use :func:`base64.encodebytes` and
 | 
				
			||||||
 | 
					:func:`base64.decodebytes` instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39350
 | 
				
			||||||
 | 
					.. date: 2020-01-16-09-15-40
 | 
				
			||||||
 | 
					.. nonce: ZQx0uY
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Remove ``fractions.gcd()`` function, deprecated since Python 3.5
 | 
				
			||||||
 | 
					(:issue:`22486`): use :func:`math.gcd` instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39329
 | 
				
			||||||
 | 
					.. date: 2020-01-14-22-16-07
 | 
				
			||||||
 | 
					.. nonce: 6OKGBn
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
 | 
				
			||||||
 | 
					Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39313
 | 
				
			||||||
 | 
					.. date: 2020-01-12-18-17-00
 | 
				
			||||||
 | 
					.. nonce: DCTsnm
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add a new ``exec_function`` option (*--exec-function* in the CLI) to
 | 
				
			||||||
 | 
					``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan
 | 
				
			||||||
 | 
					Taskaya.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39259
 | 
				
			||||||
 | 
					.. date: 2020-01-12-17-19-40
 | 
				
			||||||
 | 
					.. nonce: iax06r
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
 | 
				
			||||||
 | 
					:class:`ValueError` if the given timeout for their constructor is zero to
 | 
				
			||||||
 | 
					prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39259
 | 
				
			||||||
 | 
					.. date: 2020-01-12-16-34-28
 | 
				
			||||||
 | 
					.. nonce: J_yBVq
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
 | 
				
			||||||
 | 
					:class:`ValueError` if the given timeout for their constructor is zero to
 | 
				
			||||||
 | 
					prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39310
 | 
				
			||||||
 | 
					.. date: 2020-01-12-13-34-42
 | 
				
			||||||
 | 
					.. nonce: YMRdcj
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add :func:`math.ulp`: return the value of the least significant bit of a
 | 
				
			||||||
 | 
					float.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39297
 | 
				
			||||||
 | 
					.. date: 2020-01-11-01-15-37
 | 
				
			||||||
 | 
					.. nonce: y98Z6Q
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Improved performance of importlib.metadata distribution discovery and
 | 
				
			||||||
 | 
					resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39259
 | 
				
			||||||
 | 
					.. date: 2020-01-11-00-32-45
 | 
				
			||||||
 | 
					.. nonce: _S5VjC
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
 | 
				
			||||||
 | 
					:class:`ValueError` if the given timeout for their constructor is zero to
 | 
				
			||||||
 | 
					prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38901
 | 
				
			||||||
 | 
					.. date: 2020-01-10-22-30-48
 | 
				
			||||||
 | 
					.. nonce: OdVIIb
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When you specify prompt='.' or equivalently python -m venv --prompt . ...
 | 
				
			||||||
 | 
					the basename of the current directory is used to set the created venv's
 | 
				
			||||||
 | 
					prompt when it's activated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39288
 | 
				
			||||||
 | 
					.. date: 2020-01-10-16-52-09
 | 
				
			||||||
 | 
					.. nonce: IB-aQX
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add :func:`math.nextafter`: return the next floating-point value after *x*
 | 
				
			||||||
 | 
					towards *y*.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39259
 | 
				
			||||||
 | 
					.. date: 2020-01-09-10-58-58
 | 
				
			||||||
 | 
					.. nonce: RmDgCC
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
 | 
				
			||||||
 | 
					:class:`ValueError` if the given timeout for their constructor is zero to
 | 
				
			||||||
 | 
					prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39242
 | 
				
			||||||
 | 
					.. date: 2020-01-08-23-25-27
 | 
				
			||||||
 | 
					.. nonce: bnL65N
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Updated the Gmane domain from news.gmane.org to news.gmane.io which is used
 | 
				
			||||||
 | 
					for examples of :class:`~nntplib.NNTP` news reader server and nntplib tests.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 35292
 | 
				
			||||||
 | 
					.. date: 2020-01-08-14-39-19
 | 
				
			||||||
 | 
					.. nonce: ihRT1z
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so
 | 
				
			||||||
 | 
					the `mimetypes.init` is called lazily to avoid unnecessary costs when
 | 
				
			||||||
 | 
					:mod:`http.server` module is imported.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39239
 | 
				
			||||||
 | 
					.. date: 2020-01-07-01-02-44
 | 
				
			||||||
 | 
					.. nonce: r7vecs
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The :meth:`select.epoll.unregister` method no longer ignores the
 | 
				
			||||||
 | 
					:data:`~errno.EBADF` error.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38907
 | 
				
			||||||
 | 
					.. date: 2020-01-06-02-14-38
 | 
				
			||||||
 | 
					.. nonce: F1RkCR
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In http.server script, restore binding to IPv4 on Windows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39152
 | 
				
			||||||
 | 
					.. date: 2020-01-03-18-02-50
 | 
				
			||||||
 | 
					.. nonce: JgPjCC
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix ttk.Scale.configure([name]) to return configuration tuple for name or
 | 
				
			||||||
 | 
					all options.  Giovanni Lombardo contributed part of the patch.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39198
 | 
				
			||||||
 | 
					.. date: 2020-01-02-20-21-03
 | 
				
			||||||
 | 
					.. nonce: nzwGyG
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio
 | 
				
			||||||
 | 
					timeouts or stopit) , the `logging` global lock may not be released
 | 
				
			||||||
 | 
					appropriately, resulting in deadlock.  This change wraps that block of code
 | 
				
			||||||
 | 
					with `try...finally` to ensure the lock is released.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39191
 | 
				
			||||||
 | 
					.. date: 2020-01-02-17-28-03
 | 
				
			||||||
 | 
					.. nonce: ur_scy
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Perform a check for running loop before starting a new task in
 | 
				
			||||||
 | 
					``loop.run_until_complete()`` to fail fast; it prevents the side effect of
 | 
				
			||||||
 | 
					new task spawning before exception raising.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38871
 | 
				
			||||||
 | 
					.. date: 2020-01-01-18-44-52
 | 
				
			||||||
 | 
					.. nonce: 3EEOLg
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Correctly parenthesize filter-based statements that contain lambda
 | 
				
			||||||
 | 
					expressions in mod:`lib2to3`. Patch by Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39142
 | 
				
			||||||
 | 
					.. date: 2019-12-31-19-27-23
 | 
				
			||||||
 | 
					.. nonce: oqU5iD
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A change was made to logging.config.dictConfig to avoid converting instances
 | 
				
			||||||
 | 
					of named tuples to ConvertingTuple. It's assumed that named tuples are too
 | 
				
			||||||
 | 
					specialised to be treated like ordinary tuples; if a user of named tuples
 | 
				
			||||||
 | 
					requires ConvertingTuple functionality, they will have to implement that
 | 
				
			||||||
 | 
					themselves in their named tuple class.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39158
 | 
				
			||||||
 | 
					.. date: 2019-12-29-15-44-38
 | 
				
			||||||
 | 
					.. nonce: cxVoOR
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ast.literal_eval() now supports empty sets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39129
 | 
				
			||||||
 | 
					.. date: 2019-12-24-10-43-13
 | 
				
			||||||
 | 
					.. nonce: jVx5rW
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix import path for ``asyncio.TimeoutError``
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39057
 | 
				
			||||||
 | 
					.. date: 2019-12-15-21-47-54
 | 
				
			||||||
 | 
					.. nonce: FOxn-w
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
 | 
				
			||||||
 | 
					no longer ignores a trailing newline.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39056
 | 
				
			||||||
 | 
					.. date: 2019-12-15-21-05-16
 | 
				
			||||||
 | 
					.. nonce: nEfUM9
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed handling invalid warning category in the -W option.  No longer import
 | 
				
			||||||
 | 
					the re module if it is not needed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39055
 | 
				
			||||||
 | 
					.. date: 2019-12-15-19-23-23
 | 
				
			||||||
 | 
					.. nonce: FmN3un
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
 | 
				
			||||||
 | 
					if the input ends with a single ``\n``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 21600
 | 
				
			||||||
 | 
					.. date: 2019-12-14-14-38-40
 | 
				
			||||||
 | 
					.. nonce: kC4Cgh
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fix :func:`mock.patch.stopall` to stop active patches that were created with
 | 
				
			||||||
 | 
					:func:`mock.patch.dict`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39019
 | 
				
			||||||
 | 
					.. date: 2019-12-10-21-11-05
 | 
				
			||||||
 | 
					.. nonce: YIlgZ7
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Implement dummy ``__class_getitem__`` for
 | 
				
			||||||
 | 
					:class:`tempfile.SpooledTemporaryFile`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39019
 | 
				
			||||||
 | 
					.. date: 2019-12-10-21-03-34
 | 
				
			||||||
 | 
					.. nonce: i8RpMZ
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
 | 
				
			||||||
 | 
					``subprocess.CompletedProcess``
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38914
 | 
				
			||||||
 | 
					.. date: 2019-11-26-23-21-56
 | 
				
			||||||
 | 
					.. nonce: 8l-g-T
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Adjusted the wording of the warning issued by distutils' ``check`` command
 | 
				
			||||||
 | 
					when the ``author`` and ``maintainer`` fields are supplied but no
 | 
				
			||||||
 | 
					corresponding e-mail field (``author_email`` or ``maintainer_email``) is
 | 
				
			||||||
 | 
					found. The wording now reflects the fact that these fields are suggested,
 | 
				
			||||||
 | 
					but not required. Patch by Juergen Gmach.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38878
 | 
				
			||||||
 | 
					.. date: 2019-11-22-12-08-52
 | 
				
			||||||
 | 
					.. nonce: EJ0cFf
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
 | 
				
			||||||
 | 
					upon inheritence. Patch by Bar Harel.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38615
 | 
				
			||||||
 | 
					.. date: 2019-11-17-17-32-35
 | 
				
			||||||
 | 
					.. nonce: OVyaNX
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional
 | 
				
			||||||
 | 
					*timeout* parameter for their constructors. Also, the
 | 
				
			||||||
 | 
					:meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
 | 
				
			||||||
 | 
					with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
 | 
				
			||||||
 | 
					:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by
 | 
				
			||||||
 | 
					Dong-hee Na.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 35182
 | 
				
			||||||
 | 
					.. date: 2019-10-31-19-23-25
 | 
				
			||||||
 | 
					.. nonce: hzeNl9
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed :func:`Popen.communicate` subsequent call crash when the child process
 | 
				
			||||||
 | 
					has already closed any piped standard stream, but still continues to be
 | 
				
			||||||
 | 
					running. Patch by Andriy Maletsky.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38630
 | 
				
			||||||
 | 
					.. date: 2019-10-29-12-21-10
 | 
				
			||||||
 | 
					.. nonce: Dv6Xrm
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
 | 
				
			||||||
 | 
					Polling reduces the risk of sending a signal to the wrong process if the
 | 
				
			||||||
 | 
					process completed, the :attr:`subprocess.Popen.returncode` attribute is
 | 
				
			||||||
 | 
					still ``None``, and the pid has been reassigned (recycled) to a new
 | 
				
			||||||
 | 
					different process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38536
 | 
				
			||||||
 | 
					.. date: 2019-10-21-20-24-51
 | 
				
			||||||
 | 
					.. nonce: beZ0Sk
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Removes trailing space in formatted currency with `international=True` and a
 | 
				
			||||||
 | 
					locale with symbol following value. E.g. `locale.currency(12.34,
 | 
				
			||||||
 | 
					international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38473
 | 
				
			||||||
 | 
					.. date: 2019-10-14-21-14-55
 | 
				
			||||||
 | 
					.. nonce: uXpVld
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use signature from inner mock for autospecced methods attached with
 | 
				
			||||||
 | 
					:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38361
 | 
				
			||||||
 | 
					.. date: 2019-10-04-09-49-56
 | 
				
			||||||
 | 
					.. nonce: LM4u4T
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixed an issue where ``ident`` could include a leading path separator when
 | 
				
			||||||
 | 
					:func:`syslog.openlog` was called without arguments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38293
 | 
				
			||||||
 | 
					.. date: 2019-09-29-08-17-03
 | 
				
			||||||
 | 
					.. nonce: wls5s3
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property`
 | 
				
			||||||
 | 
					objects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 37958
 | 
				
			||||||
 | 
					.. date: 2019-08-27-03-57-25
 | 
				
			||||||
 | 
					.. nonce: lRORI3
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Added the pstats.Stats.get_profile_dict() method to return the profile data
 | 
				
			||||||
 | 
					as a StatsProfile instance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 28367
 | 
				
			||||||
 | 
					.. date: 2019-05-06-22-38-47
 | 
				
			||||||
 | 
					.. nonce: 2AKen5
 | 
				
			||||||
 | 
					.. section: Library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Termios magic constants for the following baud rates:   - B500000   -
 | 
				
			||||||
 | 
					B576000   - B921600   - B1000000   - B1152000   - B1500000   - B2000000   -
 | 
				
			||||||
 | 
					B2500000   - B3000000   - B3500000   - B4000000 Patch by Andrey Smirnov
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39381
 | 
				
			||||||
 | 
					.. date: 2020-01-18-15-37-56
 | 
				
			||||||
 | 
					.. nonce: wTWe8d
 | 
				
			||||||
 | 
					.. section: Documentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
 | 
				
			||||||
 | 
					event loop only if called from the main thread.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 38918
 | 
				
			||||||
 | 
					.. date: 2019-12-15-22-04-41
 | 
				
			||||||
 | 
					.. nonce: 8JnDTS
 | 
				
			||||||
 | 
					.. section: Documentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add an entry for ``__module__`` in the "function" & "method" sections of the
 | 
				
			||||||
 | 
					`inspect docs types and members table
 | 
				
			||||||
 | 
					<https://docs.python.org/3/library/inspect.html#types-and-members>`_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 3530
 | 
				
			||||||
 | 
					.. date: 2019-11-17-11-53-10
 | 
				
			||||||
 | 
					.. nonce: 8zFUMc
 | 
				
			||||||
 | 
					.. section: Documentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer``
 | 
				
			||||||
 | 
					example and add advice on when to use the ``fix_missing_locations``
 | 
				
			||||||
 | 
					function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39395
 | 
				
			||||||
 | 
					.. date: 2020-01-23-03-05-13
 | 
				
			||||||
 | 
					.. nonce: RoArIZ
 | 
				
			||||||
 | 
					.. section: Build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv`
 | 
				
			||||||
 | 
					functions are now required to build Python.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39160
 | 
				
			||||||
 | 
					.. date: 2019-12-30-03-54-24
 | 
				
			||||||
 | 
					.. nonce: aBmj13
 | 
				
			||||||
 | 
					.. section: Build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Updated the documentation in `./configure --help` to show default values,
 | 
				
			||||||
 | 
					reference documentation where required and add additional explanation where
 | 
				
			||||||
 | 
					needed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39144
 | 
				
			||||||
 | 
					.. date: 2019-12-27-22-18-26
 | 
				
			||||||
 | 
					.. nonce: dwHMlR
 | 
				
			||||||
 | 
					.. section: Build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ctags and etags build targets both include Modules/_ctypes and Python
 | 
				
			||||||
 | 
					standard library source files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39050
 | 
				
			||||||
 | 
					.. date: 2020-01-22-22-28-06
 | 
				
			||||||
 | 
					.. nonce: zkn0FO
 | 
				
			||||||
 | 
					.. section: IDLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Make IDLE Settings dialog Help button work again.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 34118
 | 
				
			||||||
 | 
					.. date: 2019-12-30-16-44-07
 | 
				
			||||||
 | 
					.. nonce: FaNW0a
 | 
				
			||||||
 | 
					.. section: IDLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
 | 
				
			||||||
 | 
					the library manual built-in functions list.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 32989
 | 
				
			||||||
 | 
					.. date: 2018-03-03-12-56-26
 | 
				
			||||||
 | 
					.. nonce: FVhmhH
 | 
				
			||||||
 | 
					.. section: IDLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add tests for editor newline_and_indent_event method. Remove dead code from
 | 
				
			||||||
 | 
					pyparse find_good_parse_start method.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39372
 | 
				
			||||||
 | 
					.. date: 2020-01-17-19-25-48
 | 
				
			||||||
 | 
					.. nonce: hGJMY6
 | 
				
			||||||
 | 
					.. section: C API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clean header files of interfaces defined but with no implementation. The
 | 
				
			||||||
 | 
					public API symbols being removed are:
 | 
				
			||||||
 | 
					``_PyBytes_InsertThousandsGroupingLocale``,
 | 
				
			||||||
 | 
					``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
 | 
				
			||||||
 | 
					``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
 | 
				
			||||||
 | 
					``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
 | 
				
			||||||
 | 
					``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
 | 
				
			||||||
 | 
					``PyNoArgsFunction``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					..
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. bpo: 39164
 | 
				
			||||||
 | 
					.. date: 2019-12-30-10-43-52
 | 
				
			||||||
 | 
					.. nonce: WEV0uu
 | 
				
			||||||
 | 
					.. section: C API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception
 | 
				
			||||||
 | 
					information of the specified Python thread state.
 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
The ctags and etags build targets both include Modules/_ctypes and Python standard library source files.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Updated the documentation in `./configure --help` to show default values, reference documentation where required and add additional explanation where needed.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` functions
 | 
					 | 
				
			||||||
are now required to build Python.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception information of the specified Python thread state.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
Clean header files of interfaces defined but with no implementation. The
 | 
					 | 
				
			||||||
public API symbols being removed are:
 | 
					 | 
				
			||||||
``_PyBytes_InsertThousandsGroupingLocale``,
 | 
					 | 
				
			||||||
``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
 | 
					 | 
				
			||||||
``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
 | 
					 | 
				
			||||||
``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
 | 
					 | 
				
			||||||
``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
 | 
					 | 
				
			||||||
``PyNoArgsFunction``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Include brotli .br encoding in mimetypes encodings_map
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix possible crashes in several list methods by holding strong references to
 | 
					 | 
				
			||||||
list elements when calling :c:func:`PyObject_RichCompareBool`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
 | 
					 | 
				
			||||||
redirected to a file. You can still make ``sys.stderr`` unbuffered by
 | 
					 | 
				
			||||||
passing the :option:`-u` command-line option or setting the
 | 
					 | 
				
			||||||
:envvar:`PYTHONUNBUFFERED` environment variable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(Contributed by Jendrik Seipp in bpo-13601.)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix possible crashes in dict and list when calling
 | 
					 | 
				
			||||||
:c:func:`PyObject_RichCompareBool`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
Split the COMPARE_OP bytecode instruction into four distinct instructions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*  COMPARE_OP for rich comparisons
 | 
					 | 
				
			||||||
*  IS_OP for 'is' and 'is not' tests
 | 
					 | 
				
			||||||
*  CONTAINS_OP for 'in' and 'is not' tests
 | 
					 | 
				
			||||||
*  JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This improves the clarity of the interpreter and should provide a modest
 | 
					 | 
				
			||||||
speedup.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix incorrent line execution reporting in trace functions when tracing
 | 
					 | 
				
			||||||
exception handlers with name binding. Patch by Pablo Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix incorrect line execution reporting in trace functions when tracing the
 | 
					 | 
				
			||||||
last iteration of asynchronous for loops. Patch by Pablo Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Correct the error message when trying to construct :class:`range` objects
 | 
					 | 
				
			||||||
with no arguments. Patch by Pablo Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Correct the error message when calling the :func:`min` or :func:`max` with
 | 
					 | 
				
			||||||
no arguments. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix ``SystemError`` when nested function has annotation on positional-only
 | 
					 | 
				
			||||||
argument - by Anthony Sottile.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix constant folding optimization for positional only arguments - by Anthony
 | 
					 | 
				
			||||||
Sottile.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Port _json extension module to multiphase initialization (:pep:`489`).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Correctly handle multi-line tokens in interactive mode. Patch by Pablo
 | 
					 | 
				
			||||||
Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix AST end location for lone generator expression in function call, e.g.
 | 
					 | 
				
			||||||
f(i for i in a).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Improve the displayed error message when incorrect types are passed to ``async
 | 
					 | 
				
			||||||
with`` statements by looking up the :meth:`__aenter__` special method before
 | 
					 | 
				
			||||||
the :meth:`__aexit__` special method when entering an asynchronous context
 | 
					 | 
				
			||||||
manager. Patch by Géry Ogam.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Added a new function :func:`gc.is_finalized` to check if an object has been
 | 
					 | 
				
			||||||
finalized by the garbage collector. Patch by Pablo Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Import loaders which publish immutable module objects can now publish immutable packages in addition to individual modules.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,15 +0,0 @@
 | 
				
			||||||
Replace four complex bytecodes for building sequences with three simpler ones.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The following four bytecodes have been removed:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* BUILD_LIST_UNPACK
 | 
					 | 
				
			||||||
* BUILD_TUPLE_UNPACK 
 | 
					 | 
				
			||||||
* BUILD_SET_UNPACK 
 | 
					 | 
				
			||||||
* BUILD_TUPLE_UNPACK_WITH_CALL
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The following three bytecodes have been added:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* LIST_TO_TUPLE
 | 
					 | 
				
			||||||
* LIST_EXTEND
 | 
					 | 
				
			||||||
* SET_UPDATE
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
 | 
					 | 
				
			||||||
offers functionality to perform topological sorting of graphs. Patch by
 | 
					 | 
				
			||||||
Pablo Galindo, Tim Peters and Larry Hastings.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Prevent double awaiting of async iterator.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix possible crashes when operating with the functions in the :mod:`heapq`
 | 
					 | 
				
			||||||
module and custom comparison operators.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Document all possibilities for the ``-X`` options in the command line help
 | 
					 | 
				
			||||||
section. Patch by Pablo Galindo.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer`` example and add
 | 
					 | 
				
			||||||
advice on when to use the ``fix_missing_locations`` function.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Add an entry for ``__module__`` in the "function" & "method" sections of the
 | 
					 | 
				
			||||||
`inspect docs types and members table
 | 
					 | 
				
			||||||
<https://docs.python.org/3/library/inspect.html#types-and-members>`_
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
 | 
					 | 
				
			||||||
event loop only if called from the main thread.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Add tests for editor newline_and_indent_event method.
 | 
					 | 
				
			||||||
Remove dead code from pyparse find_good_parse_start method.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
 | 
					 | 
				
			||||||
the library manual built-in functions list.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Make IDLE Settings dialog Help button work again.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,13 +0,0 @@
 | 
				
			||||||
Termios magic constants for the following baud rates:
 | 
					 | 
				
			||||||
  - B500000
 | 
					 | 
				
			||||||
  - B576000
 | 
					 | 
				
			||||||
  - B921600
 | 
					 | 
				
			||||||
  - B1000000
 | 
					 | 
				
			||||||
  - B1152000
 | 
					 | 
				
			||||||
  - B1500000
 | 
					 | 
				
			||||||
  - B2000000
 | 
					 | 
				
			||||||
  - B2500000
 | 
					 | 
				
			||||||
  - B3000000
 | 
					 | 
				
			||||||
  - B3500000
 | 
					 | 
				
			||||||
  - B4000000
 | 
					 | 
				
			||||||
Patch by Andrey Smirnov
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Added the pstats.Stats.get_profile_dict() method to return the profile
 | 
					 | 
				
			||||||
data as a StatsProfile instance.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property` objects.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fixed an issue where ``ident`` could include a leading path separator when :func:`syslog.openlog` was called without arguments.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Use signature from inner mock for autospecced methods attached with
 | 
					 | 
				
			||||||
:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Removes trailing space in formatted currency with `international=True` and a locale with symbol following value.
 | 
					 | 
				
			||||||
E.g. `locale.currency(12.34, international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
 | 
					 | 
				
			||||||
Polling reduces the risk of sending a signal to the wrong process if the
 | 
					 | 
				
			||||||
process completed, the :attr:`subprocess.Popen.returncode` attribute is still
 | 
					 | 
				
			||||||
``None``, and the pid has been reassigned (recycled) to a new different
 | 
					 | 
				
			||||||
process.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Fixed :func:`Popen.communicate` subsequent call crash when the child process
 | 
					 | 
				
			||||||
has already closed any piped standard stream, but still continues to be
 | 
					 | 
				
			||||||
running. Patch by Andriy Maletsky.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an 
 | 
					 | 
				
			||||||
optional *timeout* parameter for their constructors. 
 | 
					 | 
				
			||||||
Also, the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
 | 
					 | 
				
			||||||
with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
 | 
					 | 
				
			||||||
:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
 | 
					 | 
				
			||||||
upon inheritence. Patch by Bar Harel.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
Adjusted the wording of the warning issued by distutils' ``check`` command when
 | 
					 | 
				
			||||||
the ``author`` and ``maintainer`` fields are supplied but no corresponding
 | 
					 | 
				
			||||||
e-mail field (``author_email`` or ``maintainer_email``) is found. The wording
 | 
					 | 
				
			||||||
now reflects the fact that these fields are suggested, but not required. Patch
 | 
					 | 
				
			||||||
by Juergen Gmach.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
 | 
					 | 
				
			||||||
``subprocess.CompletedProcess``
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Implement dummy ``__class_getitem__`` for :class:`tempfile.SpooledTemporaryFile`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix :func:`mock.patch.stopall` to stop active patches that were created with
 | 
					 | 
				
			||||||
:func:`mock.patch.dict`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
 | 
					 | 
				
			||||||
if the input ends with a single ``\n``.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fixed handling invalid warning category in the -W option.  No longer import
 | 
					 | 
				
			||||||
the re module if it is not needed.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
 | 
					 | 
				
			||||||
no longer ignores a trailing newline.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix import path for ``asyncio.TimeoutError``
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
ast.literal_eval() now supports empty sets.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
A change was made to logging.config.dictConfig to avoid converting instances
 | 
					 | 
				
			||||||
of named tuples to ConvertingTuple. It's assumed that named tuples are too
 | 
					 | 
				
			||||||
specialised to be treated like ordinary tuples; if a user of named tuples
 | 
					 | 
				
			||||||
requires ConvertingTuple functionality, they will have to implement that
 | 
					 | 
				
			||||||
themselves in their named tuple class.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Correctly parenthesize filter-based statements that contain lambda
 | 
					 | 
				
			||||||
expressions in mod:`lib2to3`. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Perform a check for running loop before starting a new task in
 | 
					 | 
				
			||||||
``loop.run_until_complete()`` to fail fast; it prevents the side effect of
 | 
					 | 
				
			||||||
new task spawning before exception raising.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio timeouts or stopit) , the `logging` global lock may not be released appropriately, resulting in deadlock.  This change wraps that block of code with `try...finally` to ensure the lock is released.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fix ttk.Scale.configure([name]) to return configuration tuple for name
 | 
					 | 
				
			||||||
or all options.  Giovanni Lombardo contributed part of the patch.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
In http.server script, restore binding to IPv4 on Windows.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
The :meth:`select.epoll.unregister` method no longer ignores the
 | 
					 | 
				
			||||||
:data:`~errno.EBADF` error.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so the `mimetypes.init` is called lazily to avoid unnecessary costs when :mod:`http.server` module is imported.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Updated the Gmane domain from news.gmane.org to news.gmane.io 
 | 
					 | 
				
			||||||
which is used for examples of :class:`~nntplib.NNTP` news reader server and
 | 
					 | 
				
			||||||
nntplib tests.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
 | 
					 | 
				
			||||||
:class:`ValueError` if the given timeout for their constructor is zero to
 | 
					 | 
				
			||||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Add :func:`math.nextafter`: return the next floating-point value after *x*
 | 
					 | 
				
			||||||
towards *y*.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
When you specify prompt='.' or equivalently python -m venv --prompt . ...
 | 
					 | 
				
			||||||
the basename of the current directory is used to set the created venv's
 | 
					 | 
				
			||||||
prompt when it's activated.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
 | 
					 | 
				
			||||||
:class:`ValueError` if the given timeout for their constructor is zero to
 | 
					 | 
				
			||||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Improved performance of importlib.metadata distribution discovery and resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Add :func:`math.ulp`: return the value of the least significant bit of a float.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
 | 
					 | 
				
			||||||
:class:`ValueError` if the given timeout for their constructor is zero to
 | 
					 | 
				
			||||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
 | 
					 | 
				
			||||||
:class:`ValueError` if the given timeout for their constructor is zero to
 | 
					 | 
				
			||||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Add a new ``exec_function`` option (*--exec-function* in the CLI) to
 | 
					 | 
				
			||||||
``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan Taskaya.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
 | 
					 | 
				
			||||||
Patch by Dong-hee Na.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Remove ``fractions.gcd()`` function, deprecated since Python 3.5
 | 
					 | 
				
			||||||
(:issue:`22486`): use :func:`math.gcd` instead.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
 | 
					 | 
				
			||||||
deprecated since Python 3.1: use :func:`base64.encodebytes` and
 | 
					 | 
				
			||||||
:func:`base64.decodebytes` instead.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module and
 | 
					 | 
				
			||||||
the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
 | 
					 | 
				
			||||||
:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
 | 
					 | 
				
			||||||
:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0, it
 | 
					 | 
				
			||||||
was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an open
 | 
					 | 
				
			||||||
file object, to control how the file is opened. The *compresslevel* parameter
 | 
					 | 
				
			||||||
becomes keyword-only.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
 | 
					 | 
				
			||||||
:class:`nntplib.NNTP` have been removed.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Write accurate compression level metadata in :mod:`gzip` archives, rather
 | 
					 | 
				
			||||||
than always signaling maximum compression.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Removed ``encoding`` option from :func:`json.loads`.  It has been deprecated
 | 
					 | 
				
			||||||
since Python 3.1.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Allow :func:`tarfile.is_tarfile` to be used with file and file-like
 | 
					 | 
				
			||||||
objects, like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
If ``setenv()`` C function is available, :func:`os.putenv` is now
 | 
					 | 
				
			||||||
implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
 | 
					 | 
				
			||||||
have to handle the environment variable memory.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
 | 
					 | 
				
			||||||
available.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,2 +0,0 @@
 | 
				
			||||||
Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
 | 
					 | 
				
			||||||
The argument types are now str and List[str] again.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
The :func:`os.unsetenv` function is now also available on Windows.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
Fixed race condition in lazy imports in :mod:`tarfile`.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
This is Python version 3.9.0 alpha 2
 | 
					This is Python version 3.9.0 alpha 3
 | 
				
			||||||
====================================
 | 
					====================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
 | 
					.. image:: https://travis-ci.org/python/cpython.svg?branch=master
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue