Update docs for 3.7.0a4
This commit is contained in:
parent
ca0c5f2656
commit
3b43bfaae6
|
@ -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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' 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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' 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 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' 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'
|
||||||
|
|
|
@ -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…
Reference in New Issue