Python 3.9.5

This commit is contained in:
Łukasz Langa 2021-05-03 16:54:42 +02:00
parent bb2f3ff7a8
commit 0a7dcbdb13
No known key found for this signature in database
GPG key ID: B26995E310250568
49 changed files with 599 additions and 208 deletions

View file

@ -18,12 +18,12 @@
/*--start constants--*/
#define PY_MAJOR_VERSION 3
#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_SERIAL 0
/* Version as a string */
#define PY_VERSION "3.9.4+"
#define PY_VERSION "3.9.5"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View file

@ -1,5 +1,5 @@
# -*- 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'
'**********************\n'
'\n'
@ -986,9 +986,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
'on the which descriptor methods are defined. A '
'descriptor can define\n'
'any combination of "__get__()", "__set__()" and '
'on which descriptor methods are defined. A descriptor '
'can define any\n'
'combination of "__get__()", "__set__()" and '
'"__delete__()". If it\n'
'does not define "__get__()", then accessing the '
'attribute will return\n'
@ -1358,6 +1358,10 @@ topics = {'assert': 'The "assert" statement\n'
'through their "__code__" attribute. See also the '
'"code" module.\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 '
'it (instead of a\n'
'source string) to the "exec()" or "eval()" built-in '
@ -2655,7 +2659,6 @@ topics = {'assert': 'The "assert" statement\n'
' decorators ::= decorator+\n'
' decorator ::= "@" assignment_expression '
'NEWLINE\n'
' dotted_name ::= identifier ("." identifier)*\n'
' parameter_list ::= defparameter ("," '
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
' | parameter_list_no_posonly\n'
@ -2755,7 +2758,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
'the parameter list, either from position arguments, from '
'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"'
'is\n'
@ -2767,8 +2770,14 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'"*identifier"” are keyword-only parameters and may only be '
'passed\n'
'used keyword arguments.\n'
'passed by\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'
'Parameters may have an *annotation* of the form “": '
'expression"\n'
@ -5217,7 +5226,7 @@ topics = {'assert': 'The "assert" statement\n'
'character that can be any character and defaults to a space '
'if\n'
'omitted. It is not possible to use a literal curly brace '
'("{"” or\n'
'("{"” or\n'
'"}"”) as the *fill* character in a formatted string '
'literal or when\n'
'using the "str.format()" method. However, it is possible '
@ -5795,7 +5804,6 @@ topics = {'assert': 'The "assert" statement\n'
' decorators ::= decorator+\n'
' decorator ::= "@" assignment_expression '
'NEWLINE\n'
' dotted_name ::= identifier ("." identifier)*\n'
' parameter_list ::= defparameter ("," '
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
' | parameter_list_no_posonly\n'
@ -5895,7 +5903,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
'the parameter list, either from position arguments, from '
'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"'
'is\n'
@ -5907,8 +5915,14 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'"*identifier"” are keyword-only parameters and may only be '
'passed\n'
'used keyword arguments.\n'
'passed by\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'
'Parameters may have an *annotation* of the form “": '
'expression"\n'
@ -6613,10 +6627,7 @@ topics = {'assert': 'The "assert" statement\n'
'lambda': 'Lambdas\n'
'*******\n'
'\n'
' lambda_expr ::= "lambda" [parameter_list] ":" '
'expression\n'
' lambda_expr_nocond ::= "lambda" [parameter_list] ":" '
'expression_nocond\n'
' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
'\n'
'Lambda expressions (sometimes called lambda forms) are used to '
'create\n'
@ -6896,7 +6907,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Note that numeric literals do not include a sign; a phrase like '
'"-1"\n'
'is actually an expression composed of the unary operator "-" '
'is actually an expression composed of the unary operator "-" '
'and the\n'
'literal "1".\n',
'numeric-types': 'Emulating numeric types\n'
@ -7237,8 +7248,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following table summarizes the operator precedence '
'in Python, from\n'
'lowest precedence (least binding) to highest precedence '
'(most\n'
'highest precedence (most binding) to lowest precedence '
'(least\n'
'binding). Operators in the same box have the same '
'precedence. Unless\n'
'the syntax is explicitly given, operators are binary. '
@ -7257,65 +7268,6 @@ topics = {'assert': 'The "assert" statement\n'
'| Operator | '
'Description |\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: | '
'Binding or parenthesized expression, |\n'
'| value...}", "{expressions...}" | list '
@ -7323,6 +7275,65 @@ topics = {'assert': 'The "assert" statement\n'
'| | '
'display |\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'
'-[ Footnotes ]-\n'
'\n'
@ -7402,14 +7413,14 @@ topics = {'assert': 'The "assert" statement\n'
'Check their\n'
' documentation for more info.\n'
'\n'
'[5] The "%" operator is also used for string formatting; '
'the same\n'
' precedence applies.\n'
'\n'
'[6] The power operator "**" binds less tightly than an '
'[5] The power operator "**" binds less tightly than an '
'arithmetic or\n'
' 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'
'********************\n'
'\n'
@ -7494,12 +7505,18 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "from" clause is used for exception chaining: if given, the '
'second\n'
'*expression* must be another exception class or instance, which '
'will\n'
'then be attached to the raised exception as the "__cause__" '
'attribute\n'
'(which is writable). If the raised exception is not handled, both\n'
'exceptions will be printed:\n'
'*expression* must be another exception class or instance. If the\n'
'second expression is an exception instance, it will be attached to '
'the\n'
'raised exception as the "__cause__" attribute (which is writable). '
'If\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'
' >>> try:\n'
' ... print(1 / 0)\n'
@ -8841,10 +8858,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
'on the which descriptor methods are defined. A descriptor '
'can define\n'
'any combination of "__get__()", "__set__()" and '
'"__delete__()". If it\n'
'on which descriptor methods are defined. A descriptor can '
'define any\n'
'combination of "__get__()", "__set__()" and "__delete__()". '
'If it\n'
'does not define "__get__()", then accessing the attribute '
'will return\n'
'the descriptor object itself unless there is a value in the '
@ -10071,7 +10088,7 @@ topics = {'assert': 'The "assert" statement\n'
'*start* and\n'
' *end* are interpreted as in slice notation.\n'
'\n'
'str.encode(encoding="utf-8", errors="strict")\n'
"str.encode(encoding='utf-8', errors='strict')\n"
'\n'
' Return an encoded version of the string as a bytes '
'object. Default\n'
@ -11590,7 +11607,7 @@ topics = {'assert': 'The "assert" statement\n'
' points. All the code points in the range "U+0000 - '
'U+10FFFF"\n'
' can be represented in a string. Python doesnt have a '
'"char"\n'
'*char*\n'
' type; instead, every code point in the string is '
'represented\n'
' 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'
' bytecode string of the code object).\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'
' function called for various events during code execution '
'(this\n'
@ -12403,6 +12424,9 @@ topics = {'assert': 'The "assert" statement\n'
' the exception occurred in a "try" statement with no matching\n'
' except clause or with a finally clause.\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 '
'the\n'
' stack trace (towards the frame where the exception occurred), '

473
Misc/NEWS.d/3.9.5.rst Normal file
View 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.

View file

@ -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).

View file

@ -1,2 +0,0 @@
Importlib now resolves relative paths when creating module spec objects from
file locations.

View file

@ -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.

View file

@ -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.

View file

@ -1,2 +0,0 @@
Update dataclasses documentation to express that FrozenInstanceError is
derived from AttributeError.

View file

@ -1 +0,0 @@
The documentation on the PyContextVar C-API was clarified.

View file

@ -1,2 +0,0 @@
IDLE dialog windows are now recognized as dialogs by window managers on
macOS and X Window.

View file

@ -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.

View file

@ -1,2 +0,0 @@
Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace()`. Patch
by Claudiu Popa.

View file

@ -1 +0,0 @@
Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin.

View file

@ -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.

View file

@ -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``.

View file

@ -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*.

View file

@ -1,2 +0,0 @@
:func:`turtle.textinput` and :func:`turtle.numinput` create now a transient
window working on behalf of the canvas window.

View file

@ -1,2 +0,0 @@
:mod:`tkinter` dialog windows are now recognized as dialogs by window
managers on macOS and X Window.

View file

@ -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.

View file

@ -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.

View file

@ -1 +0,0 @@
Add :data:`ssl.OP_IGNORE_UNEXPECTED_EOF` constants (OpenSSL 3.0.0)

View file

@ -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.

View file

@ -1 +0,0 @@
[Enum] ensure exceptions raised in ``_missing__`` are released

View file

@ -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.

View file

@ -1,2 +0,0 @@
:mod:`urllib` can now convert Windows paths with ``\\?\`` prefixes into URL
paths.

View file

@ -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.

View file

@ -1 +0,0 @@
Update bundled pip to 21.1 and setuptools to 56.0.0

View file

@ -1 +0,0 @@
Fixed the :mod:`turtle` module working with non-default root window.

View file

@ -1 +0,0 @@
Update bundled pip to 21.1.1.

View file

@ -1 +0,0 @@
Audit hooks are now fired for frame.f_code, traceback.tb_frame, and generator code/frame attribute access.

View file

@ -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.

View file

@ -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.

View file

@ -1,3 +0,0 @@
Ensures interpreter-level audit hooks receive the
``cpython.PyInterpreterState_New`` event when called through the
``_xxsubinterpreters`` module.

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -1,2 +0,0 @@
Tests multiple OpenSSL versions on GitHub Actions. Use ccache to speed up
testing.

View file

@ -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.

View file

@ -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.

View file

@ -1 +0,0 @@
Upgrade Windows installer to use SQLite 3.35.5.

View file

@ -1,2 +0,0 @@
Actually updates Windows release to OpenSSL 1.1.1k. Earlier releases were
mislabelled and actually included 1.1.1i again.

View file

@ -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.

View file

@ -1,2 +0,0 @@
Fixed decoding of host names in :func:`socket.gethostbyaddr` and
:func:`socket.gethostbyname_ex`.

View file

@ -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`.

View file

@ -1,2 +0,0 @@
Avoid raising errors from :meth:`pathlib.Path.exists()` when passed an
invalid filename.

View file

@ -1 +0,0 @@
Update macOS installer to use SQLite 3.35.4.

View file

@ -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.

View file

@ -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.

View file

@ -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