mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Update docs for 3.7.0a4
This commit is contained in:
		
							parent
							
								
									ca0c5f2656
								
							
						
					
					
						commit
						3b43bfaae6
					
				
					 86 changed files with 1119 additions and 351 deletions
				
			
		|  | @ -1,5 +1,5 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| # Autogenerated by Sphinx on Tue Dec  5 03:14:53 2017 | # Autogenerated by Sphinx on Mon Jan  8 21:23:03 2018 | ||||||
| topics = {'assert': 'The "assert" statement\n' | topics = {'assert': 'The "assert" statement\n' | ||||||
|            '**********************\n' |            '**********************\n' | ||||||
|            '\n' |            '\n' | ||||||
|  | @ -571,6 +571,65 @@ | ||||||
|                      '   sorts it.\n' |                      '   sorts it.\n' | ||||||
|                      '\n' |                      '\n' | ||||||
|                      '\n' |                      '\n' | ||||||
|  |                      'Customizing module attribute access\n' | ||||||
|  |                      '===================================\n' | ||||||
|  |                      '\n' | ||||||
|  |                      'Special names "__getattr__" and "__dir__" can be also ' | ||||||
|  |                      'used to\n' | ||||||
|  |                      'customize access to module attributes. The "__getattr__" ' | ||||||
|  |                      'function at\n' | ||||||
|  |                      'the module level should accept one argument which is the ' | ||||||
|  |                      'name of an\n' | ||||||
|  |                      'attribute and return the computed value or raise an ' | ||||||
|  |                      '"AttributeError".\n' | ||||||
|  |                      'If an attribute is not found on a module object through ' | ||||||
|  |                      'the normal\n' | ||||||
|  |                      'lookup, i.e. "object.__getattribute__()", then ' | ||||||
|  |                      '"__getattr__" is\n' | ||||||
|  |                      'searched in the module "__dict__" before raising an ' | ||||||
|  |                      '"AttributeError".\n' | ||||||
|  |                      'If found, it is called with the attribute name and the ' | ||||||
|  |                      'result is\n' | ||||||
|  |                      'returned.\n' | ||||||
|  |                      '\n' | ||||||
|  |                      'The "__dir__" function should accept no arguments, and ' | ||||||
|  |                      'return a list\n' | ||||||
|  |                      'of strings that represents the names accessible on ' | ||||||
|  |                      'module. If present,\n' | ||||||
|  |                      'this function overrides the standard "dir()" search on a ' | ||||||
|  |                      'module.\n' | ||||||
|  |                      '\n' | ||||||
|  |                      'For a more fine grained customization of the module ' | ||||||
|  |                      'behavior (setting\n' | ||||||
|  |                      'attributes, properties, etc.), one can set the ' | ||||||
|  |                      '"__class__" attribute\n' | ||||||
|  |                      'of a module object to a subclass of "types.ModuleType". ' | ||||||
|  |                      'For example:\n' | ||||||
|  |                      '\n' | ||||||
|  |                      '   import sys\n' | ||||||
|  |                      '   from types import ModuleType\n' | ||||||
|  |                      '\n' | ||||||
|  |                      '   class VerboseModule(ModuleType):\n' | ||||||
|  |                      '       def __repr__(self):\n' | ||||||
|  |                      "           return f'Verbose {self.__name__}'\n" | ||||||
|  |                      '\n' | ||||||
|  |                      '       def __setattr__(self, attr, value):\n' | ||||||
|  |                      "           print(f'Setting {attr}...')\n" | ||||||
|  |                      '           setattr(self, attr, value)\n' | ||||||
|  |                      '\n' | ||||||
|  |                      '   sys.modules[__name__].__class__ = VerboseModule\n' | ||||||
|  |                      '\n' | ||||||
|  |                      'Note: Defining module "__getattr__" and setting module ' | ||||||
|  |                      '"__class__"\n' | ||||||
|  |                      '  only affect lookups made using the attribute access ' | ||||||
|  |                      'syntax --\n' | ||||||
|  |                      '  directly accessing the module globals (whether by code ' | ||||||
|  |                      'within the\n' | ||||||
|  |                      "  module, or via a reference to the module's globals " | ||||||
|  |                      'dictionary) is\n' | ||||||
|  |                      '  unaffected.\n' | ||||||
|  |                      '\n' | ||||||
|  |                      '\n' | ||||||
|                      'Implementing Descriptors\n' |                      'Implementing Descriptors\n' | ||||||
|                      '========================\n' |                      '========================\n' | ||||||
|                      '\n' |                      '\n' | ||||||
|  | @ -2905,63 +2964,52 @@ | ||||||
|                   '\n' |                   '\n' | ||||||
|                   '   Called when the instance is about to be destroyed.  This ' |                   '   Called when the instance is about to be destroyed.  This ' | ||||||
|                   'is also\n' |                   'is also\n' | ||||||
|                   '   called a destructor.  If a base class has a "__del__()" ' |                   '   called a finalizer or (improperly) a destructor.  If a ' | ||||||
|                   'method, the\n' |                   'base class\n' | ||||||
|                   '   derived class\'s "__del__()" method, if any, must ' |                   '   has a "__del__()" method, the derived class\'s ' | ||||||
|                   'explicitly call it\n' |                   '"__del__()" method,\n' | ||||||
|                   '   to ensure proper deletion of the base class part of the ' |                   '   if any, must explicitly call it to ensure proper ' | ||||||
|                   'instance.\n' |                   'deletion of the\n' | ||||||
|                   '   Note that it is possible (though not recommended!) for ' |                   '   base class part of the instance.\n' | ||||||
|  |                   '\n' | ||||||
|  |                   '   It is possible (though not recommended!) for the ' | ||||||
|  |                   '"__del__()" method\n' | ||||||
|  |                   '   to postpone destruction of the instance by creating a ' | ||||||
|  |                   'new reference\n' | ||||||
|  |                   '   to it.  This is called object *resurrection*.  It is\n' | ||||||
|  |                   '   implementation-dependent whether "__del__()" is called a ' | ||||||
|  |                   'second\n' | ||||||
|  |                   '   time when a resurrected object is about to be destroyed; ' | ||||||
|                   'the\n' |                   'the\n' | ||||||
|                   '   "__del__()" method to postpone destruction of the ' |                   '   current *CPython* implementation only calls it once.\n' | ||||||
|                   'instance by\n' |                   '\n' | ||||||
|                   '   creating a new reference to it.  It may then be called ' |                   '   It is not guaranteed that "__del__()" methods are called ' | ||||||
|                   'at a later\n' |                   'for\n' | ||||||
|                   '   time when this new reference is deleted.  It is not ' |                   '   objects that still exist when the interpreter exits.\n' | ||||||
|                   'guaranteed that\n' |  | ||||||
|                   '   "__del__()" methods are called for objects that still ' |  | ||||||
|                   'exist when\n' |  | ||||||
|                   '   the interpreter exits.\n' |  | ||||||
|                   '\n' |                   '\n' | ||||||
|                   '   Note: "del x" doesn\'t directly call "x.__del__()" --- ' |                   '   Note: "del x" doesn\'t directly call "x.__del__()" --- ' | ||||||
|                   'the former\n' |                   'the former\n' | ||||||
|                   '     decrements the reference count for "x" by one, and the ' |                   '     decrements the reference count for "x" by one, and the ' | ||||||
|                   'latter is\n' |                   'latter is\n' | ||||||
|                   '     only called when "x"\'s reference count reaches zero.  ' |                   '     only called when "x"\'s reference count reaches zero.\n' | ||||||
|                   'Some common\n' |                   '\n' | ||||||
|                   '     situations that may prevent the reference count of an ' |                   '   **CPython implementation detail:** It is possible for a ' | ||||||
|                   'object from\n' |  | ||||||
|                   '     going to zero include: circular references between ' |  | ||||||
|                   'objects (e.g.,\n' |  | ||||||
|                   '     a doubly-linked list or a tree data structure with ' |  | ||||||
|                   'parent and\n' |  | ||||||
|                   '     child pointers); a reference to the object on the ' |  | ||||||
|                   'stack frame of\n' |  | ||||||
|                   '     a function that caught an exception (the traceback ' |  | ||||||
|                   'stored in\n' |  | ||||||
|                   '     "sys.exc_info()[2]" keeps the stack frame alive); or a ' |  | ||||||
|                   'reference\n' |                   'reference\n' | ||||||
|                   '     to the object on the stack frame that raised an ' |                   '   cycle to prevent the reference count of an object from ' | ||||||
|                   'unhandled\n' |                   'going to\n' | ||||||
|                   '     exception in interactive mode (the traceback stored ' |                   '   zero.  In this case, the cycle will be later detected ' | ||||||
|                   'in\n' |                   'and deleted\n' | ||||||
|                   '     "sys.last_traceback" keeps the stack frame alive).  ' |                   '   by the *cyclic garbage collector*.  A common cause of ' | ||||||
|                   'The first\n' |                   'reference\n' | ||||||
|                   '     situation can only be remedied by explicitly breaking ' |                   '   cycles is when an exception has been caught in a local ' | ||||||
|                   'the cycles;\n' |                   'variable.\n' | ||||||
|                   '     the second can be resolved by freeing the reference to ' |                   "   The frame's locals then reference the exception, which " | ||||||
|                   'the\n' |                   'references\n' | ||||||
|                   '     traceback object when it is no longer useful, and the ' |                   '   its own traceback, which references the locals of all ' | ||||||
|                   'third can\n' |                   'frames caught\n' | ||||||
|                   '     be resolved by storing "None" in "sys.last_traceback". ' |                   '   in the traceback.\n' | ||||||
|                   'Circular\n' |                   '\n' | ||||||
|                   '     references which are garbage are detected and cleaned ' |                   '   See also: Documentation for the "gc" module.\n' | ||||||
|                   'up when the\n' |  | ||||||
|                   "     cyclic garbage collector is enabled (it's on by " |  | ||||||
|                   'default). Refer\n' |  | ||||||
|                   '     to the documentation for the "gc" module for more ' |  | ||||||
|                   'information\n' |  | ||||||
|                   '     about this topic.\n' |  | ||||||
|                   '\n' |                   '\n' | ||||||
|                   '   Warning: Due to the precarious circumstances under ' |                   '   Warning: Due to the precarious circumstances under ' | ||||||
|                   'which\n' |                   'which\n' | ||||||
|  | @ -2969,29 +3017,35 @@ | ||||||
|                   'during\n' |                   'during\n' | ||||||
|                   '     their execution are ignored, and a warning is printed ' |                   '     their execution are ignored, and a warning is printed ' | ||||||
|                   'to\n' |                   'to\n' | ||||||
|                   '     "sys.stderr" instead. Also, when "__del__()" is ' |                   '     "sys.stderr" instead. In particular:\n' | ||||||
|                   'invoked in\n' |                   '\n' | ||||||
|                   '     response to a module being deleted (e.g., when ' |                   '     * "__del__()" can be invoked when arbitrary code is ' | ||||||
|                   'execution of the\n' |                   'being\n' | ||||||
|                   '     program is done), other globals referenced by the ' |                   '       executed, including from any arbitrary thread.  If ' | ||||||
|                   '"__del__()"\n' |                   '"__del__()"\n' | ||||||
|                   '     method may already have been deleted or in the process ' |                   '       needs to take a lock or invoke any other blocking ' | ||||||
|                   'of being\n' |                   'resource, it\n' | ||||||
|                   '     torn down (e.g. the import machinery shutting down).  ' |                   '       may deadlock as the resource may already be taken by ' | ||||||
|                   'For this\n' |                   'the code\n' | ||||||
|                   '     reason, "__del__()" methods should do the absolute ' |                   '       that gets interrupted to execute "__del__()".\n' | ||||||
|                   'minimum needed\n' |                   '\n' | ||||||
|                   '     to maintain external invariants.  Starting with ' |                   '     * "__del__()" can be executed during interpreter ' | ||||||
|                   'version 1.5,\n' |                   'shutdown.  As\n' | ||||||
|                   '     Python guarantees that globals whose name begins with ' |                   '       a consequence, the global variables it needs to ' | ||||||
|                   'a single\n' |                   'access\n' | ||||||
|                   '     underscore are deleted from their module before other ' |                   '       (including other modules) may already have been ' | ||||||
|                   'globals are\n' |                   'deleted or set\n' | ||||||
|                   '     deleted; if no other references to such globals exist, ' |                   '       to "None". Python guarantees that globals whose name ' | ||||||
|                   'this may\n' |                   'begins\n' | ||||||
|                   '     help in assuring that imported modules are still ' |                   '       with a single underscore are deleted from their ' | ||||||
|                   'available at the\n' |                   'module before\n' | ||||||
|                   '     time when the "__del__()" method is called.\n' |                   '       other globals are deleted; if no other references to ' | ||||||
|  |                   'such\n' | ||||||
|  |                   '       globals exist, this may help in assuring that ' | ||||||
|  |                   'imported modules\n' | ||||||
|  |                   '       are still available at the time when the "__del__()" ' | ||||||
|  |                   'method is\n' | ||||||
|  |                   '       called.\n' | ||||||
|                   '\n' |                   '\n' | ||||||
|                   'object.__repr__(self)\n' |                   'object.__repr__(self)\n' | ||||||
|                   '\n' |                   '\n' | ||||||
|  | @ -3346,6 +3400,13 @@ | ||||||
|              'executes\n' |              'executes\n' | ||||||
|              'commands as if given in a ".pdbrc" file, see Debugger Commands.\n' |              'commands as if given in a ".pdbrc" file, see Debugger Commands.\n' | ||||||
|              '\n' |              '\n' | ||||||
|  |              'New in version 3.7: "pdb.py" now accepts a "-m" option that ' | ||||||
|  |              'execute\n' | ||||||
|  |              'modules similar to the way "python3 -m" does. As with a script, ' | ||||||
|  |              'the\n' | ||||||
|  |              'debugger will pause execution just before the first line of the\n' | ||||||
|  |              'module.\n' | ||||||
|  |              '\n' | ||||||
|              'The typical usage to break into the debugger from a running ' |              'The typical usage to break into the debugger from a running ' | ||||||
|              'program is\n' |              'program is\n' | ||||||
|              'to insert\n' |              'to insert\n' | ||||||
|  | @ -7563,91 +7624,87 @@ | ||||||
|                  '\n' |                  '\n' | ||||||
|                  '   Called when the instance is about to be destroyed.  This ' |                  '   Called when the instance is about to be destroyed.  This ' | ||||||
|                  'is also\n' |                  'is also\n' | ||||||
|                  '   called a destructor.  If a base class has a "__del__()" ' |                  '   called a finalizer or (improperly) a destructor.  If a ' | ||||||
|                  'method, the\n' |                  'base class\n' | ||||||
|                  '   derived class\'s "__del__()" method, if any, must ' |                  '   has a "__del__()" method, the derived class\'s ' | ||||||
|                  'explicitly call it\n' |                  '"__del__()" method,\n' | ||||||
|                  '   to ensure proper deletion of the base class part of the ' |                  '   if any, must explicitly call it to ensure proper deletion ' | ||||||
|                  'instance.\n' |                  'of the\n' | ||||||
|                  '   Note that it is possible (though not recommended!) for ' |                  '   base class part of the instance.\n' | ||||||
|  |                  '\n' | ||||||
|  |                  '   It is possible (though not recommended!) for the ' | ||||||
|  |                  '"__del__()" method\n' | ||||||
|  |                  '   to postpone destruction of the instance by creating a new ' | ||||||
|  |                  'reference\n' | ||||||
|  |                  '   to it.  This is called object *resurrection*.  It is\n' | ||||||
|  |                  '   implementation-dependent whether "__del__()" is called a ' | ||||||
|  |                  'second\n' | ||||||
|  |                  '   time when a resurrected object is about to be destroyed; ' | ||||||
|                  'the\n' |                  'the\n' | ||||||
|                  '   "__del__()" method to postpone destruction of the ' |                  '   current *CPython* implementation only calls it once.\n' | ||||||
|                  'instance by\n' |                  '\n' | ||||||
|                  '   creating a new reference to it.  It may then be called at ' |                  '   It is not guaranteed that "__del__()" methods are called ' | ||||||
|                  'a later\n' |                  'for\n' | ||||||
|                  '   time when this new reference is deleted.  It is not ' |                  '   objects that still exist when the interpreter exits.\n' | ||||||
|                  'guaranteed that\n' |  | ||||||
|                  '   "__del__()" methods are called for objects that still ' |  | ||||||
|                  'exist when\n' |  | ||||||
|                  '   the interpreter exits.\n' |  | ||||||
|                  '\n' |                  '\n' | ||||||
|                  '   Note: "del x" doesn\'t directly call "x.__del__()" --- ' |                  '   Note: "del x" doesn\'t directly call "x.__del__()" --- ' | ||||||
|                  'the former\n' |                  'the former\n' | ||||||
|                  '     decrements the reference count for "x" by one, and the ' |                  '     decrements the reference count for "x" by one, and the ' | ||||||
|                  'latter is\n' |                  'latter is\n' | ||||||
|                  '     only called when "x"\'s reference count reaches zero.  ' |                  '     only called when "x"\'s reference count reaches zero.\n' | ||||||
|                  'Some common\n' |                  '\n' | ||||||
|                  '     situations that may prevent the reference count of an ' |                  '   **CPython implementation detail:** It is possible for a ' | ||||||
|                  'object from\n' |  | ||||||
|                  '     going to zero include: circular references between ' |  | ||||||
|                  'objects (e.g.,\n' |  | ||||||
|                  '     a doubly-linked list or a tree data structure with ' |  | ||||||
|                  'parent and\n' |  | ||||||
|                  '     child pointers); a reference to the object on the stack ' |  | ||||||
|                  'frame of\n' |  | ||||||
|                  '     a function that caught an exception (the traceback ' |  | ||||||
|                  'stored in\n' |  | ||||||
|                  '     "sys.exc_info()[2]" keeps the stack frame alive); or a ' |  | ||||||
|                  'reference\n' |                  'reference\n' | ||||||
|                  '     to the object on the stack frame that raised an ' |                  '   cycle to prevent the reference count of an object from ' | ||||||
|                  'unhandled\n' |                  'going to\n' | ||||||
|                  '     exception in interactive mode (the traceback stored in\n' |                  '   zero.  In this case, the cycle will be later detected and ' | ||||||
|                  '     "sys.last_traceback" keeps the stack frame alive).  The ' |                  'deleted\n' | ||||||
|                  'first\n' |                  '   by the *cyclic garbage collector*.  A common cause of ' | ||||||
|                  '     situation can only be remedied by explicitly breaking ' |                  'reference\n' | ||||||
|                  'the cycles;\n' |                  '   cycles is when an exception has been caught in a local ' | ||||||
|                  '     the second can be resolved by freeing the reference to ' |                  'variable.\n' | ||||||
|                  'the\n' |                  "   The frame's locals then reference the exception, which " | ||||||
|                  '     traceback object when it is no longer useful, and the ' |                  'references\n' | ||||||
|                  'third can\n' |                  '   its own traceback, which references the locals of all ' | ||||||
|                  '     be resolved by storing "None" in "sys.last_traceback". ' |                  'frames caught\n' | ||||||
|                  'Circular\n' |                  '   in the traceback.\n' | ||||||
|                  '     references which are garbage are detected and cleaned ' |                  '\n' | ||||||
|                  'up when the\n' |                  '   See also: Documentation for the "gc" module.\n' | ||||||
|                  "     cyclic garbage collector is enabled (it's on by " |  | ||||||
|                  'default). Refer\n' |  | ||||||
|                  '     to the documentation for the "gc" module for more ' |  | ||||||
|                  'information\n' |  | ||||||
|                  '     about this topic.\n' |  | ||||||
|                  '\n' |                  '\n' | ||||||
|                  '   Warning: Due to the precarious circumstances under which\n' |                  '   Warning: Due to the precarious circumstances under which\n' | ||||||
|                  '     "__del__()" methods are invoked, exceptions that occur ' |                  '     "__del__()" methods are invoked, exceptions that occur ' | ||||||
|                  'during\n' |                  'during\n' | ||||||
|                  '     their execution are ignored, and a warning is printed ' |                  '     their execution are ignored, and a warning is printed ' | ||||||
|                  'to\n' |                  'to\n' | ||||||
|                  '     "sys.stderr" instead. Also, when "__del__()" is invoked ' |                  '     "sys.stderr" instead. In particular:\n' | ||||||
|                  'in\n' |                  '\n' | ||||||
|                  '     response to a module being deleted (e.g., when ' |                  '     * "__del__()" can be invoked when arbitrary code is ' | ||||||
|                  'execution of the\n' |                  'being\n' | ||||||
|                  '     program is done), other globals referenced by the ' |                  '       executed, including from any arbitrary thread.  If ' | ||||||
|                  '"__del__()"\n' |                  '"__del__()"\n' | ||||||
|                  '     method may already have been deleted or in the process ' |                  '       needs to take a lock or invoke any other blocking ' | ||||||
|                  'of being\n' |                  'resource, it\n' | ||||||
|                  '     torn down (e.g. the import machinery shutting down).  ' |                  '       may deadlock as the resource may already be taken by ' | ||||||
|                  'For this\n' |                  'the code\n' | ||||||
|                  '     reason, "__del__()" methods should do the absolute ' |                  '       that gets interrupted to execute "__del__()".\n' | ||||||
|                  'minimum needed\n' |                  '\n' | ||||||
|                  '     to maintain external invariants.  Starting with version ' |                  '     * "__del__()" can be executed during interpreter ' | ||||||
|                  '1.5,\n' |                  'shutdown.  As\n' | ||||||
|                  '     Python guarantees that globals whose name begins with a ' |                  '       a consequence, the global variables it needs to ' | ||||||
|                  'single\n' |                  'access\n' | ||||||
|                  '     underscore are deleted from their module before other ' |                  '       (including other modules) may already have been ' | ||||||
|                  'globals are\n' |                  'deleted or set\n' | ||||||
|                  '     deleted; if no other references to such globals exist, ' |                  '       to "None". Python guarantees that globals whose name ' | ||||||
|                  'this may\n' |                  'begins\n' | ||||||
|                  '     help in assuring that imported modules are still ' |                  '       with a single underscore are deleted from their ' | ||||||
|                  'available at the\n' |                  'module before\n' | ||||||
|                  '     time when the "__del__()" method is called.\n' |                  '       other globals are deleted; if no other references to ' | ||||||
|  |                  'such\n' | ||||||
|  |                  '       globals exist, this may help in assuring that ' | ||||||
|  |                  'imported modules\n' | ||||||
|  |                  '       are still available at the time when the "__del__()" ' | ||||||
|  |                  'method is\n' | ||||||
|  |                  '       called.\n' | ||||||
|                  '\n' |                  '\n' | ||||||
|                  'object.__repr__(self)\n' |                  'object.__repr__(self)\n' | ||||||
|                  '\n' |                  '\n' | ||||||
|  | @ -8031,6 +8088,65 @@ | ||||||
|                  '   sorts it.\n' |                  '   sorts it.\n' | ||||||
|                  '\n' |                  '\n' | ||||||
|                  '\n' |                  '\n' | ||||||
|  |                  'Customizing module attribute access\n' | ||||||
|  |                  '-----------------------------------\n' | ||||||
|  |                  '\n' | ||||||
|  |                  'Special names "__getattr__" and "__dir__" can be also used ' | ||||||
|  |                  'to\n' | ||||||
|  |                  'customize access to module attributes. The "__getattr__" ' | ||||||
|  |                  'function at\n' | ||||||
|  |                  'the module level should accept one argument which is the ' | ||||||
|  |                  'name of an\n' | ||||||
|  |                  'attribute and return the computed value or raise an ' | ||||||
|  |                  '"AttributeError".\n' | ||||||
|  |                  'If an attribute is not found on a module object through the ' | ||||||
|  |                  'normal\n' | ||||||
|  |                  'lookup, i.e. "object.__getattribute__()", then "__getattr__" ' | ||||||
|  |                  'is\n' | ||||||
|  |                  'searched in the module "__dict__" before raising an ' | ||||||
|  |                  '"AttributeError".\n' | ||||||
|  |                  'If found, it is called with the attribute name and the ' | ||||||
|  |                  'result is\n' | ||||||
|  |                  'returned.\n' | ||||||
|  |                  '\n' | ||||||
|  |                  'The "__dir__" function should accept no arguments, and ' | ||||||
|  |                  'return a list\n' | ||||||
|  |                  'of strings that represents the names accessible on module. ' | ||||||
|  |                  'If present,\n' | ||||||
|  |                  'this function overrides the standard "dir()" search on a ' | ||||||
|  |                  'module.\n' | ||||||
|  |                  '\n' | ||||||
|  |                  'For a more fine grained customization of the module behavior ' | ||||||
|  |                  '(setting\n' | ||||||
|  |                  'attributes, properties, etc.), one can set the "__class__" ' | ||||||
|  |                  'attribute\n' | ||||||
|  |                  'of a module object to a subclass of "types.ModuleType". For ' | ||||||
|  |                  'example:\n' | ||||||
|  |                  '\n' | ||||||
|  |                  '   import sys\n' | ||||||
|  |                  '   from types import ModuleType\n' | ||||||
|  |                  '\n' | ||||||
|  |                  '   class VerboseModule(ModuleType):\n' | ||||||
|  |                  '       def __repr__(self):\n' | ||||||
|  |                  "           return f'Verbose {self.__name__}'\n" | ||||||
|  |                  '\n' | ||||||
|  |                  '       def __setattr__(self, attr, value):\n' | ||||||
|  |                  "           print(f'Setting {attr}...')\n" | ||||||
|  |                  '           setattr(self, attr, value)\n' | ||||||
|  |                  '\n' | ||||||
|  |                  '   sys.modules[__name__].__class__ = VerboseModule\n' | ||||||
|  |                  '\n' | ||||||
|  |                  'Note: Defining module "__getattr__" and setting module ' | ||||||
|  |                  '"__class__"\n' | ||||||
|  |                  '  only affect lookups made using the attribute access syntax ' | ||||||
|  |                  '--\n' | ||||||
|  |                  '  directly accessing the module globals (whether by code ' | ||||||
|  |                  'within the\n' | ||||||
|  |                  "  module, or via a reference to the module's globals " | ||||||
|  |                  'dictionary) is\n' | ||||||
|  |                  '  unaffected.\n' | ||||||
|  |                  '\n' | ||||||
|  |                  '\n' | ||||||
|                  'Implementing Descriptors\n' |                  'Implementing Descriptors\n' | ||||||
|                  '------------------------\n' |                  '------------------------\n' | ||||||
|                  '\n' |                  '\n' | ||||||
|  | @ -12211,18 +12327,18 @@ | ||||||
|              '   sequence concatenation or repetition.\n' |              '   sequence concatenation or repetition.\n' | ||||||
|              '\n' |              '\n' | ||||||
|              '8. "index" raises "ValueError" when *x* is not found in *s*. ' |              '8. "index" raises "ValueError" when *x* is not found in *s*. ' | ||||||
|              'When\n' |              'Not\n' | ||||||
|              '   supported, the additional arguments to the index method ' |              '   all implementations support passing the additional arguments ' | ||||||
|              'allow\n' |              '*i*\n' | ||||||
|              '   efficient searching of subsections of the sequence. Passing ' |              '   and *j*. These arguments allow efficient searching of ' | ||||||
|              'the\n' |              'subsections\n' | ||||||
|              '   extra arguments is roughly equivalent to using ' |              '   of the sequence. Passing the extra arguments is roughly ' | ||||||
|              '"s[i:j].index(x)",\n' |              'equivalent\n' | ||||||
|              '   only without copying any data and with the returned index ' |              '   to using "s[i:j].index(x)", only without copying any data and ' | ||||||
|              'being\n' |              'with\n' | ||||||
|              '   relative to the start of the sequence rather than the start ' |              '   the returned index being relative to the start of the ' | ||||||
|              'of the\n' |              'sequence\n' | ||||||
|              '   slice.\n' |              '   rather than the start of the slice.\n' | ||||||
|              '\n' |              '\n' | ||||||
|              '\n' |              '\n' | ||||||
|              'Immutable Sequence Types\n' |              'Immutable Sequence Types\n' | ||||||
|  |  | ||||||
							
								
								
									
										847
									
								
								Misc/NEWS.d/3.7.0a4.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										847
									
								
								Misc/NEWS.d/3.7.0a4.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,847 @@ | ||||||
|  | .. bpo: 31975 | ||||||
|  | .. date: 2018-01-05-20-54-27 | ||||||
|  | .. nonce: AmftlU | ||||||
|  | .. release date: 2018-01-08 | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The default warning filter list now starts with a | ||||||
|  | "default::DeprecationWarning:__main__" entry, so deprecation warnings are | ||||||
|  | once again shown by default in single-file scripts and at the interactive | ||||||
|  | prompt. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32226 | ||||||
|  | .. date: 2018-01-04-15-06-15 | ||||||
|  | .. nonce: 7cAvRG | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | ``__class_getitem__`` is now an automatic class method. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32399 | ||||||
|  | .. date: 2017-12-22-13-38-17 | ||||||
|  | .. nonce: wlH12z | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Add AIX uuid library support for RFC4122 using uuid_create() in libc.a | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32390 | ||||||
|  | .. date: 2017-12-22-13-28-07 | ||||||
|  | .. nonce: QPj083 | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Fix the compilation failure on AIX after the f_fsid field has been added to | ||||||
|  | the object returned by os.statvfs() (issue #32143). Original patch by | ||||||
|  | Michael Felt. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32379 | ||||||
|  | .. date: 2017-12-19-21-14-41 | ||||||
|  | .. nonce: B7mOmI | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Make MRO computation faster when a class inherits from a single base. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32259 | ||||||
|  | .. date: 2017-12-16-14-30-21 | ||||||
|  | .. nonce: GoOJiX | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The error message of a TypeError raised when unpack non-iterable is now more | ||||||
|  | specific. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 27169 | ||||||
|  | .. date: 2017-12-15-11-50-06 | ||||||
|  | .. nonce: VO84fQ | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The ``__debug__`` constant is now optimized out at compile time. This fixes | ||||||
|  | also bpo-22091. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32329 | ||||||
|  | .. date: 2017-12-15-00-13-04 | ||||||
|  | .. nonce: q47IN2 | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The :option:`-R` option now turns on hash randomization when the | ||||||
|  | :envvar:`PYTHONHASHSEED` environment variable is set to ``0``. Previously, | ||||||
|  | the option was ignored. Moreover, ``sys.flags.hash_randomization`` is now | ||||||
|  | properly set to 0 when hash randomization is turned off by | ||||||
|  | ``PYTHONHASHSEED=0``. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 30416 | ||||||
|  | .. date: 2017-12-14-11-48-19 | ||||||
|  | .. nonce: hlHo_9 | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The optimizer is now protected from spending much time doing complex | ||||||
|  | calculations and consuming much memory for creating large constants in | ||||||
|  | constant folding. Increased limits for constants that can be produced in | ||||||
|  | constant folding. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32282 | ||||||
|  | .. date: 2017-12-12-14-02-28 | ||||||
|  | .. nonce: xFVMTn | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Fix an unnecessary ifdef in the include of VersionHelpers.h in socketmodule | ||||||
|  | on Windows. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 30579 | ||||||
|  | .. date: 2017-12-11-01-52-42 | ||||||
|  | .. nonce: X6cEzf | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Implement TracebackType.__new__ to allow Python-level creation of traceback | ||||||
|  | objects, and make TracebackType.tb_next mutable. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32260 | ||||||
|  | .. date: 2017-12-09-11-03-51 | ||||||
|  | .. nonce: 1DAO-p | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Don't byte swap the input keys to the SipHash algorithm on big-endian | ||||||
|  | platforms. This should ensure siphash gives consistent results across | ||||||
|  | platforms. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31506 | ||||||
|  | .. date: 2017-12-07-23-44-29 | ||||||
|  | .. nonce: j1U2fU | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Improve the error message logic for object.__new__ and object.__init__. | ||||||
|  | Patch by Sanyam Khurana. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 20361 | ||||||
|  | .. date: 2017-12-07-17-22-30 | ||||||
|  | .. nonce: zQUmbi | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | ``-b`` and ``-bb`` now inject ``'default::BytesWarning'`` and | ||||||
|  | ``error::BytesWarning`` entries into ``sys.warnoptions``, ensuring that they | ||||||
|  | take precedence over any other warning filters configured via the ``-W`` | ||||||
|  | option or the ``PYTHONWARNINGS`` environment variable. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32230 | ||||||
|  | .. date: 2017-12-06-20-18-34 | ||||||
|  | .. nonce: PgGQaB | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | `-X dev` now injects a ``'default'`` entry into sys.warnoptions, ensuring | ||||||
|  | that it behaves identically to actually passing ``-Wdefault`` at the command | ||||||
|  | line. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29240 | ||||||
|  | .. date: 2017-12-05-23-10-58 | ||||||
|  | .. nonce: qpJP5l | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Add a new UTF-8 mode: implementation of the :pep:`540`. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32226 | ||||||
|  | .. date: 2017-12-05-21-42-58 | ||||||
|  | .. nonce: G8fqb6 | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | PEP 560: Add support for __mro_entries__ and __class_getitem__. Implemented | ||||||
|  | by Ivan Levkivskyi. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32225 | ||||||
|  | .. date: 2017-12-05-21-33-47 | ||||||
|  | .. nonce: ucKjvw | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | PEP 562: Add support for module ``__getattr__`` and ``__dir__``. Implemented | ||||||
|  | by Ivan Levkivskyi. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31901 | ||||||
|  | .. date: 2017-11-28-15-04-14 | ||||||
|  | .. nonce: mDeCLK | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | The `atexit` module now has its callback stored per interpreter. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31650 | ||||||
|  | .. date: 2017-11-26-14-38-44 | ||||||
|  | .. nonce: JWf_Im | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Implement PEP 552 (Deterministic pycs). Python now supports invalidating | ||||||
|  | bytecode cache files bashed on a source content hash rather than source | ||||||
|  | last-modified time. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29469 | ||||||
|  | .. date: 2017-07-26-00-20-15 | ||||||
|  | .. nonce: potmyI | ||||||
|  | .. section: Core and Builtins | ||||||
|  | 
 | ||||||
|  | Move constant folding from bytecode layer to AST layer. Original patch by | ||||||
|  | Eugene Toder. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32506 | ||||||
|  | .. date: 2018-01-07-11-32-42 | ||||||
|  | .. nonce: MaT-zU | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Now that dict is defined as keeping insertion order, drop OrderedDict and | ||||||
|  | just use plain dict. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32279 | ||||||
|  | .. date: 2018-01-06-16-50-11 | ||||||
|  | .. nonce: 1xOpU8 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add params to dataclasses.make_dataclasses(): init, repr, eq, order, hash, | ||||||
|  | and frozen.  Pass them through to dataclass(). | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32278 | ||||||
|  | .. date: 2018-01-06-15-15-34 | ||||||
|  | .. nonce: bGnGc0 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Make type information optional on dataclasses.make_dataclass(). If omitted, | ||||||
|  | the string 'typing.Any' is used. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32499 | ||||||
|  | .. date: 2018-01-06-10-54-16 | ||||||
|  | .. nonce: koyY-4 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add dataclasses.is_dataclass(obj), which returns True if obj is a dataclass | ||||||
|  | or an instance of one. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32468 | ||||||
|  | .. date: 2017-12-31-20-32-58 | ||||||
|  | .. nonce: YBs__0 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Improve frame repr() to mention filename, code name and current line number. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 23749 | ||||||
|  | .. date: 2017-12-29-00-44-42 | ||||||
|  | .. nonce: QL1Cxd | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | asyncio: Implement loop.start_tls() | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32441 | ||||||
|  | .. date: 2017-12-28-21-30-40 | ||||||
|  | .. nonce: LqlboJ | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Return the new file descriptor (i.e., the second argument) from ``os.dup2``. | ||||||
|  | Previously, ``None`` was always returned. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32422 | ||||||
|  | .. date: 2017-12-25-20-22-47 | ||||||
|  | .. nonce: 5H3Wq2 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | ``functools.lru_cache`` uses less memory (3 words for each cached key) and | ||||||
|  | takes about 1/3 time for cyclic GC. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31721 | ||||||
|  | .. date: 2017-12-25-11-09-46 | ||||||
|  | .. nonce: 5gM972 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Prevent Python crash from happening when Future._log_traceback is set to | ||||||
|  | True manually.  Now it can only be set to False, or a ValueError is raised. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32415 | ||||||
|  | .. date: 2017-12-23-12-45-00 | ||||||
|  | .. nonce: YufXTU | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | asyncio: Add Task.get_loop() and Future.get_loop() | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 26133 | ||||||
|  | .. date: 2017-12-21-11-08-42 | ||||||
|  | .. nonce: mt81QV | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Don't unsubscribe signals in asyncio UNIX event loop on interpreter | ||||||
|  | shutdown. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32363 | ||||||
|  | .. date: 2017-12-19-00-37-28 | ||||||
|  | .. nonce: YTeGU0 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Make asyncio.Task.set_exception() and set_result() raise | ||||||
|  | NotImplementedError. Task._step() and Future.__await__() raise proper | ||||||
|  | exceptions when they are in an invalid state, instead of raising an | ||||||
|  | AssertionError. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32357 | ||||||
|  | .. date: 2017-12-18-00-36-41 | ||||||
|  | .. nonce: t1F3sn | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Optimize asyncio.iscoroutine() and loop.create_task() for non-native | ||||||
|  | coroutines (e.g. async/await compiled with Cython). | ||||||
|  | 
 | ||||||
|  | 'loop.create_task(python_coroutine)' used to be 20% faster than | ||||||
|  | 'loop.create_task(cython_coroutine)'.  Now, the latter is as fast. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32356 | ||||||
|  | .. date: 2017-12-17-22-50-51 | ||||||
|  | .. nonce: roZJpA | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | asyncio.transport.resume_reading() and pause_reading() are now idempotent. | ||||||
|  | New transport.is_reading() method is added. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32355 | ||||||
|  | .. date: 2017-12-17-21-42-24 | ||||||
|  | .. nonce: tbaTWA | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Optimize asyncio.gather(); now up to 15% faster. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32351 | ||||||
|  | .. date: 2017-12-17-14-23-23 | ||||||
|  | .. nonce: 95fh2K | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Use fastpath in asyncio.sleep if delay<0 (2x boost) | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32348 | ||||||
|  | .. date: 2017-12-16-18-50-57 | ||||||
|  | .. nonce: 5j__he | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Optimize asyncio.Future schedule/add/remove callback.  The optimization | ||||||
|  | shows 3-6% performance improvements of async/await code. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32331 | ||||||
|  | .. date: 2017-12-15-23-48-43 | ||||||
|  | .. nonce: fIg1Uc | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Fix socket.settimeout() and socket.setblocking() to keep socket.type as is. | ||||||
|  | Fix socket.socket() constructor to reset any bit flags applied to socket's | ||||||
|  | type.  This change only affects OSes that have SOCK_NONBLOCK and/or | ||||||
|  | SOCK_CLOEXEC. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32248 | ||||||
|  | .. date: 2017-12-15-15-34-12 | ||||||
|  | .. nonce: zmO8G2 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add :class:`importlib.abc.ResourceReader` as an ABC for loaders to provide a | ||||||
|  | unified API for reading resources contained within packages.  Also add | ||||||
|  | :mod:`importlib.resources` as the port of ``importlib_resources``. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32311 | ||||||
|  | .. date: 2017-12-14-17-28-54 | ||||||
|  | .. nonce: DL5Ytn | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Implement asyncio.create_task(coro) shortcut | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32327 | ||||||
|  | .. date: 2017-12-14-16-00-25 | ||||||
|  | .. nonce: bbkSxA | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Convert asyncio functions that were documented as coroutines to coroutines. | ||||||
|  | Affected functions: loop.sock_sendall, loop.sock_recv, loop.sock_accept, | ||||||
|  | loop.run_in_executor, loop.getaddrinfo, loop.getnameinfo. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32323 | ||||||
|  | .. date: 2017-12-14-10-10-10 | ||||||
|  | .. nonce: ideco | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | :func:`urllib.parse.urlsplit()` does not convert zone-id (scope) to lower | ||||||
|  | case for scoped IPv6 addresses in hostnames now. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32302 | ||||||
|  | .. date: 2017-12-13-22-38-08 | ||||||
|  | .. nonce: othtTr | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Fix bdist_wininst of distutils for CRT v142: it binary compatible with CRT | ||||||
|  | v140. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29711 | ||||||
|  | .. date: 2017-12-13-22-10-36 | ||||||
|  | .. nonce: hJjghA | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Fix ``stop_serving`` in asyncio proactor loop kill all listening servers | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32308 | ||||||
|  | .. date: 2017-12-13-20-31-30 | ||||||
|  | .. nonce: CUbsb2 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | :func:`re.sub()` now replaces empty matches adjacent to a previous non-empty | ||||||
|  | match. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29970 | ||||||
|  | .. date: 2017-12-13-19-02-38 | ||||||
|  | .. nonce: uxVOpk | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Abort asyncio SSLProtocol connection if handshake not complete within 10s | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32314 | ||||||
|  | .. date: 2017-12-13-16-47-38 | ||||||
|  | .. nonce: W4_U2j | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Implement asyncio.run(). | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 17852 | ||||||
|  | .. date: 2017-12-13-00-00-37 | ||||||
|  | .. nonce: Q8BP8N | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Revert incorrect fix based on misunderstanding of _Py_PyAtExit() semantics. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32296 | ||||||
|  | .. date: 2017-12-12-18-01-01 | ||||||
|  | .. nonce: bwscHz | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Implement asyncio._get_running_loop() and get_event_loop() in C. This makes | ||||||
|  | them 4x faster. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32250 | ||||||
|  | .. date: 2017-12-12-16-58-20 | ||||||
|  | .. nonce: UljTa0 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Implement ``asyncio.current_task()`` and ``asyncio.all_tasks()``. Add | ||||||
|  | helpers intended to be used by alternative task implementations: | ||||||
|  | ``asyncio._register_task``, ``asyncio._enter_task``, ``asyncio._leave_task`` | ||||||
|  | and ``asyncio._unregister_task``. Deprecate ``asyncio.Task.current_task()`` | ||||||
|  | and ``asyncio.Task.all_tasks()``. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32255 | ||||||
|  | .. date: 2017-12-12-07-29-06 | ||||||
|  | .. nonce: 2bfNmM | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | A single empty field is now always quoted when written into a CSV file. This | ||||||
|  | allows to distinguish an empty row from a row consisting of a single empty | ||||||
|  | field. Patch by Licht Takeuchi. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32277 | ||||||
|  | .. date: 2017-12-11-09-53-14 | ||||||
|  | .. nonce: jkKiVC | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Raise ``NotImplementedError`` instead of ``SystemError`` on platforms where | ||||||
|  | ``chmod(..., follow_symlinks=False)`` is not supported.  Patch by Anthony | ||||||
|  | Sottile. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 30050 | ||||||
|  | .. date: 2017-12-10-23-44-56 | ||||||
|  | .. nonce: 4SZ3lY | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | New argument warn_on_full_buffer to signal.set_wakeup_fd lets you control | ||||||
|  | whether Python prints a warning on stderr when the wakeup fd buffer | ||||||
|  | overflows. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29137 | ||||||
|  | .. date: 2017-12-10-21-19-14 | ||||||
|  | .. nonce: CFcON1 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | The ``fpectl`` library has been removed. It was never enabled by default, | ||||||
|  | never worked correctly on x86-64, and it changed the Python ABI in ways that | ||||||
|  | caused unexpected breakage of C extensions. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32273 | ||||||
|  | .. date: 2017-12-10-19-14-55 | ||||||
|  | .. nonce: 5KKlCv | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Move asyncio.test_utils to test.test_asyncio. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32272 | ||||||
|  | .. date: 2017-12-10-18-59-13 | ||||||
|  | .. nonce: Mu84Am | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Remove asyncio.async() function. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32269 | ||||||
|  | .. date: 2017-12-10-12-30-13 | ||||||
|  | .. nonce: Q85pKj | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add asyncio.get_running_loop() function. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32265 | ||||||
|  | .. date: 2017-12-10-00-57-51 | ||||||
|  | .. nonce: kELtTE | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | All class and static methods of builtin types now are correctly classified | ||||||
|  | by inspect.classify_class_attrs() and grouped in pydoc ouput. Added | ||||||
|  | types.ClassMethodDescriptorType for unbound class methods of builtin types. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32253 | ||||||
|  | .. date: 2017-12-09-11-30-35 | ||||||
|  | .. nonce: TQHSYF | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Deprecate ``yield from lock``, ``await lock``, ``with (yield from lock)`` | ||||||
|  | and ``with await lock`` for asyncio synchronization primitives. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 22589 | ||||||
|  | .. date: 2017-12-08-15-09-41 | ||||||
|  | .. nonce: 8ouqI6 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Changed MIME type of .bmp from 'image/x-ms-bmp' to 'image/bmp' | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32193 | ||||||
|  | .. date: 2017-12-08-11-02-26 | ||||||
|  | .. nonce: NJe_TQ | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Convert asyncio to use *async/await* syntax. Old styled ``yield from`` is | ||||||
|  | still supported too. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32206 | ||||||
|  | .. date: 2017-12-07-13-14-40 | ||||||
|  | .. nonce: obm4OM | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add support to run modules with pdb | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32227 | ||||||
|  | .. date: 2017-12-05-13-25-15 | ||||||
|  | .. nonce: 3vnWFS | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | ``functools.singledispatch`` now supports registering implementations using | ||||||
|  | type annotations. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 15873 | ||||||
|  | .. date: 2017-12-04-17-41-40 | ||||||
|  | .. nonce: -T4TRK | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Added new alternate constructors :meth:`datetime.datetime.fromisoformat`, | ||||||
|  | :meth:`datetime.time.fromisoformat` and :meth:`datetime.date.fromisoformat` | ||||||
|  | as the inverse operation of each classes's respective ``isoformat`` methods. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32199 | ||||||
|  | .. date: 2017-12-04-12-23-26 | ||||||
|  | .. nonce: nGof4v | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | The getnode() ip getter now uses 'ip link' instead of 'ip link list'. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32143 | ||||||
|  | .. date: 2017-11-26-17-28-26 | ||||||
|  | .. nonce: o7YdXL | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | os.statvfs() includes the f_fsid field from statvfs(2) | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 26439 | ||||||
|  | .. date: 2017-11-24-08-35-43 | ||||||
|  | .. nonce: IC45_f | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Fix ctypes.util.find_library() for AIX by implementing | ||||||
|  | ctypes._aix.find_library() Patch by: Michael Felt | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31993 | ||||||
|  | .. date: 2017-11-10-00-05-08 | ||||||
|  | .. nonce: -OMNg8 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | The picklers no longer allocate temporary memory when dumping large | ||||||
|  | ``bytes`` and ``str`` objects into a file object. Instead the data is | ||||||
|  | directly streamed into the underlying file object. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 27456 | ||||||
|  | .. date: 2017-11-02-11-57-41 | ||||||
|  | .. nonce: snzyTC | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Ensure TCP_NODELAY is set on Linux. Tests by Victor Stinner. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31778 | ||||||
|  | .. date: 2017-10-18-17-29-30 | ||||||
|  | .. nonce: B6vAkP | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | ast.literal_eval() is now more strict. Addition and subtraction of arbitrary | ||||||
|  | numbers no longer allowed. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31802 | ||||||
|  | .. date: 2017-10-17-14-52-14 | ||||||
|  | .. nonce: sYj2Zv | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Importing native path module (``posixpath``, ``ntpath``) now works even if | ||||||
|  | the ``os`` module still is not imported. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 30241 | ||||||
|  | .. date: 2017-10-10-18-56-46 | ||||||
|  | .. nonce: F_go20 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Add contextlib.AbstractAsyncContextManager. Patch by Jelle Zijlstra. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 31699 | ||||||
|  | .. date: 2017-10-05-11-06-32 | ||||||
|  | .. nonce: MF47Y6 | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | Fix deadlocks in :class:`concurrent.futures.ProcessPoolExecutor` when task | ||||||
|  | arguments or results cause pickling or unpickling errors. This should make | ||||||
|  | sure that calls to the :class:`ProcessPoolExecutor` API always eventually | ||||||
|  | return. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 15216 | ||||||
|  | .. date: 2017-09-16-02-56-33 | ||||||
|  | .. nonce: lqXCTT | ||||||
|  | .. section: Library | ||||||
|  | 
 | ||||||
|  | ``TextIOWrapper.reconfigure()`` supports changing *encoding*, *errors*, and | ||||||
|  | *newline*. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32418 | ||||||
|  | .. date: 2017-12-24-17-29-37 | ||||||
|  | .. nonce: eZe-ID | ||||||
|  | .. section: Documentation | ||||||
|  | 
 | ||||||
|  | Add get_loop() method to Server and AbstractServer classes. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32252 | ||||||
|  | .. date: 2017-12-11-13-31-33 | ||||||
|  | .. nonce: YnFw7J | ||||||
|  | .. section: Tests | ||||||
|  | 
 | ||||||
|  | Fix faulthandler_suppress_crash_report() used to prevent core dump files | ||||||
|  | when testing crashes. getrlimit() returns zero on success. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32002 | ||||||
|  | .. date: 2017-11-11-16-35-18 | ||||||
|  | .. nonce: itDxIo | ||||||
|  | .. section: Tests | ||||||
|  | 
 | ||||||
|  | Adjust C locale coercion testing for the empty locale and POSIX locale cases | ||||||
|  | to more readily adjust to platform dependent behaviour. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 19764 | ||||||
|  | .. date: 2017-08-18-18-00-24 | ||||||
|  | .. nonce: ODpc9y | ||||||
|  | .. section: Windows | ||||||
|  | 
 | ||||||
|  | Implement support for `subprocess.Popen(close_fds=True)` on Windows. Patch | ||||||
|  | by Segev Finer. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 24960 | ||||||
|  | .. date: 2017-12-22-09-25-51 | ||||||
|  | .. nonce: TGdAgO | ||||||
|  | .. section: Tools/Demos | ||||||
|  | 
 | ||||||
|  | 2to3 and lib2to3 can now read pickled grammar files using pkgutil.get_data() | ||||||
|  | rather than probing the filesystem. This lets 2to3 and lib2to3 work when run | ||||||
|  | from a zipfile. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32030 | ||||||
|  | .. date: 2017-12-20-23-22-32 | ||||||
|  | .. nonce: d1dcwh | ||||||
|  | .. section: C API | ||||||
|  | 
 | ||||||
|  | Py_Initialize() doesn't reset the memory allocators to default if the | ||||||
|  | ``PYTHONMALLOC`` environment variable is not set. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 29084 | ||||||
|  | .. date: 2017-12-16-09-59-35 | ||||||
|  | .. nonce: ZGJ-LJ | ||||||
|  | .. section: C API | ||||||
|  | 
 | ||||||
|  | Undocumented C API for OrderedDict has been excluded from the limited C API. | ||||||
|  | It was added by mistake and actually never worked in the limited C API. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32264 | ||||||
|  | .. date: 2017-12-12-23-09-46 | ||||||
|  | .. nonce: ahRlOI | ||||||
|  | .. section: C API | ||||||
|  | 
 | ||||||
|  | Moved the pygetopt.h header into internal/, since it has no public APIs. | ||||||
|  | 
 | ||||||
|  | .. | ||||||
|  | 
 | ||||||
|  | .. bpo: 32241 | ||||||
|  | .. date: 2017-12-07-15-58-15 | ||||||
|  | .. nonce: LbyQt6 | ||||||
|  | .. section: C API | ||||||
|  | 
 | ||||||
|  | :c:func:`Py_SetProgramName` and :c:func:`Py_SetPythonHome` now take the | ||||||
|  | ``const wchar *`` arguments instead of ``wchar *``. | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| :c:func:`Py_SetProgramName` and :c:func:`Py_SetPythonHome` now take the |  | ||||||
| ``const wchar *`` arguments instead of ``wchar *``. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Moved the pygetopt.h header into internal/, since it has no public APIs. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Undocumented C API for OrderedDict has been excluded from the limited C API. |  | ||||||
| It was added by mistake and actually never worked in the limited C API. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Py_Initialize() doesn't reset the memory allocators to default if the |  | ||||||
| ``PYTHONMALLOC`` environment variable is not set. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Move constant folding from bytecode layer to AST layer. |  | ||||||
| Original patch by Eugene Toder. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Implement PEP 552 (Deterministic pycs). Python now supports invalidating |  | ||||||
| bytecode cache files bashed on a source content hash rather than source |  | ||||||
| last-modified time. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| The `atexit` module now has its callback stored per interpreter. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| PEP 562: Add support for module ``__getattr__`` and ``__dir__``. Implemented by Ivan |  | ||||||
| Levkivskyi. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| PEP 560: Add support for __mro_entries__ and __class_getitem__. Implemented |  | ||||||
| by Ivan Levkivskyi. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add a new UTF-8 mode: implementation of the :pep:`540`. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| `-X dev` now injects a ``'default'`` entry into sys.warnoptions, ensuring |  | ||||||
| that it behaves identically to actually passing ``-Wdefault`` at the command |  | ||||||
| line. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| ``-b`` and ``-bb`` now inject ``'default::BytesWarning'`` and |  | ||||||
| ``error::BytesWarning`` entries into ``sys.warnoptions``, ensuring that they |  | ||||||
| take precedence over any other warning filters configured via the ``-W`` |  | ||||||
| option or the ``PYTHONWARNINGS`` environment variable. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Improve the error message logic for object.__new__ and object.__init__. |  | ||||||
| Patch by Sanyam Khurana. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Don't byte swap the input keys to the SipHash algorithm on big-endian |  | ||||||
| platforms. This should ensure siphash gives consistent results across |  | ||||||
| platforms. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Implement TracebackType.__new__ to allow Python-level creation of |  | ||||||
| traceback objects, and make TracebackType.tb_next mutable. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Fix an unnecessary ifdef in the include of VersionHelpers.h in socketmodule |  | ||||||
| on Windows. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| The optimizer is now protected from spending much time doing complex |  | ||||||
| calculations and consuming much memory for creating large constants in |  | ||||||
| constant folding. Increased limits for constants that can be produced in |  | ||||||
| constant folding. |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| The :option:`-R` option now turns on hash randomization when the |  | ||||||
| :envvar:`PYTHONHASHSEED` environment variable is set to ``0``. Previously, |  | ||||||
| the option was ignored. Moreover, ``sys.flags.hash_randomization`` is now |  | ||||||
| properly set to 0 when hash randomization is turned off by |  | ||||||
| ``PYTHONHASHSEED=0``. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| The ``__debug__`` constant is now optimized out at compile time. This fixes also |  | ||||||
| bpo-22091. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| The error message of a TypeError raised when unpack non-iterable is now more |  | ||||||
| specific. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Make MRO computation faster when a class inherits from a single base. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Fix the compilation failure on AIX after the f_fsid field has been added to the object returned by os.statvfs() (issue #32143). Original patch by Michael Felt. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add AIX uuid library support for RFC4122 using uuid_create() in libc.a |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| ``__class_getitem__`` is now an automatic class method. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| The default warning filter list now starts with a |  | ||||||
| "default::DeprecationWarning:__main__" entry, so deprecation warnings are |  | ||||||
| once again shown by default in single-file scripts and at the interactive |  | ||||||
| prompt. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add get_loop() method to Server and AbstractServer classes. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| ``TextIOWrapper.reconfigure()`` supports changing *encoding*, *errors*, and |  | ||||||
| *newline*. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| Fix deadlocks in :class:`concurrent.futures.ProcessPoolExecutor` when |  | ||||||
| task arguments or results cause pickling or unpickling errors. |  | ||||||
| This should make sure that calls to the :class:`ProcessPoolExecutor` API |  | ||||||
| always eventually return. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add contextlib.AbstractAsyncContextManager. Patch by Jelle Zijlstra. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Importing native path module (``posixpath``, ``ntpath``) now works even if |  | ||||||
| the ``os`` module still is not imported. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| ast.literal_eval() is now more strict. Addition and subtraction of |  | ||||||
| arbitrary numbers no longer allowed. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Ensure TCP_NODELAY is set on Linux. Tests by Victor Stinner. |  | ||||||
|  | @ -1,14 +0,0 @@ | ||||||
| The picklers do no longer allocate temporary memory when dumping large |  | ||||||
| ``bytes`` and ``str`` objects into a file object. Instead the data is |  | ||||||
| directly streamed into the underlying file object. |  | ||||||
| 
 |  | ||||||
| Previously the C implementation would buffer all content and issue a |  | ||||||
| single call to ``file.write`` at the end of the dump. With protocol 4 |  | ||||||
| this behavior has changed to issue one call to ``file.write`` per frame. |  | ||||||
| 
 |  | ||||||
| The Python pickler with protocol 4 now dumps each frame content as a |  | ||||||
| memoryview to an IOBytes instance that is never reused and the |  | ||||||
| memoryview is no longer released after the call to write. This makes it |  | ||||||
| possible for the file object to delay access to the memoryview of |  | ||||||
| previous frames without forcing any additional memory copy as was |  | ||||||
| already possible with the C pickler. |  | ||||||
|  | @ -1,12 +0,0 @@ | ||||||
| Fix ctypes.util.find_library() for AIX |  | ||||||
| by implementing ctypes._aix.find_library() |  | ||||||
| Patch by: Michael Felt aka aixtools |  | ||||||
| 
 |  | ||||||
| ctypes.util.find_library has always returned None on a standard AIX. |  | ||||||
| With this patch there is support for both AIX and svr4 shared libraries. |  | ||||||
| None is returned only when there is nothinbg found. Normal behavior is now: |  | ||||||
| on AIX find_library("FOO") returns either libFOO.a(libFOO.so) or libFOO.so |  | ||||||
| while legacy names e.g., find_library("c") returns libc.a(shr.o) |  | ||||||
| or libc.a(shr_64.o) - depending on 32 or 64-bit operations. |  | ||||||
| Include RTLD_MEMBER to mode to support AIX legacy library(member) names |  | ||||||
| (Modules/_ctype/posixmodule.c), ctypes/__init__.py and configure.ac) |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| os.statvfs() includes the f_fsid field from statvfs(2) |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| The getnode() ip getter now uses 'ip link' instead of 'ip link list'. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Added new alternate constructors :meth:`datetime.datetime.fromisoformat`, |  | ||||||
| :meth:`datetime.time.fromisoformat` and :meth:`datetime.date.fromisoformat` |  | ||||||
| as the inverse operation of each classes's respective ``isoformat`` methods. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| ``functools.singledispatch`` now supports registering implementations using |  | ||||||
| type annotations. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add support to run modules with pdb |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Convert asyncio to use *async/await* syntax. Old styled ``yield from`` is |  | ||||||
| still supported too. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Changed MIME type of .bmp from 'image/x-ms-bmp' to 'image/bmp' |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Deprecate ``yield from lock``, ``await lock``, ``with (yield from lock)`` |  | ||||||
| and ``with await lock`` for asyncio synchronization primitives. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| All class and static methods of builtin types now are correctly classified |  | ||||||
| by inspect.classify_class_attrs() and grouped in pydoc ouput. Added |  | ||||||
| types.ClassMethodDescriptorType for unbound class methods of builtin types. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Add asyncio.get_running_loop() function. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Remove asyncio.async() function. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Move asyncio.test_utils to test.test_asyncio. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| The ``fpectl`` library has been removed. It was never enabled by default, |  | ||||||
| never worked correctly on x86-64, and it changed the Python ABI in ways that |  | ||||||
| caused unexpected breakage of C extensions. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| New argument warn_on_full_buffer to signal.set_wakeup_fd lets you control |  | ||||||
| whether Python prints a warning on stderr when the wakeup fd buffer |  | ||||||
| overflows. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Raise ``NotImplementedError`` instead of ``SystemError`` on platforms where |  | ||||||
| ``chmod(..., follow_symlinks=False)`` is not supported.  Patch by Anthony |  | ||||||
| Sottile. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| A single empty field is now always quoted when written into a CSV file. |  | ||||||
| This allows to distinguish an empty row from a row consisting of a single empty field. |  | ||||||
| Patch by Licht Takeuchi. |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| Implement ``asyncio.current_task()`` and ``asyncio.all_tasks()``. Add |  | ||||||
| helpers intended to be used by alternative task implementations: |  | ||||||
| ``asyncio._register_task``, ``asyncio._enter_task``, ``asyncio._leave_task`` |  | ||||||
| and ``asyncio._unregister_task``. Deprecate ``asyncio.Task.current_task()`` |  | ||||||
| and ``asyncio.Task.all_tasks()``. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Implement asyncio._get_running_loop() and get_event_loop() in C. This makes |  | ||||||
| them 4x faster. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Revert incorrect fix based on misunderstanding of _Py_PyAtExit() semantics. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Implement asyncio.run(). |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Abort asyncio SSLProtocol connection if handshake not complete within 10s |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| :func:`re.sub()` now replaces empty matches adjacent to a previous non-empty |  | ||||||
| match. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Fix ``stop_serving`` in asyncio proactor loop kill all listening servers |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Fix bdist_wininst of distutils for CRT v142: it binary compatible with CRT |  | ||||||
| v140. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| :func:`urllib.parse.urlsplit()` does not convert zone-id (scope) to lower case |  | ||||||
| for scoped IPv6 addresses in hostnames now. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Convert asyncio functions that were documented as coroutines to coroutines. |  | ||||||
| Affected functions: loop.sock_sendall, loop.sock_recv, loop.sock_accept, |  | ||||||
| loop.run_in_executor, loop.getaddrinfo, loop.getnameinfo. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Implement asyncio.create_task(coro) shortcut |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| Add :class:`importlib.abc.ResourceReader` as an ABC for loaders to provide a |  | ||||||
| unified API for reading resources contained within packages.  Also add |  | ||||||
| :mod:`importlib.resources` as the port of ``importlib_resources``. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| Fix socket.settimeout() and socket.setblocking() to keep socket.type |  | ||||||
| as is. Fix socket.socket() constructor to reset any bit flags applied to |  | ||||||
| socket's type.  This change only affects OSes that have SOCK_NONBLOCK |  | ||||||
| and/or SOCK_CLOEXEC. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Optimize asyncio.Future schedule/add/remove callback.  The optimization |  | ||||||
| shows 3-6% performance improvements of async/await code. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Use fastpath in asyncio.sleep if delay<0 (2x boost) |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Optimize asyncio.gather(); now up to 15% faster. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| asyncio.transport.resume_reading() and pause_reading() are now idempotent. |  | ||||||
| New transport.is_reading() method is added. |  | ||||||
|  | @ -1,5 +0,0 @@ | ||||||
| Optimize asyncio.iscoroutine() and loop.create_task() for non-native |  | ||||||
| coroutines (e.g. async/await compiled with Cython). |  | ||||||
| 
 |  | ||||||
| 'loop.create_task(python_coroutine)' used to be 20% faster than |  | ||||||
| 'loop.create_task(cython_coroutine)'.  Now, the latter is as fast. |  | ||||||
|  | @ -1,4 +0,0 @@ | ||||||
| Make asyncio.Task.set_exception() and set_result() raise |  | ||||||
| NotImplementedError. Task._step() and Future.__await__() raise proper |  | ||||||
| exceptions when they are in an invalid state, instead of raising an |  | ||||||
| AssertionError. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Don't unsubscribe signals in asyncio UNIX event loop on interpreter shutdown. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| asyncio: Add Task.get_loop() and Future.get_loop() |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Prevent Python crash from happening when Future._log_traceback is set to |  | ||||||
| True manually.  Now it can only be set to False, or a ValueError is raised. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| ``functools.lru_cache`` uses less memory (3 words for each cached key) and |  | ||||||
| takes about 1/3 time for cyclic GC. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Return the new file descriptor (i.e., the second argument) from ``os.dup2``. |  | ||||||
| Previously, ``None`` was always returned. |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| asyncio: Implement loop.start_tls() |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| Improve frame repr() to mention filename, code name and current line number. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Add dataclasses.is_dataclass(obj), which returns True if obj is a dataclass |  | ||||||
| or an instance of one. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Make type information optional on dataclasses.make_dataclass(). If omitted, |  | ||||||
| the string 'typing.Any' is used. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Add params to dataclasses.make_dataclasses(): init, repr, eq, order, hash, |  | ||||||
| and frozen.  Pass them through to dataclass(). |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Now that dict is defined as keeping insertion order, drop OrderedDict and |  | ||||||
| just use plain dict. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Adjust C locale coercion testing for the empty locale and POSIX locale |  | ||||||
| cases to more readily adjust to platform dependent behaviour. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Fix faulthandler_suppress_crash_report() used to prevent core dump files |  | ||||||
| when testing crashes. getrlimit() returns zero on success. |  | ||||||
|  | @ -1,3 +0,0 @@ | ||||||
| 2to3 and lib2to3 can now read pickled grammar files using pkgutil.get_data() |  | ||||||
| rather than probing the filesystem. This lets 2to3 and lib2to3 work when run |  | ||||||
| from a zipfile. |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| Implement support for `subprocess.Popen(close_fds=True)` on Windows. Patch |  | ||||||
| by Segev Finer. |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ned Deily
						Ned Deily