mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Python 3.9.5
This commit is contained in:
parent
bb2f3ff7a8
commit
0a7dcbdb13
49 changed files with 599 additions and 208 deletions
|
@ -18,12 +18,12 @@
|
||||||
/*--start constants--*/
|
/*--start constants--*/
|
||||||
#define PY_MAJOR_VERSION 3
|
#define PY_MAJOR_VERSION 3
|
||||||
#define PY_MINOR_VERSION 9
|
#define PY_MINOR_VERSION 9
|
||||||
#define PY_MICRO_VERSION 4
|
#define PY_MICRO_VERSION 5
|
||||||
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
|
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
|
||||||
#define PY_RELEASE_SERIAL 0
|
#define PY_RELEASE_SERIAL 0
|
||||||
|
|
||||||
/* Version as a string */
|
/* Version as a string */
|
||||||
#define PY_VERSION "3.9.4+"
|
#define PY_VERSION "3.9.5"
|
||||||
/*--end constants--*/
|
/*--end constants--*/
|
||||||
|
|
||||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Autogenerated by Sphinx on Sun Apr 4 14:53:49 2021
|
# Autogenerated by Sphinx on Mon May 3 16:52:46 2021
|
||||||
topics = {'assert': 'The "assert" statement\n'
|
topics = {'assert': 'The "assert" statement\n'
|
||||||
'**********************\n'
|
'**********************\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -986,9 +986,9 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'For instance bindings, the precedence of descriptor '
|
'For instance bindings, the precedence of descriptor '
|
||||||
'invocation depends\n'
|
'invocation depends\n'
|
||||||
'on the which descriptor methods are defined. A '
|
'on which descriptor methods are defined. A descriptor '
|
||||||
'descriptor can define\n'
|
'can define any\n'
|
||||||
'any combination of "__get__()", "__set__()" and '
|
'combination of "__get__()", "__set__()" and '
|
||||||
'"__delete__()". If it\n'
|
'"__delete__()". If it\n'
|
||||||
'does not define "__get__()", then accessing the '
|
'does not define "__get__()", then accessing the '
|
||||||
'attribute will return\n'
|
'attribute will return\n'
|
||||||
|
@ -1358,6 +1358,10 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'through their "__code__" attribute. See also the '
|
'through their "__code__" attribute. See also the '
|
||||||
'"code" module.\n'
|
'"code" module.\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
'Accessing "__code__" raises an auditing event '
|
||||||
|
'"object.__getattr__"\n'
|
||||||
|
'with arguments "obj" and ""__code__"".\n'
|
||||||
|
'\n'
|
||||||
'A code object can be executed or evaluated by passing '
|
'A code object can be executed or evaluated by passing '
|
||||||
'it (instead of a\n'
|
'it (instead of a\n'
|
||||||
'source string) to the "exec()" or "eval()" built-in '
|
'source string) to the "exec()" or "eval()" built-in '
|
||||||
|
@ -2655,7 +2659,6 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' decorators ::= decorator+\n'
|
' decorators ::= decorator+\n'
|
||||||
' decorator ::= "@" assignment_expression '
|
' decorator ::= "@" assignment_expression '
|
||||||
'NEWLINE\n'
|
'NEWLINE\n'
|
||||||
' dotted_name ::= identifier ("." identifier)*\n'
|
|
||||||
' parameter_list ::= defparameter ("," '
|
' parameter_list ::= defparameter ("," '
|
||||||
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
|
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
|
||||||
' | parameter_list_no_posonly\n'
|
' | parameter_list_no_posonly\n'
|
||||||
|
@ -2755,7 +2758,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Calls.\n'
|
'Calls.\n'
|
||||||
'A function call always assigns values to all parameters '
|
'A function call always assigns values to all parameters '
|
||||||
'mentioned in\n'
|
'mentioned in\n'
|
||||||
'the parameter list, either from position arguments, from '
|
'the parameter list, either from positional arguments, from '
|
||||||
'keyword\n'
|
'keyword\n'
|
||||||
'arguments, or from default values. If the form “"*identifier"” '
|
'arguments, or from default values. If the form “"*identifier"” '
|
||||||
'is\n'
|
'is\n'
|
||||||
|
@ -2767,8 +2770,14 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'new\n'
|
'new\n'
|
||||||
'empty mapping of the same type. Parameters after “"*"” or\n'
|
'empty mapping of the same type. Parameters after “"*"” or\n'
|
||||||
'“"*identifier"” are keyword-only parameters and may only be '
|
'“"*identifier"” are keyword-only parameters and may only be '
|
||||||
'passed\n'
|
'passed by\n'
|
||||||
'used keyword arguments.\n'
|
'keyword arguments. Parameters before “"/"” are positional-only\n'
|
||||||
|
'parameters and may only be passed by positional arguments.\n'
|
||||||
|
'\n'
|
||||||
|
'Changed in version 3.8: The "/" function parameter syntax may be '
|
||||||
|
'used\n'
|
||||||
|
'to indicate positional-only parameters. See **PEP 570** for '
|
||||||
|
'details.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Parameters may have an *annotation* of the form “": '
|
'Parameters may have an *annotation* of the form “": '
|
||||||
'expression"”\n'
|
'expression"”\n'
|
||||||
|
@ -5217,7 +5226,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'character that can be any character and defaults to a space '
|
'character that can be any character and defaults to a space '
|
||||||
'if\n'
|
'if\n'
|
||||||
'omitted. It is not possible to use a literal curly brace '
|
'omitted. It is not possible to use a literal curly brace '
|
||||||
'(“"{"” or\n'
|
'(”"{"” or\n'
|
||||||
'“"}"”) as the *fill* character in a formatted string '
|
'“"}"”) as the *fill* character in a formatted string '
|
||||||
'literal or when\n'
|
'literal or when\n'
|
||||||
'using the "str.format()" method. However, it is possible '
|
'using the "str.format()" method. However, it is possible '
|
||||||
|
@ -5795,7 +5804,6 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' decorators ::= decorator+\n'
|
' decorators ::= decorator+\n'
|
||||||
' decorator ::= "@" assignment_expression '
|
' decorator ::= "@" assignment_expression '
|
||||||
'NEWLINE\n'
|
'NEWLINE\n'
|
||||||
' dotted_name ::= identifier ("." identifier)*\n'
|
|
||||||
' parameter_list ::= defparameter ("," '
|
' parameter_list ::= defparameter ("," '
|
||||||
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
|
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
|
||||||
' | parameter_list_no_posonly\n'
|
' | parameter_list_no_posonly\n'
|
||||||
|
@ -5895,7 +5903,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Calls.\n'
|
'Calls.\n'
|
||||||
'A function call always assigns values to all parameters '
|
'A function call always assigns values to all parameters '
|
||||||
'mentioned in\n'
|
'mentioned in\n'
|
||||||
'the parameter list, either from position arguments, from '
|
'the parameter list, either from positional arguments, from '
|
||||||
'keyword\n'
|
'keyword\n'
|
||||||
'arguments, or from default values. If the form “"*identifier"” '
|
'arguments, or from default values. If the form “"*identifier"” '
|
||||||
'is\n'
|
'is\n'
|
||||||
|
@ -5907,8 +5915,14 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'new\n'
|
'new\n'
|
||||||
'empty mapping of the same type. Parameters after “"*"” or\n'
|
'empty mapping of the same type. Parameters after “"*"” or\n'
|
||||||
'“"*identifier"” are keyword-only parameters and may only be '
|
'“"*identifier"” are keyword-only parameters and may only be '
|
||||||
'passed\n'
|
'passed by\n'
|
||||||
'used keyword arguments.\n'
|
'keyword arguments. Parameters before “"/"” are positional-only\n'
|
||||||
|
'parameters and may only be passed by positional arguments.\n'
|
||||||
|
'\n'
|
||||||
|
'Changed in version 3.8: The "/" function parameter syntax may be '
|
||||||
|
'used\n'
|
||||||
|
'to indicate positional-only parameters. See **PEP 570** for '
|
||||||
|
'details.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Parameters may have an *annotation* of the form “": '
|
'Parameters may have an *annotation* of the form “": '
|
||||||
'expression"”\n'
|
'expression"”\n'
|
||||||
|
@ -6613,10 +6627,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'lambda': 'Lambdas\n'
|
'lambda': 'Lambdas\n'
|
||||||
'*******\n'
|
'*******\n'
|
||||||
'\n'
|
'\n'
|
||||||
' lambda_expr ::= "lambda" [parameter_list] ":" '
|
' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
|
||||||
'expression\n'
|
|
||||||
' lambda_expr_nocond ::= "lambda" [parameter_list] ":" '
|
|
||||||
'expression_nocond\n'
|
|
||||||
'\n'
|
'\n'
|
||||||
'Lambda expressions (sometimes called lambda forms) are used to '
|
'Lambda expressions (sometimes called lambda forms) are used to '
|
||||||
'create\n'
|
'create\n'
|
||||||
|
@ -6896,7 +6907,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Note that numeric literals do not include a sign; a phrase like '
|
'Note that numeric literals do not include a sign; a phrase like '
|
||||||
'"-1"\n'
|
'"-1"\n'
|
||||||
'is actually an expression composed of the unary operator ‘"-"‘ '
|
'is actually an expression composed of the unary operator ‘"-"’ '
|
||||||
'and the\n'
|
'and the\n'
|
||||||
'literal "1".\n',
|
'literal "1".\n',
|
||||||
'numeric-types': 'Emulating numeric types\n'
|
'numeric-types': 'Emulating numeric types\n'
|
||||||
|
@ -7237,8 +7248,8 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'The following table summarizes the operator precedence '
|
'The following table summarizes the operator precedence '
|
||||||
'in Python, from\n'
|
'in Python, from\n'
|
||||||
'lowest precedence (least binding) to highest precedence '
|
'highest precedence (most binding) to lowest precedence '
|
||||||
'(most\n'
|
'(least\n'
|
||||||
'binding). Operators in the same box have the same '
|
'binding). Operators in the same box have the same '
|
||||||
'precedence. Unless\n'
|
'precedence. Unless\n'
|
||||||
'the syntax is explicitly given, operators are binary. '
|
'the syntax is explicitly given, operators are binary. '
|
||||||
|
@ -7257,65 +7268,6 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'| Operator | '
|
'| Operator | '
|
||||||
'Description |\n'
|
'Description |\n'
|
||||||
'|=================================================|=======================================|\n'
|
'|=================================================|=======================================|\n'
|
||||||
'| ":=" | '
|
|
||||||
'Assignment expression |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "lambda" | '
|
|
||||||
'Lambda expression |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "if" – "else" | '
|
|
||||||
'Conditional expression |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "or" | '
|
|
||||||
'Boolean OR |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "and" | '
|
|
||||||
'Boolean AND |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "not" "x" | '
|
|
||||||
'Boolean NOT |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "in", "not in", "is", "is not", "<", "<=", ">", | '
|
|
||||||
'Comparisons, including membership |\n'
|
|
||||||
'| ">=", "!=", "==" | '
|
|
||||||
'tests and identity tests |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "|" | '
|
|
||||||
'Bitwise OR |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "^" | '
|
|
||||||
'Bitwise XOR |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "&" | '
|
|
||||||
'Bitwise AND |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "<<", ">>" | '
|
|
||||||
'Shifts |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "+", "-" | '
|
|
||||||
'Addition and subtraction |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "*", "@", "/", "//", "%" | '
|
|
||||||
'Multiplication, matrix |\n'
|
|
||||||
'| | '
|
|
||||||
'multiplication, division, floor |\n'
|
|
||||||
'| | '
|
|
||||||
'division, remainder [5] |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "+x", "-x", "~x" | '
|
|
||||||
'Positive, negative, bitwise NOT |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "**" | '
|
|
||||||
'Exponentiation [6] |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "await" "x" | '
|
|
||||||
'Await expression |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "x[index]", "x[index:index]", | '
|
|
||||||
'Subscription, slicing, call, |\n'
|
|
||||||
'| "x(arguments...)", "x.attribute" | '
|
|
||||||
'attribute reference |\n'
|
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
|
||||||
'| "(expressions...)", "[expressions...]", "{key: | '
|
'| "(expressions...)", "[expressions...]", "{key: | '
|
||||||
'Binding or parenthesized expression, |\n'
|
'Binding or parenthesized expression, |\n'
|
||||||
'| value...}", "{expressions...}" | list '
|
'| value...}", "{expressions...}" | list '
|
||||||
|
@ -7323,6 +7275,65 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'| | '
|
'| | '
|
||||||
'display |\n'
|
'display |\n'
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "x[index]", "x[index:index]", | '
|
||||||
|
'Subscription, slicing, call, |\n'
|
||||||
|
'| "x(arguments...)", "x.attribute" | '
|
||||||
|
'attribute reference |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "await" "x" | '
|
||||||
|
'Await expression |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "**" | '
|
||||||
|
'Exponentiation [5] |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "+x", "-x", "~x" | '
|
||||||
|
'Positive, negative, bitwise NOT |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "*", "@", "/", "//", "%" | '
|
||||||
|
'Multiplication, matrix |\n'
|
||||||
|
'| | '
|
||||||
|
'multiplication, division, floor |\n'
|
||||||
|
'| | '
|
||||||
|
'division, remainder [6] |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "+", "-" | '
|
||||||
|
'Addition and subtraction |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "<<", ">>" | '
|
||||||
|
'Shifts |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "&" | '
|
||||||
|
'Bitwise AND |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "^" | '
|
||||||
|
'Bitwise XOR |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "|" | '
|
||||||
|
'Bitwise OR |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "in", "not in", "is", "is not", "<", "<=", ">", | '
|
||||||
|
'Comparisons, including membership |\n'
|
||||||
|
'| ">=", "!=", "==" | '
|
||||||
|
'tests and identity tests |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "not" "x" | '
|
||||||
|
'Boolean NOT |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "and" | '
|
||||||
|
'Boolean AND |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "or" | '
|
||||||
|
'Boolean OR |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "if" – "else" | '
|
||||||
|
'Conditional expression |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| "lambda" | '
|
||||||
|
'Lambda expression |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
'| ":=" | '
|
||||||
|
'Assignment expression |\n'
|
||||||
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
'\n'
|
'\n'
|
||||||
'-[ Footnotes ]-\n'
|
'-[ Footnotes ]-\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -7402,14 +7413,14 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Check their\n'
|
'Check their\n'
|
||||||
' documentation for more info.\n'
|
' documentation for more info.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'[5] The "%" operator is also used for string formatting; '
|
'[5] The power operator "**" binds less tightly than an '
|
||||||
'the same\n'
|
|
||||||
' precedence applies.\n'
|
|
||||||
'\n'
|
|
||||||
'[6] The power operator "**" binds less tightly than an '
|
|
||||||
'arithmetic or\n'
|
'arithmetic or\n'
|
||||||
' bitwise unary operator on its right, that is, '
|
' bitwise unary operator on its right, that is, '
|
||||||
'"2**-1" is "0.5".\n',
|
'"2**-1" is "0.5".\n'
|
||||||
|
'\n'
|
||||||
|
'[6] The "%" operator is also used for string formatting; '
|
||||||
|
'the same\n'
|
||||||
|
' precedence applies.\n',
|
||||||
'pass': 'The "pass" statement\n'
|
'pass': 'The "pass" statement\n'
|
||||||
'********************\n'
|
'********************\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -7494,12 +7505,18 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'The "from" clause is used for exception chaining: if given, the '
|
'The "from" clause is used for exception chaining: if given, the '
|
||||||
'second\n'
|
'second\n'
|
||||||
'*expression* must be another exception class or instance, which '
|
'*expression* must be another exception class or instance. If the\n'
|
||||||
'will\n'
|
'second expression is an exception instance, it will be attached to '
|
||||||
'then be attached to the raised exception as the "__cause__" '
|
'the\n'
|
||||||
'attribute\n'
|
'raised exception as the "__cause__" attribute (which is writable). '
|
||||||
'(which is writable). If the raised exception is not handled, both\n'
|
'If\n'
|
||||||
'exceptions will be printed:\n'
|
'the expression is an exception class, the class will be '
|
||||||
|
'instantiated\n'
|
||||||
|
'and the resulting exception instance will be attached to the '
|
||||||
|
'raised\n'
|
||||||
|
'exception as the "__cause__" attribute. If the raised exception is '
|
||||||
|
'not\n'
|
||||||
|
'handled, both exceptions will be printed:\n'
|
||||||
'\n'
|
'\n'
|
||||||
' >>> try:\n'
|
' >>> try:\n'
|
||||||
' ... print(1 / 0)\n'
|
' ... print(1 / 0)\n'
|
||||||
|
@ -8841,10 +8858,10 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'For instance bindings, the precedence of descriptor '
|
'For instance bindings, the precedence of descriptor '
|
||||||
'invocation depends\n'
|
'invocation depends\n'
|
||||||
'on the which descriptor methods are defined. A descriptor '
|
'on which descriptor methods are defined. A descriptor can '
|
||||||
'can define\n'
|
'define any\n'
|
||||||
'any combination of "__get__()", "__set__()" and '
|
'combination of "__get__()", "__set__()" and "__delete__()". '
|
||||||
'"__delete__()". If it\n'
|
'If it\n'
|
||||||
'does not define "__get__()", then accessing the attribute '
|
'does not define "__get__()", then accessing the attribute '
|
||||||
'will return\n'
|
'will return\n'
|
||||||
'the descriptor object itself unless there is a value in the '
|
'the descriptor object itself unless there is a value in the '
|
||||||
|
@ -10071,7 +10088,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'*start* and\n'
|
'*start* and\n'
|
||||||
' *end* are interpreted as in slice notation.\n'
|
' *end* are interpreted as in slice notation.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'str.encode(encoding="utf-8", errors="strict")\n'
|
"str.encode(encoding='utf-8', errors='strict')\n"
|
||||||
'\n'
|
'\n'
|
||||||
' Return an encoded version of the string as a bytes '
|
' Return an encoded version of the string as a bytes '
|
||||||
'object. Default\n'
|
'object. Default\n'
|
||||||
|
@ -11590,7 +11607,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' points. All the code points in the range "U+0000 - '
|
' points. All the code points in the range "U+0000 - '
|
||||||
'U+10FFFF"\n'
|
'U+10FFFF"\n'
|
||||||
' can be represented in a string. Python doesn’t have a '
|
' can be represented in a string. Python doesn’t have a '
|
||||||
'"char"\n'
|
'*char*\n'
|
||||||
' type; instead, every code point in the string is '
|
' type; instead, every code point in the string is '
|
||||||
'represented\n'
|
'represented\n'
|
||||||
' as a string object with length "1". The built-in '
|
' as a string object with length "1". The built-in '
|
||||||
|
@ -12320,6 +12337,10 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' gives the precise instruction (this is an index into the\n'
|
' gives the precise instruction (this is an index into the\n'
|
||||||
' bytecode string of the code object).\n'
|
' bytecode string of the code object).\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
' Accessing "f_code" raises an auditing event '
|
||||||
|
'"object.__getattr__"\n'
|
||||||
|
' with arguments "obj" and ""f_code"".\n'
|
||||||
|
'\n'
|
||||||
' Special writable attributes: "f_trace", if not "None", is a\n'
|
' Special writable attributes: "f_trace", if not "None", is a\n'
|
||||||
' function called for various events during code execution '
|
' function called for various events during code execution '
|
||||||
'(this\n'
|
'(this\n'
|
||||||
|
@ -12403,6 +12424,9 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' the exception occurred in a "try" statement with no matching\n'
|
' the exception occurred in a "try" statement with no matching\n'
|
||||||
' except clause or with a finally clause.\n'
|
' except clause or with a finally clause.\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
' Accessing "tb_frame" raises an auditing event\n'
|
||||||
|
' "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
|
||||||
|
'\n'
|
||||||
' Special writable attribute: "tb_next" is the next level in '
|
' Special writable attribute: "tb_next" is the next level in '
|
||||||
'the\n'
|
'the\n'
|
||||||
' stack trace (towards the frame where the exception occurred), '
|
' stack trace (towards the frame where the exception occurred), '
|
||||||
|
|
473
Misc/NEWS.d/3.9.5.rst
Normal file
473
Misc/NEWS.d/3.9.5.rst
Normal file
|
@ -0,0 +1,473 @@
|
||||||
|
.. bpo: 43434
|
||||||
|
.. date: 2021-05-02-17-50-23
|
||||||
|
.. nonce: cy7xz6
|
||||||
|
.. release date: 2021-05-03
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
Creating a :class:`sqlite3.Connection` object now also produces a
|
||||||
|
``sqlite3.connect`` :ref:`auditing event <auditing>`. Previously this event
|
||||||
|
was only produced by :func:`sqlite3.connect` calls. Patch by Erlend E.
|
||||||
|
Aasland.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43882
|
||||||
|
.. date: 2021-04-25-07-46-37
|
||||||
|
.. nonce: Jpwx85
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
The presence of newline or tab characters in parts of a URL could allow some
|
||||||
|
forms of attacks.
|
||||||
|
|
||||||
|
Following the controlling specification for URLs defined by WHATWG
|
||||||
|
:func:`urllib.parse` now removes ASCII newlines and tabs from URLs,
|
||||||
|
preventing such attacks.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43472
|
||||||
|
.. date: 2021-04-21-22-53-31
|
||||||
|
.. nonce: gjLBTb
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
Ensures interpreter-level audit hooks receive the
|
||||||
|
``cpython.PyInterpreterState_New`` event when called through the
|
||||||
|
``_xxsubinterpreters`` module.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 36384
|
||||||
|
.. date: 2021-03-30-16-29-51
|
||||||
|
.. nonce: sCAmLs
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
:mod:`ipaddress` module no longer accepts any leading zeros in IPv4 address
|
||||||
|
strings. Leading zeros are ambiguous and interpreted as octal notation by
|
||||||
|
some libraries. For example the legacy function :func:`socket.inet_aton`
|
||||||
|
treats leading zeros as octal notatation. glibc implementation of modern
|
||||||
|
:func:`~socket.inet_pton` does not accept any leading zeros. For a while the
|
||||||
|
:mod:`ipaddress` module used to accept ambiguous leading zeros.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43075
|
||||||
|
.. date: 2021-01-31-05-28-14
|
||||||
|
.. nonce: DoAXqO
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
Fix Regular Expression Denial of Service (ReDoS) vulnerability in
|
||||||
|
:class:`urllib.request.AbstractBasicAuthHandler`. The ReDoS-vulnerable
|
||||||
|
regex has quadratic worst-case complexity and it allows cause a denial of
|
||||||
|
service when identifying crafted invalid RFCs. This ReDoS issue is on the
|
||||||
|
client side and needs remote attackers to control the HTTP server.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 42800
|
||||||
|
.. date: 2021-01-09-17-07-36
|
||||||
|
.. nonce: _dtZvW
|
||||||
|
.. section: Security
|
||||||
|
|
||||||
|
Audit hooks are now fired for frame.f_code, traceback.tb_frame, and
|
||||||
|
generator code/frame attribute access.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43105
|
||||||
|
.. date: 2021-03-31-20-35-11
|
||||||
|
.. nonce: PBVmHm
|
||||||
|
.. section: Core and Builtins
|
||||||
|
|
||||||
|
Importlib now resolves relative paths when creating module spec objects from
|
||||||
|
file locations.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 42924
|
||||||
|
.. date: 2021-01-13-14-06-01
|
||||||
|
.. nonce: _WS1Ok
|
||||||
|
.. section: Core and Builtins
|
||||||
|
|
||||||
|
Fix ``bytearray`` repetition incorrectly copying data from the start of the
|
||||||
|
buffer, even if the data is offset within the buffer (e.g. after reassigning
|
||||||
|
a slice at the start of the ``bytearray`` to a shorter byte string).
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43993
|
||||||
|
.. date: 2021-04-30-19-23-45
|
||||||
|
.. nonce: T7_yoq
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Update bundled pip to 21.1.1.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43937
|
||||||
|
.. date: 2021-04-25-13-34-13
|
||||||
|
.. nonce: isx95l
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fixed the :mod:`turtle` module working with non-default root window.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43930
|
||||||
|
.. date: 2021-04-24-14-23-07
|
||||||
|
.. nonce: R7ah0m
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Update bundled pip to 21.1 and setuptools to 56.0.0
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43920
|
||||||
|
.. date: 2021-04-23-11-54-38
|
||||||
|
.. nonce: cJMQ2D
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
OpenSSL 3.0.0: :meth:`~ssl.SSLContext.load_verify_locations` now returns a
|
||||||
|
consistent error message when cadata contains no valid certificate.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43607
|
||||||
|
.. date: 2021-04-22-22-39-58
|
||||||
|
.. nonce: 7IYDkG
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
:mod:`urllib` can now convert Windows paths with ``\\?\`` prefixes into URL
|
||||||
|
paths.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43284
|
||||||
|
.. date: 2021-04-21-14-50-57
|
||||||
|
.. nonce: 2QZn2T
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
platform.win32_ver derives the windows version from
|
||||||
|
sys.getwindowsversion().platform_version which in turn derives the version
|
||||||
|
from kernel32.dll (which can be of a different version than Windows itself).
|
||||||
|
Therefore change the platform.win32_ver to determine the version using the
|
||||||
|
platform module's _syscmd_ver private function to return an accurate
|
||||||
|
version.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 42248
|
||||||
|
.. date: 2021-04-11-21-10-57
|
||||||
|
.. nonce: pedB1E
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
[Enum] ensure exceptions raised in ``_missing__`` are released
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43799
|
||||||
|
.. date: 2021-04-10-11-35-50
|
||||||
|
.. nonce: 1iV4pX
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
OpenSSL 3.0.0: define ``OPENSSL_API_COMPAT`` 1.1.1 to suppress deprecation
|
||||||
|
warnings. Python requires OpenSSL 1.1.1 APIs.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43794
|
||||||
|
.. date: 2021-04-09-16-14-22
|
||||||
|
.. nonce: -1XPDH
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Add :data:`ssl.OP_IGNORE_UNEXPECTED_EOF` constants (OpenSSL 3.0.0)
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43789
|
||||||
|
.. date: 2021-04-09-14-08-03
|
||||||
|
.. nonce: eaHlAm
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
OpenSSL 3.0.0: Don't call the password callback function a second time when
|
||||||
|
first call has signaled an error condition.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43788
|
||||||
|
.. date: 2021-04-09-12-08-01
|
||||||
|
.. nonce: YsvInM
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
The header files for :mod:`ssl` error codes are now OpenSSL
|
||||||
|
version-specific. Exceptions will now show correct reason and library codes.
|
||||||
|
The ``make_ssl_data.py`` script has been rewritten to use OpenSSL's text
|
||||||
|
file with error codes.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43655
|
||||||
|
.. date: 2021-04-04-20-51-19
|
||||||
|
.. nonce: LwGy8R
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
:mod:`tkinter` dialog windows are now recognized as dialogs by window
|
||||||
|
managers on macOS and X Window.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43534
|
||||||
|
.. date: 2021-03-18-15-46-08
|
||||||
|
.. nonce: vPE9Us
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
:func:`turtle.textinput` and :func:`turtle.numinput` create now a transient
|
||||||
|
window working on behalf of the canvas window.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43522
|
||||||
|
.. date: 2021-03-16-22-37-32
|
||||||
|
.. nonce: dhNwOu
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fix problem with :attr:`~ssl.SSLContext.hostname_checks_common_name`.
|
||||||
|
OpenSSL does not copy hostflags from *struct SSL_CTX* to *struct SSL*.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 42967
|
||||||
|
.. date: 2021-03-11-00-31-41
|
||||||
|
.. nonce: 2PeQRw
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Allow :class:`bytes` ``separator`` argument in ``urllib.parse.parse_qs`` and
|
||||||
|
``urllib.parse.parse_qsl`` when parsing :class:`str` query strings.
|
||||||
|
Previously, this raised a ``TypeError``.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43176
|
||||||
|
.. date: 2021-02-09-07-24-29
|
||||||
|
.. nonce: bocNQn
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fixed processing of a dataclass that inherits from a frozen dataclass with
|
||||||
|
no fields. It is now correctly detected as an error.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 41735
|
||||||
|
.. date: 2020-09-07-21-40-07
|
||||||
|
.. nonce: NKqGKy
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 36470
|
||||||
|
.. date: 2020-06-13-23-33-32
|
||||||
|
.. nonce: oi6Kdb
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace()`. Patch
|
||||||
|
by Claudiu Popa.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 32745
|
||||||
|
.. date: 2018-08-09-23-47-10
|
||||||
|
.. nonce: iQi9hI
|
||||||
|
.. section: Library
|
||||||
|
|
||||||
|
Fix a regression in the handling of ctypes' :data:`ctypes.c_wchar_p` type:
|
||||||
|
embedded null characters would cause a :exc:`ValueError` to be raised. Patch
|
||||||
|
by Zackery Spytz.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43959
|
||||||
|
.. date: 2021-04-27-22-22-22
|
||||||
|
.. nonce: n2261q
|
||||||
|
.. section: Documentation
|
||||||
|
|
||||||
|
The documentation on the PyContextVar C-API was clarified.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43938
|
||||||
|
.. date: 2021-04-25-22-44-27
|
||||||
|
.. nonce: nC660q
|
||||||
|
.. section: Documentation
|
||||||
|
|
||||||
|
Update dataclasses documentation to express that FrozenInstanceError is
|
||||||
|
derived from AttributeError.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43755
|
||||||
|
.. date: 2021-04-06-14-55-45
|
||||||
|
.. nonce: 1m0fGq
|
||||||
|
.. section: Documentation
|
||||||
|
|
||||||
|
Update documentation to reflect that unparenthesized lambda expressions can
|
||||||
|
no longer be the expression part in an ``if`` clause in comprehensions and
|
||||||
|
generator expressions since Python 3.9.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43739
|
||||||
|
.. date: 2021-04-06-07-05-49
|
||||||
|
.. nonce: L4HjiX
|
||||||
|
.. section: Documentation
|
||||||
|
|
||||||
|
Fixing the example code in Doc/extending/extending.rst to declare and
|
||||||
|
initialize the pmodule variable to be of the right type.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43961
|
||||||
|
.. date: 2021-04-28-13-21-52
|
||||||
|
.. nonce: gNchls
|
||||||
|
.. section: Tests
|
||||||
|
|
||||||
|
Fix test_logging.test_namer_rotator_inheritance() on Windows: use
|
||||||
|
:func:`os.replace` rather than :func:`os.rename`. Patch by Victor Stinner.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43842
|
||||||
|
.. date: 2021-04-16-14-07-40
|
||||||
|
.. nonce: w60GAH
|
||||||
|
.. section: Tests
|
||||||
|
|
||||||
|
Fix a race condition in the SMTP test of test_logging. Don't close a file
|
||||||
|
descriptor (socket) from a different thread while asyncore.loop() is polling
|
||||||
|
the file descriptor. Patch by Victor Stinner.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43811
|
||||||
|
.. date: 2021-04-12-11-14-28
|
||||||
|
.. nonce: vGNbnD
|
||||||
|
.. section: Tests
|
||||||
|
|
||||||
|
Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up
|
||||||
|
testing.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43791
|
||||||
|
.. date: 2021-04-09-15-10-38
|
||||||
|
.. nonce: 4KxiXK
|
||||||
|
.. section: Tests
|
||||||
|
|
||||||
|
OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests
|
||||||
|
are failing with TLSV1_ALERT_INTERNAL_ERROR.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 35306
|
||||||
|
.. date: 2021-04-22-20-39-49
|
||||||
|
.. nonce: F0Cg6X
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Avoid raising errors from :meth:`pathlib.Path.exists()` when passed an
|
||||||
|
invalid filename.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 38822
|
||||||
|
.. date: 2021-04-22-19-49-20
|
||||||
|
.. nonce: jgdPmq
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Fixed :func:`os.stat` failing on inaccessible directories with a trailing
|
||||||
|
slash, rather than falling back to the parent directory's metadata. This
|
||||||
|
implicitly affected :func:`os.path.exists` and :func:`os.path.isdir`.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 26227
|
||||||
|
.. date: 2021-04-21-23-37-34
|
||||||
|
.. nonce: QMY_eA
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Fixed decoding of host names in :func:`socket.gethostbyaddr` and
|
||||||
|
:func:`socket.gethostbyname_ex`.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 40432
|
||||||
|
.. date: 2021-04-20-23-07-22
|
||||||
|
.. nonce: 9OFpoq
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Updated pegen regeneration script on Windows to find and use Python 3.8 or
|
||||||
|
higher. Prior to this, pegen regeneration already required 3.8 or higher,
|
||||||
|
but the script may have used lower versions of Python.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43745
|
||||||
|
.. date: 2021-04-06-12-27-33
|
||||||
|
.. nonce: rdKNda
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Actually updates Windows release to OpenSSL 1.1.1k. Earlier releases were
|
||||||
|
mislabelled and actually included 1.1.1i again.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43492
|
||||||
|
.. date: 2021-03-15-11-34-33
|
||||||
|
.. nonce: AsYnVX
|
||||||
|
.. section: Windows
|
||||||
|
|
||||||
|
Upgrade Windows installer to use SQLite 3.35.5.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 42119
|
||||||
|
.. date: 2021-05-02-21-03-27
|
||||||
|
.. nonce: Y7BSX_
|
||||||
|
.. section: macOS
|
||||||
|
|
||||||
|
Fix check for macOS SDK paths when building Python. Narrow search to match
|
||||||
|
contents of SDKs, namely only files in ``/System/Library``,
|
||||||
|
``/System/IOSSupport``, and ``/usr`` other than ``/usr/local``. Previously,
|
||||||
|
anything under ``/System`` was assumed to be in an SDK which causes problems
|
||||||
|
with the new file system layout in 10.15+ where user file systems may appear
|
||||||
|
to be mounted under ``/System``. Paths in ``/Library`` were also
|
||||||
|
incorrectly treated as SDK locations.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 44009
|
||||||
|
.. date: 2021-05-02-03-45-30
|
||||||
|
.. nonce: uvhmlh
|
||||||
|
.. section: macOS
|
||||||
|
|
||||||
|
Provide "python3.x-intel64" executable to allow reliably forcing macOS
|
||||||
|
universal2 framework builds to run under Rosetta 2 Intel-64 emulation on
|
||||||
|
Apple Silicon Macs. This can be useful for testing or when universal2
|
||||||
|
wheels are not yet available.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43492
|
||||||
|
.. date: 2021-03-15-11-32-23
|
||||||
|
.. nonce: 1ZRcV9
|
||||||
|
.. section: macOS
|
||||||
|
|
||||||
|
Update macOS installer to use SQLite 3.35.4.
|
||||||
|
|
||||||
|
..
|
||||||
|
|
||||||
|
.. bpo: 43655
|
||||||
|
.. date: 2021-04-04-20-52-07
|
||||||
|
.. nonce: HSyaKH
|
||||||
|
.. section: IDLE
|
||||||
|
|
||||||
|
IDLE dialog windows are now recognized as dialogs by window managers on
|
||||||
|
macOS and X Window.
|
|
@ -1 +0,0 @@
|
||||||
Fix ``bytearray`` repetition incorrectly copying data from the start of the buffer, even if the data is offset within the buffer (e.g. after reassigning a slice at the start of the ``bytearray`` to a shorter byte string).
|
|
|
@ -1,2 +0,0 @@
|
||||||
Importlib now resolves relative paths when creating module spec objects from
|
|
||||||
file locations.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixing the example code in Doc/extending/extending.rst to declare and initialize the pmodule variable to be of the right type.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Update documentation to reflect that unparenthesized lambda expressions can
|
|
||||||
no longer be the expression part in an ``if`` clause in comprehensions and
|
|
||||||
generator expressions since Python 3.9.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Update dataclasses documentation to express that FrozenInstanceError is
|
|
||||||
derived from AttributeError.
|
|
|
@ -1 +0,0 @@
|
||||||
The documentation on the PyContextVar C-API was clarified.
|
|
|
@ -1,2 +0,0 @@
|
||||||
IDLE dialog windows are now recognized as dialogs by window managers on
|
|
||||||
macOS and X Window.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fix a regression in the handling of ctypes' :data:`ctypes.c_wchar_p` type:
|
|
||||||
embedded null characters would cause a :exc:`ValueError` to be raised. Patch
|
|
||||||
by Zackery Spytz.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace()`. Patch
|
|
||||||
by Claudiu Popa.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed processing of a dataclass that inherits from a frozen dataclass with no fields. It is now correctly detected as an error.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Allow :class:`bytes` ``separator`` argument in ``urllib.parse.parse_qs`` and
|
|
||||||
``urllib.parse.parse_qsl`` when parsing :class:`str` query strings. Previously,
|
|
||||||
this raised a ``TypeError``.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix problem with :attr:`~ssl.SSLContext.hostname_checks_common_name`. OpenSSL does not copy hostflags from *struct SSL_CTX* to *struct SSL*.
|
|
|
@ -1,2 +0,0 @@
|
||||||
:func:`turtle.textinput` and :func:`turtle.numinput` create now a transient
|
|
||||||
window working on behalf of the canvas window.
|
|
|
@ -1,2 +0,0 @@
|
||||||
:mod:`tkinter` dialog windows are now recognized as dialogs by window
|
|
||||||
managers on macOS and X Window.
|
|
|
@ -1,4 +0,0 @@
|
||||||
The header files for :mod:`ssl` error codes are now OpenSSL
|
|
||||||
version-specific. Exceptions will now show correct reason and library
|
|
||||||
codes. The ``make_ssl_data.py`` script has been rewritten to use OpenSSL's
|
|
||||||
text file with error codes.
|
|
|
@ -1,2 +0,0 @@
|
||||||
OpenSSL 3.0.0: Don't call the password callback function a second time when
|
|
||||||
first call has signaled an error condition.
|
|
|
@ -1 +0,0 @@
|
||||||
Add :data:`ssl.OP_IGNORE_UNEXPECTED_EOF` constants (OpenSSL 3.0.0)
|
|
|
@ -1,2 +0,0 @@
|
||||||
OpenSSL 3.0.0: define ``OPENSSL_API_COMPAT`` 1.1.1 to suppress deprecation
|
|
||||||
warnings. Python requires OpenSSL 1.1.1 APIs.
|
|
|
@ -1 +0,0 @@
|
||||||
[Enum] ensure exceptions raised in ``_missing__`` are released
|
|
|
@ -1,6 +0,0 @@
|
||||||
platform.win32_ver derives the windows version from
|
|
||||||
sys.getwindowsversion().platform_version which in turn derives the version
|
|
||||||
from kernel32.dll (which can be of a different version than Windows itself).
|
|
||||||
Therefore change the platform.win32_ver to determine the version using the
|
|
||||||
platform module's _syscmd_ver private function to return an accurate
|
|
||||||
version.
|
|
|
@ -1,2 +0,0 @@
|
||||||
:mod:`urllib` can now convert Windows paths with ``\\?\`` prefixes into URL
|
|
||||||
paths.
|
|
|
@ -1,2 +0,0 @@
|
||||||
OpenSSL 3.0.0: :meth:`~ssl.SSLContext.load_verify_locations` now returns a
|
|
||||||
consistent error message when cadata contains no valid certificate.
|
|
|
@ -1 +0,0 @@
|
||||||
Update bundled pip to 21.1 and setuptools to 56.0.0
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed the :mod:`turtle` module working with non-default root window.
|
|
|
@ -1 +0,0 @@
|
||||||
Update bundled pip to 21.1.1.
|
|
|
@ -1 +0,0 @@
|
||||||
Audit hooks are now fired for frame.f_code, traceback.tb_frame, and generator code/frame attribute access.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix Regular Expression Denial of Service (ReDoS) vulnerability in :class:`urllib.request.AbstractBasicAuthHandler`. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server.
|
|
|
@ -1,6 +0,0 @@
|
||||||
:mod:`ipaddress` module no longer accepts any leading zeros in IPv4 address
|
|
||||||
strings. Leading zeros are ambiguous and interpreted as octal notation by
|
|
||||||
some libraries. For example the legacy function :func:`socket.inet_aton`
|
|
||||||
treats leading zeros as octal notatation. glibc implementation of modern
|
|
||||||
:func:`~socket.inet_pton` does not accept any leading zeros. For a while
|
|
||||||
the :mod:`ipaddress` module used to accept ambiguous leading zeros.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Ensures interpreter-level audit hooks receive the
|
|
||||||
``cpython.PyInterpreterState_New`` event when called through the
|
|
||||||
``_xxsubinterpreters`` module.
|
|
|
@ -1,6 +0,0 @@
|
||||||
The presence of newline or tab characters in parts of a URL could allow
|
|
||||||
some forms of attacks.
|
|
||||||
|
|
||||||
Following the controlling specification for URLs defined by WHATWG
|
|
||||||
:func:`urllib.parse` now removes ASCII newlines and tabs from URLs,
|
|
||||||
preventing such attacks.
|
|
|
@ -1,4 +0,0 @@
|
||||||
Creating a :class:`sqlite3.Connection` object now also produces
|
|
||||||
a ``sqlite3.connect`` :ref:`auditing event <auditing>`.
|
|
||||||
Previously this event was only produced by :func:`sqlite3.connect`
|
|
||||||
calls. Patch by Erlend E. Aasland.
|
|
|
@ -1,2 +0,0 @@
|
||||||
OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. Tests
|
|
||||||
are failing with TLSV1_ALERT_INTERNAL_ERROR.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up
|
|
||||||
testing.
|
|
|
@ -1,4 +0,0 @@
|
||||||
Fix a race condition in the SMTP test of test_logging. Don't close a file
|
|
||||||
descriptor (socket) from a different thread while asyncore.loop() is polling
|
|
||||||
the file descriptor.
|
|
||||||
Patch by Victor Stinner.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix test_logging.test_namer_rotator_inheritance() on Windows: use
|
|
||||||
:func:`os.replace` rather than :func:`os.rename`. Patch by Victor Stinner.
|
|
|
@ -1 +0,0 @@
|
||||||
Upgrade Windows installer to use SQLite 3.35.5.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Actually updates Windows release to OpenSSL 1.1.1k. Earlier releases were
|
|
||||||
mislabelled and actually included 1.1.1i again.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Updated pegen regeneration script on Windows to find and use Python 3.8 or
|
|
||||||
higher. Prior to this, pegen regeneration already required 3.8 or higher,
|
|
||||||
but the script may have used lower versions of Python.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fixed decoding of host names in :func:`socket.gethostbyaddr` and
|
|
||||||
:func:`socket.gethostbyname_ex`.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fixed :func:`os.stat` failing on inaccessible directories with a trailing
|
|
||||||
slash, rather than falling back to the parent directory's metadata. This
|
|
||||||
implicitly affected :func:`os.path.exists` and :func:`os.path.isdir`.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Avoid raising errors from :meth:`pathlib.Path.exists()` when passed an
|
|
||||||
invalid filename.
|
|
|
@ -1 +0,0 @@
|
||||||
Update macOS installer to use SQLite 3.35.4.
|
|
|
@ -1,4 +0,0 @@
|
||||||
Provide "python3.x-intel64" executable to allow reliably forcing macOS
|
|
||||||
universal2 framework builds to run under Rosetta 2 Intel-64 emulation on
|
|
||||||
Apple Silicon Macs. This can be useful for testing or when universal2
|
|
||||||
wheels are not yet available.
|
|
|
@ -1,7 +0,0 @@
|
||||||
Fix check for macOS SDK paths when building Python. Narrow search to match
|
|
||||||
contents of SDKs, namely only files in ``/System/Library``,
|
|
||||||
``/System/IOSSupport``, and ``/usr`` other than ``/usr/local``. Previously,
|
|
||||||
anything under ``/System`` was assumed to be in an SDK which causes problems
|
|
||||||
with the new file system layout in 10.15+ where user file systems may appear
|
|
||||||
to be mounted under ``/System``. Paths in ``/Library`` were also
|
|
||||||
incorrectly treated as SDK locations.
|
|
|
@ -1,4 +1,4 @@
|
||||||
This is Python version 3.9.4
|
This is Python version 3.9.5
|
||||||
============================
|
============================
|
||||||
|
|
||||||
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.9
|
.. image:: https://travis-ci.org/python/cpython.svg?branch=3.9
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue