]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
2 years ago gh-97696 Remove unnecessary check for eager_start kwarg (#104188)
Jacob Bower [Tue, 9 May 2023 00:51:58 +0000 (17:51 -0700)] 
 gh-97696 Remove unnecessary check for eager_start kwarg (#104188)

Instead, add docstring to create_eager_task_factory.

2 years agoGH-104308: socket.getnameinfo should release the GIL (#104307)
Nathaniel J. Smith [Mon, 8 May 2023 23:27:20 +0000 (16:27 -0700)] 
GH-104308: socket.getnameinfo should release the GIL (#104307)

* socket.getnameinfo should release the GIL

* ðŸ“œðŸ¤– Added by blurb_it.

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2 years agogh-104310: Add importlib.util.allowing_all_extensions() (gh-104311)
Eric Snow [Mon, 8 May 2023 22:56:01 +0000 (16:56 -0600)] 
gh-104310: Add importlib.util.allowing_all_extensions() (gh-104311)

(I'll be adding docs for this separately.)

2 years agogh-99113: A Per-Interpreter GIL! (gh-104210)
Eric Snow [Mon, 8 May 2023 19:15:09 +0000 (13:15 -0600)] 
gh-99113: A Per-Interpreter GIL! (gh-104210)

This is the culmination of PEP 684 (and of my 8-year long multi-core Python project)!

Each subinterpreter may now be created with its own GIL (via Py_NewInterpreterFromConfig()).  If not so configured then the interpreter will share with the main interpreter--the status quo since subinterpreters were added decades ago.  The main interpreter always has its own GIL and subinterpreters from Py_NewInterpreter() will always share with the main interpreter.

2 years agoGH-104284: Fix documentation gettext build (#104296)
Adam Turner [Mon, 8 May 2023 19:01:25 +0000 (20:01 +0100)] 
GH-104284: Fix documentation gettext build (#104296)

2 years agogh-89550: Buffer GzipFile.write to reduce execution time by ~15% (#101251)
Arjun [Mon, 8 May 2023 17:55:59 +0000 (10:55 -0700)] 
gh-89550: Buffer GzipFile.write to reduce execution time by ~15% (#101251)

Use `io.BufferedWriter` to buffer gzip writes.

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 years agogh-104223: Fix issues with inheriting from buffer classes (#104227)
Jelle Zijlstra [Mon, 8 May 2023 16:52:41 +0000 (09:52 -0700)] 
gh-104223: Fix issues with inheriting from buffer classes (#104227)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2 years agogh-99108: fix typo in Modules/Setup (#104293)
Jonathan Protzenko [Mon, 8 May 2023 16:52:11 +0000 (09:52 -0700)] 
gh-99108: fix typo in Modules/Setup (#104293)

case sensitive filename

2 years agoGH-104145: Use fully-qualified cross reference types for the bisect module (#104172)
Adam Turner [Mon, 8 May 2023 16:32:18 +0000 (17:32 +0100)] 
GH-104145: Use fully-qualified cross reference types for the bisect module (#104172)

2 years agogh-103193: Improve `getattr_static` test coverage (#104286)
Alex Waygood [Mon, 8 May 2023 14:18:36 +0000 (15:18 +0100)] 
gh-103193: Improve `getattr_static` test coverage (#104286)

2 years agoTrim trailing whitespace and test on CI (#104275)
Hugo van Kemenade [Mon, 8 May 2023 14:03:52 +0000 (17:03 +0300)] 
Trim trailing whitespace and test on CI (#104275)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2 years agogh-102500: Remove mention of bytes shorthand (#104281)
Shantanu [Mon, 8 May 2023 13:40:51 +0000 (06:40 -0700)] 
gh-102500: Remove mention of bytes shorthand (#104281)

The bytes shorthand was removed in PEP 688:
https://peps.python.org/pep-0688/#no-special-meaning-for-bytes

I also remove the reference to `collections.abc.ByteString`, since that
object is deprecated (#91896) and has different semantics (#102092)

2 years agogh-97696: Improve and fix documentation for asyncio eager tasks (#104256)
Itamar Ostricher [Mon, 8 May 2023 11:59:34 +0000 (04:59 -0700)] 
gh-97696: Improve and fix documentation for asyncio eager tasks (#104256)

2 years agogh-99108: Replace SHA3 implementation HACL* version (#103597)
Jonathan Protzenko [Mon, 8 May 2023 03:50:04 +0000 (20:50 -0700)] 
gh-99108: Replace SHA3 implementation HACL* version (#103597)

Replaces our built-in SHA3 implementation with a verified one from the HACL* project.

This implementation is used when OpenSSL does not provide SHA3 or is not present.

3.11 shiped with a very slow tiny sha3 implementation to get off of the <=3.10 reference implementation that wound up having serious bugs. This brings us back to a reasonably performing built-in implementation consistent with what we've just replaced our other guaranteed available standard hash algorithms with: code from the HACL* project.

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 years agogh-104273: Remove redundant len() calls in argparse function (#104274)
Burak Saler [Sun, 7 May 2023 23:43:50 +0000 (02:43 +0300)] 
gh-104273: Remove redundant len() calls in argparse function (#104274)

2 years agogh-64660: Don't hardcode Argument Clinic return converter result variable name (...
Erlend E. Aasland [Sun, 7 May 2023 21:55:37 +0000 (23:55 +0200)] 
gh-64660: Don't hardcode Argument Clinic return converter result variable name (#104200)

2 years agogh-104265 Disallow instantiation of `_csv.Reader` and `_csv.Writer` (#104266)
chgnrdv [Sun, 7 May 2023 21:15:44 +0000 (00:15 +0300)] 
gh-104265 Disallow instantiation of `_csv.Reader` and `_csv.Writer` (#104266)

2 years agoGH-102613: Improve performance of `pathlib.Path.rglob()` (GH-104244)
Barney Gale [Sun, 7 May 2023 21:12:50 +0000 (22:12 +0100)] 
GH-102613: Improve performance of `pathlib.Path.rglob()` (GH-104244)

Stop de-duplicating results in `_RecursiveWildcardSelector`. A new
`_DoubleRecursiveWildcardSelector` class is introduced which performs
de-duplication, but this is used _only_ for patterns with multiple
non-adjacent `**` segments, such as `path.glob('**/foo/**')`. By avoiding
the use of a set, `PurePath.__hash__()` is not called, and so paths do not
need to be stringified and case-normalised.

Also merge adjacent '**' segments in patterns.

2 years agogh-103650: Fix perf maps address format (#103651)
Arthur Pastel [Sun, 7 May 2023 19:42:26 +0000 (21:42 +0200)] 
gh-103650: Fix perf maps address format (#103651)

2 years agoGH-89812: Churn `pathlib.Path` methods (GH-104243)
Barney Gale [Sun, 7 May 2023 19:07:07 +0000 (20:07 +0100)] 
GH-89812: Churn `pathlib.Path` methods (GH-104243)

Re-arrange `pathlib.Path` methods in source code. No other changes.

The methods are arranged as follows:

1. `stat()` and dependants (`exists()`, `is_dir()`, etc)
2. `open()` and dependants (`read_text()`, `write_bytes()`, etc)
3. `iterdir()` and dependants (`glob()`, `walk()`, etc)
4. All other `Path` methods

This patch prepares the ground for a new `_AbstractPath` class, which will
support the methods in groups 1, 2 and 3 above. By churning the methods
here, subsequent patches will be easier to review and less likely to break
things.

2 years agogh-104240: make _PyCompile_CodeGen support different compilation modes (#104241)
Irit Katriel [Sun, 7 May 2023 17:47:28 +0000 (18:47 +0100)] 
gh-104240: make _PyCompile_CodeGen support different compilation modes (#104241)

2 years agogh-103193: cache calls to `inspect._shadowed_dict` in `inspect.getattr_static` (...
Alex Waygood [Sun, 7 May 2023 17:45:09 +0000 (18:45 +0100)] 
gh-103193: cache calls to `inspect._shadowed_dict` in `inspect.getattr_static` (#104267)

Co-authored-by: Carl Meyer <carl@oddbird.net>
2 years agoGH-100479: Fix pathlib test failure on WASI (#104215)
Barney Gale [Sun, 7 May 2023 16:54:40 +0000 (17:54 +0100)] 
GH-100479: Fix pathlib test failure on WASI (#104215)

2 years agogh-101819: Port _io.PyBytesIOBuffer_Type to heap type (#104264)
Erlend E. Aasland [Sun, 7 May 2023 14:01:27 +0000 (16:01 +0200)] 
gh-101819: Port _io.PyBytesIOBuffer_Type to heap type (#104264)

2 years agogh-100370: fix OverflowError in sqlite3.Connection.blobopen for 32-bit builds (#103902)
Erlend E. Aasland [Sun, 7 May 2023 10:55:31 +0000 (12:55 +0200)] 
gh-100370: fix OverflowError in sqlite3.Connection.blobopen for 32-bit builds (#103902)

2 years agogh-101819: Adapt _io.PyWindowsConsoleIO_Type to heap type (#104197)
Erlend E. Aasland [Sun, 7 May 2023 09:23:11 +0000 (11:23 +0200)] 
gh-101819: Adapt _io.PyWindowsConsoleIO_Type to heap type (#104197)

2 years agogh-101819: Port _io.PyIncrementalNewlineDecoder_Type to heap type (#104249)
Erlend E. Aasland [Sun, 7 May 2023 09:20:34 +0000 (11:20 +0200)] 
gh-101819: Port _io.PyIncrementalNewlineDecoder_Type to heap type (#104249)

2 years agoRe-enable commented-out test in test_generators.py (#104130)
ymki4360 [Sun, 7 May 2023 04:44:46 +0000 (13:44 +0900)] 
Re-enable commented-out test in test_generators.py (#104130)

2 years agogh-104018: remove unused format "z" handling in string formatfloat() (#104107)
John Belmonte [Sun, 7 May 2023 04:41:42 +0000 (13:41 +0900)] 
gh-104018: remove unused format "z" handling in string formatfloat() (#104107)

This is a cleanup overlooked in PR #104033.

2 years agogh-97696: Use `PyObject_CallMethodNoArgs` and inline is_loop_running check in `_async...
Itamar Ostricher [Sun, 7 May 2023 04:25:45 +0000 (21:25 -0700)] 
gh-97696: Use `PyObject_CallMethodNoArgs` and inline is_loop_running check in `_asyncio` (#104255)

2 years agogh-103886: Improve `builtins.__doc__` (#104179)
Tomas R [Sun, 7 May 2023 02:05:34 +0000 (04:05 +0200)] 
gh-103886: Improve `builtins.__doc__` (#104179)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 years agogh-104254: Document the optional keyword-only "context" argument to Task constructor...
Itamar Ostricher [Sun, 7 May 2023 01:31:53 +0000 (18:31 -0700)] 
gh-104254: Document the optional keyword-only "context" argument to Task constructor (#104251)

(This was added in 3.11. It was already documented for `create_task()`, but not for `Task()`.)

2 years agogh-101640: Make argparse _print_message catch any write error (#101802)
Oleg Iarygin [Sat, 6 May 2023 22:53:48 +0000 (02:53 +0400)] 
gh-101640: Make argparse _print_message catch any write error (#101802)

* In particular, don't exit when trying to print to stderr = None.
* Add tests

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2 years agogh-99113: Make Sure the GIL is Acquired at the Right Places (gh-104208)
Eric Snow [Sat, 6 May 2023 21:59:30 +0000 (15:59 -0600)] 
gh-99113: Make Sure the GIL is Acquired at the Right Places (gh-104208)

This is a pre-requisite for a per-interpreter GIL.  Without it this change isn't strictly necessary.  However, there is no real downside otherwise.

2 years agogh-99113: Add a check for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED (gh-104206)
Eric Snow [Sat, 6 May 2023 21:57:35 +0000 (15:57 -0600)] 
gh-99113: Add a check for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED (gh-104206)

Py_MOD_PER_INTERPRETER_GIL_SUPPORTED is a new supported value for Py_mod_multiple_interpreters, added in gh-104205.

2 years agogh-101819: Remove unused 'locale_module' from _io state (#104246)
Erlend E. Aasland [Sat, 6 May 2023 20:26:06 +0000 (22:26 +0200)] 
gh-101819: Remove unused 'locale_module' from _io state (#104246)

The locale module reference was introduced by 932ff8368 in 2013,
and rendered unused by 710e82630 (gh-23050) in 2020.

2 years agoGH-103548: Improve performance of `pathlib.Path.[is_]absolute()` (GH-103549)
Barney Gale [Sat, 6 May 2023 18:03:07 +0000 (19:03 +0100)] 
GH-103548: Improve performance of `pathlib.Path.[is_]absolute()` (GH-103549)

Improve performance of `pathlib.Path.absolute()` and `cwd()` by joining paths only when necessary. Also improve
performance of `PurePath.is_absolute()` on Posix by skipping path parsing and normalization.

2 years agogh-90953: Emit deprecation warnings for `ast` features deprecated in Python 3.8 ...
Alex Waygood [Sat, 6 May 2023 16:48:07 +0000 (17:48 +0100)] 
gh-90953: Emit deprecation warnings for `ast` features deprecated in Python 3.8 (#104199)

`ast.Num`, `ast.Str`, `ast.Bytes`, `ast.Ellipsis` and `ast.NameConstant` now all emit deprecation warnings on import, access, instantation or `isinstance()` checks.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2 years agogh-104144: Optimize gather to finish eagerly when all futures complete eagerly (...
Itamar Ostricher [Sat, 6 May 2023 15:15:27 +0000 (08:15 -0700)] 
gh-104144: Optimize gather to finish eagerly when all futures complete eagerly (#104138)

2 years agoRewrite the turtledemo makeGraphFrame method (#104224)
Terry Jan Reedy [Sat, 6 May 2023 15:09:08 +0000 (11:09 -0400)] 
Rewrite the turtledemo makeGraphFrame method (#104224)

Replace `self._canvas` and `self.scanvas`, both bound to `canvas`,
with `self.canvas, which is accessed in other methods.
Replace `_s_` with `screen` and `_s_._canvas` with `canvas`.
Add a comment explaining the unorthodox use of
function turtle.Screen and singleton class turtle._Screen.

2 years agogh-65772: Clean-up turtle module (#104218)
Terry Jan Reedy [Sat, 6 May 2023 15:04:41 +0000 (11:04 -0400)] 
gh-65772: Clean-up turtle module (#104218)

* Remove the unused, private, and undocumented name `_ver` and
the commented-out `print` call.

* Don't add math functions to `__all__`.  Beginners should learn
to `import math` to access them.

* Gregor Lindel, who wrote this version of turtle, dropped plans
to implement turtle on another toolkit at least a decade ago.
Drop `_dot` code preparing for this, but add a hint comment.

* `_Screen` is meant to be a singleton class.  To enforce that,
it needs either a `__new__` that returns the singleton or
`else...raise` in `__iter__`.  Merely removing the `if` clauses
as suggested might break something if a user were to call `_Screen`
directly.  Leave the code alone until a problem is evident.

* Turtledemo injects into _Screen both _root and _canvas,
configured as it needs them to be.  Making _canvas an `__init__`
option would require skipping some but not all of the lines under
'if _Screen._canvas is None:`.  Leave working code alone.

2 years agogh-104233: Fix "unused variable" warning in `ceval_gil.c` (#104234)
Nikita Sobolev [Sat, 6 May 2023 14:58:32 +0000 (17:58 +0300)] 
gh-104233: Fix "unused variable" warning in `ceval_gil.c` (#104234)

2 years agoGH-97950: Use new-style index directive ('builtin') (#104164)
Adam Turner [Sat, 6 May 2023 03:54:08 +0000 (04:54 +0100)] 
GH-97950: Use new-style index directive ('builtin') (#104164)

* Uncomment builtin removal in pairindextypes

* Use new-style index directive ('builtin') - C API

* Use new-style index directive ('builtin') - Extending

* Use new-style index directive ('builtin') - Library

* Use new-style index directive ('builtin') - Reference

* Use new-style index directive ('builtin') - Tutorial

2 years agogh-102215: importlib documentation cleanups
Sam Morris [Sat, 6 May 2023 02:40:19 +0000 (03:40 +0100)] 
gh-102215: importlib documentation cleanups

2 years agogh-101819: Prepare to modernize the _io extension (#104178)
Victor Stinner [Fri, 5 May 2023 23:53:55 +0000 (01:53 +0200)] 
gh-101819: Prepare to modernize the _io extension (#104178)

* Add references to static types to _PyIO_State:

  * PyBufferedIOBase_Type
  * PyBytesIOBuffer_Type
  * PyIncrementalNewlineDecoder_Type
  * PyRawIOBase_Type
  * PyTextIOBase_Type

* Add the defining class to methods:

  * _io.BytesIO.getbuffer()
  * _io.FileIO.close()

* Add get_io_state_by_cls() function.
* Add state parameter to _textiowrapper_decode()
* _io_TextIOWrapper___init__() now sets self->state before calling
  _textiowrapper_set_decoder().

Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2 years agogh-97696: Remove redundant #include (#104216)
Jacob Bower [Fri, 5 May 2023 23:50:06 +0000 (16:50 -0700)] 
gh-97696: Remove redundant #include (#104216)

Remove "#include cpython/context.h"` from `_asynciomodule.c`.

It's already included in `Python.h`.

2 years agogh-104144: Skip scheduling a done callback if a TaskGroup task completes eagerly...
Itamar Ostricher [Fri, 5 May 2023 23:44:03 +0000 (16:44 -0700)] 
gh-104144: Skip scheduling a done callback if a TaskGroup task completes eagerly (#104140)

Co-authored-by: Carl Meyer <carl@oddbird.net>
2 years agogh-99113: Add PyInterpreterConfig.own_gil (gh-104204)
Eric Snow [Fri, 5 May 2023 21:59:20 +0000 (15:59 -0600)] 
gh-99113: Add PyInterpreterConfig.own_gil (gh-104204)

We also add PyInterpreterState.ceval.own_gil to record if the interpreter actually has its own GIL.

Note that for now we don't actually respect own_gil; all interpreters still share the one GIL.  However, PyInterpreterState.ceval.own_gil does reflect PyInterpreterConfig.own_gil.  That lie is a temporary one that we will fix when the GIL really becomes per-interpreter.

2 years agogh-104146: Remove unused var 'parser_body_declarations' from clinic.py (#104214)
Erlend E. Aasland [Fri, 5 May 2023 21:35:24 +0000 (23:35 +0200)] 
gh-104146: Remove unused var 'parser_body_declarations' from clinic.py (#104214)

2 years agogh-99113: Add Py_MOD_PER_INTERPRETER_GIL_SUPPORTED (gh-104205)
Eric Snow [Fri, 5 May 2023 21:11:27 +0000 (15:11 -0600)] 
gh-99113: Add Py_MOD_PER_INTERPRETER_GIL_SUPPORTED (gh-104205)

Here we are doing no more than adding the value for Py_mod_multiple_interpreters and using it for stdlib modules.  We will start checking for it in gh-104206 (once PyInterpreterState.ceval.own_gil is added in gh-104204).

2 years agogh-104108: Add the Py_mod_multiple_interpreters Module Def Slot (gh-104148)
Eric Snow [Fri, 5 May 2023 20:04:55 +0000 (14:04 -0600)] 
gh-104108: Add the Py_mod_multiple_interpreters Module Def Slot (gh-104148)

I'll be adding a value to indicate support for per-interpreter GIL in gh-99114.

2 years agogh-99113: Share the GIL via PyInterpreterState.ceval.gil (gh-104203)
Eric Snow [Fri, 5 May 2023 19:23:00 +0000 (13:23 -0600)] 
gh-99113: Share the GIL via PyInterpreterState.ceval.gil (gh-104203)

In preparation for a per-interpreter GIL, we add PyInterpreterState.ceval.gil, set it to the shared GIL for each interpreter, and use that rather than using _PyRuntime.ceval.gil directly.  Note that _PyRuntime.ceval.gil is still the actual GIL.

2 years agoGH-100479: Add `pathlib.PurePath.with_segments()` (GH-103975)
Barney Gale [Fri, 5 May 2023 19:04:53 +0000 (20:04 +0100)] 
GH-100479: Add `pathlib.PurePath.with_segments()` (GH-103975)

Add `pathlib.PurePath.with_segments()`, which creates a path object from arguments. This method is called whenever a derivative path is created, such as from `pathlib.PurePath.parent`. Subclasses may override this method to share information between path objects.

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2 years agogh-69152: Add _proxy_response_headers attribute to HTTPConnection (#26152)
Alexey Namyotkin [Fri, 5 May 2023 18:52:24 +0000 (21:52 +0300)] 
gh-69152: Add _proxy_response_headers attribute to HTTPConnection (#26152)

Add _proxy_response_headers attribute to HTTPConnection (#26152)

---------

Co-authored-by: Senthil Kumaran <senthil@python.org>
2 years agogh-103533: Use PEP 669 APIs for cprofile (GH-103534)
Tian Gao [Fri, 5 May 2023 17:38:47 +0000 (10:38 -0700)] 
gh-103533: Use PEP 669 APIs for cprofile (GH-103534)

2 years agoGH-96803: Add three C-API functions to make _PyInterpreterFrame less opaque for users...
Mark Shannon [Fri, 5 May 2023 16:53:07 +0000 (17:53 +0100)] 
GH-96803: Add three C-API functions to make _PyInterpreterFrame less opaque for users of PEP 523. (GH-96849)

2 years agogh-64595: Argument Clinic: Touch source file if any output file changed (#104152)
Erlend E. Aasland [Fri, 5 May 2023 12:38:38 +0000 (14:38 +0200)] 
gh-64595: Argument Clinic: Touch source file if any output file changed (#104152)

2 years agogh-64631: Test exception messages in cloned Argument Clinic funcs (#104167)
Erlend E. Aasland [Fri, 5 May 2023 12:08:24 +0000 (14:08 +0200)] 
gh-64631: Test exception messages in cloned Argument Clinic funcs (#104167)

2 years agogh-68395: Avoid naming conflicts by mangling variable names in Argument Clinic (...
Erlend E. Aasland [Fri, 5 May 2023 11:40:18 +0000 (13:40 +0200)] 
gh-68395: Avoid naming conflicts by mangling variable names in Argument Clinic (#104065)

Add all internally used variable names to CLINIC_PREFIXED_ARGS.

2 years agogh-64658: Expand Argument Clinic return converter docs (#104175)
Erlend E. Aasland [Fri, 5 May 2023 11:32:00 +0000 (13:32 +0200)] 
gh-64658: Expand Argument Clinic return converter docs (#104175)

2 years agoGH-103092: port `_asyncio` freelist to module state (#104196)
Kumar Aditya [Fri, 5 May 2023 11:12:58 +0000 (16:42 +0530)] 
GH-103092: port `_asyncio` freelist to module state (#104196)

2 years agogh-104051: fix crash in test_xxtestfuzz with -We (#104052)
Irit Katriel [Fri, 5 May 2023 10:34:13 +0000 (11:34 +0100)] 
gh-104051: fix crash in test_xxtestfuzz with -We (#104052)

2 years agogh-104190: fix ubsan crash (#104191)
sunmy2019 [Fri, 5 May 2023 09:54:03 +0000 (17:54 +0800)] 
gh-104190: fix ubsan crash (#104191)

2 years agogh-104106: Add gcc fallback of mkfifoat/mknodat for macOS (gh-104129)
Dong-hee Na [Fri, 5 May 2023 03:27:25 +0000 (12:27 +0900)] 
gh-104106: Add gcc fallback of mkfifoat/mknodat for macOS (gh-104129)

2 years agoGH-104142: Fix _Py_RefcntAdd to respect immortality (GH-104143)
Brandt Bucher [Fri, 5 May 2023 00:00:07 +0000 (17:00 -0700)] 
GH-104142: Fix _Py_RefcntAdd to respect immortality (GH-104143)

2 years agogh-104112: link from cached_property docs to method-caching FAQ (#104113)
Carl Meyer [Thu, 4 May 2023 22:38:53 +0000 (16:38 -0600)] 
gh-104112: link from cached_property docs to method-caching FAQ (#104113)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2 years agogh-68968: Correcting message display issue with assertEqual (#103937)
Michael Blahay [Thu, 4 May 2023 22:37:17 +0000 (18:37 -0400)] 
gh-68968: Correcting message display issue with assertEqual (#103937)

2 years agoGH-103899: Provide a hint when accidentally calling a module (GH-103900)
Brandt Bucher [Thu, 4 May 2023 22:07:42 +0000 (15:07 -0700)] 
GH-103899: Provide a hint when accidentally calling a module (GH-103900)

2 years agogh-103963: fix 'make regen-opcode' in out-of-tree builds (#104177)
Carl Meyer [Thu, 4 May 2023 17:45:56 +0000 (11:45 -0600)] 
gh-103963: fix 'make regen-opcode' in out-of-tree builds (#104177)

2 years agogh-102500: Add PEP 688 and 698 to the 3.12 release highlights (#104174)
Hugo van Kemenade [Thu, 4 May 2023 16:55:48 +0000 (19:55 +0300)] 
gh-102500: Add PEP 688 and 698 to the 3.12 release highlights (#104174)

2 years agoGH-81079: Add case_sensitive argument to `pathlib.Path.glob()` (GH-102710)
Barney Gale [Thu, 4 May 2023 16:44:36 +0000 (17:44 +0100)] 
GH-81079: Add case_sensitive argument to `pathlib.Path.glob()` (GH-102710)

This argument allows case-sensitive matching to be enabled on Windows, and
case-insensitive matching to be enabled on Posix.

Co-authored-by: Steve Dower <steve.dower@microsoft.com>
2 years agogh-91896: Deprecate collections.abc.ByteString (#102096)
Shantanu [Thu, 4 May 2023 16:39:33 +0000 (09:39 -0700)] 
gh-91896: Deprecate collections.abc.ByteString (#102096)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2 years agogh-99593: Add tests for Unicode C API (part 2) (#99868)
Serhiy Storchaka [Thu, 4 May 2023 15:25:09 +0000 (18:25 +0300)] 
gh-99593: Add tests for Unicode C API (part 2) (#99868)

Add tests for lower-level functions.

Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
2 years agogh-102500: Document PEP 688 (#102571)
Jelle Zijlstra [Thu, 4 May 2023 15:23:40 +0000 (08:23 -0700)] 
gh-102500: Document PEP 688 (#102571)

Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2 years agogh-102500: Implement PEP 688 (#102521)
Jelle Zijlstra [Thu, 4 May 2023 14:59:46 +0000 (07:59 -0700)] 
gh-102500: Implement PEP 688 (#102521)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
2 years agogh-96534: socketmodule: support FreeBSD divert(4) socket (#96536)
Gleb Smirnoff [Thu, 4 May 2023 14:57:05 +0000 (07:57 -0700)] 
gh-96534: socketmodule: support FreeBSD divert(4) socket (#96536)

2 years agogh-104066: Improve performance of hasattr for module objects (#104063)
Itamar Ostricher [Thu, 4 May 2023 14:50:26 +0000 (07:50 -0700)] 
gh-104066: Improve performance of hasattr for module objects (#104063)

2 years agogh-102795: Fix use of poll in test_epoll's test_control_and_wait (#102796)
Kevin Krakauer [Thu, 4 May 2023 14:38:20 +0000 (07:38 -0700)] 
gh-102795: Fix use of poll in test_epoll's test_control_and_wait (#102796)

This test can fail unnecessarily. In the test we wait for events on two
file descriptors. This is done in a single call to select.epoll's poll()
function. However, it is valid for the OS to return only one event via
poll() and the next via a subsequent call to poll(). This rarely
happens, but it can cause the test to fail despite properly functioning
polling.

Instead, we poll a second time when necessary.

2 years agogh-103323: Remove PyRuntimeState_GetThreadState() (#104171)
Victor Stinner [Thu, 4 May 2023 14:21:01 +0000 (16:21 +0200)] 
gh-103323: Remove PyRuntimeState_GetThreadState() (#104171)

This function no longer makes sense, since its runtime parameter is
no longer used. Use directly _PyThreadState_GET() and
_PyInterpreterState_GET() instead.

2 years agogh-104169: Ensure the tokenizer doesn't overwrite previous errors (#104170)
Pablo Galindo Salgado [Thu, 4 May 2023 14:15:26 +0000 (15:15 +0100)] 
gh-104169: Ensure the tokenizer doesn't overwrite previous errors (#104170)

2 years agoFix typo "involvin" → "involving" (#104166)
Christopher Chavez [Thu, 4 May 2023 13:03:52 +0000 (08:03 -0500)] 
Fix typo "involvin" â†’ "involving" (#104166)

2 years agogh-103092: Port _ctypes.COMError to heap type (#104020)
Erlend E. Aasland [Thu, 4 May 2023 13:03:24 +0000 (15:03 +0200)] 
gh-103092: Port _ctypes.COMError to heap type (#104020)

2 years agogh-97556: Raise null bytes syntax error upon null in multiline string (GH-104136)
Lysandros Nikolaou [Thu, 4 May 2023 12:26:23 +0000 (14:26 +0200)] 
gh-97556: Raise null bytes syntax error upon null in multiline string (GH-104136)

2 years agoGH-97950: Use new-style index directive ('statement') (#104162)
Adam Turner [Thu, 4 May 2023 10:48:45 +0000 (11:48 +0100)] 
GH-97950: Use new-style index directive ('statement') (#104162)

2 years agoGH-97950: Use new-style index directive ('exception') (#104160)
Adam Turner [Thu, 4 May 2023 10:30:24 +0000 (11:30 +0100)] 
GH-97950: Use new-style index directive ('exception') (#104160)

2 years agogh-104089: catch DeprecationWarning in `test_fstring` (#104137)
sunmy2019 [Thu, 4 May 2023 10:20:20 +0000 (18:20 +0800)] 
gh-104089: catch DeprecationWarning in `test_fstring` (#104137)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2 years agoGH-97950: Use new-style index directive ('object') (#104158)
Adam Turner [Thu, 4 May 2023 10:04:41 +0000 (11:04 +0100)] 
GH-97950: Use new-style index directive ('object') (#104158)

* Uncomment object removal in pairindextypes

* Use new-style index directive ('object') - C API

* Use new-style index directive ('object') - Library

* Use new-style index directive ('object') - Reference

* Use new-style index directive ('object') - Tutorial

2 years agoGH-97950: Use new-style index directive ('operator') (#104156)
Adam Turner [Thu, 4 May 2023 09:03:11 +0000 (10:03 +0100)] 
GH-97950: Use new-style index directive ('operator') (#104156)

2 years agoGH-97950: Use new-style index directive ('keyword') (#104153)
Adam Turner [Thu, 4 May 2023 08:44:12 +0000 (09:44 +0100)] 
GH-97950: Use new-style index directive ('keyword') (#104153)

* Uncomment keyword removal in pairindextypes

* Use new-style index directive ('keyword') - Reference

2 years agoGH-97950: Use new-style index directive ('module') (#103996)
Adam Turner [Thu, 4 May 2023 08:17:12 +0000 (09:17 +0100)] 
GH-97950: Use new-style index directive ('module') (#103996)

* Use new-style index directive ('module') - C API

* Use new-style index directive ('module') - Library

* Use new-style index directive ('module') - Reference

* Use new-style index directive ('module') - Tutorial

* Uncomment module removal in pairindextypes

* Use new-style index directive ('module') - C API

* Use new-style index directive ('module') - Library

* Use new-style index directive ('module') - Reference

2 years agogh-103509: PEP 697 -- Limited C API for Extending Opaque Types (GH-103511)
Petr Viktorin [Thu, 4 May 2023 07:56:53 +0000 (09:56 +0200)] 
gh-103509: PEP 697 -- Limited C API for Extending Opaque Types (GH-103511)

Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2 years agoGH-97950: Allow translation of index directive content (#104000)
Adam Turner [Thu, 4 May 2023 07:11:09 +0000 (08:11 +0100)] 
GH-97950: Allow translation of index directive content (#104000)

2 years agogh-104146: Remove unused 'second_pass_replacements' from clinic.py (#104147)
Erlend E. Aasland [Thu, 4 May 2023 00:11:29 +0000 (02:11 +0200)] 
gh-104146: Remove unused 'second_pass_replacements' from clinic.py (#104147)

The code that manipulated 'second_pass_replacements' was removed in 2015
with commit 0759f84 (gh-67688, bpo-23500).

2 years agopydoc.safeimport: Use importlib.import_module instead of __import__ (GH-103118)
Yuxin Wu [Wed, 3 May 2023 23:26:39 +0000 (07:26 +0800)] 
pydoc.safeimport: Use importlib.import_module instead of __import__ (GH-103118)

2 years agogh-97850: Deprecate `find_loader` and `get_loader` in `pkgutil` (GH-98520)
Nikita Sobolev [Wed, 3 May 2023 23:11:54 +0000 (02:11 +0300)] 
gh-97850: Deprecate `find_loader` and `get_loader` in `pkgutil` (GH-98520)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Oleg Iarygin <oleg@arhadthedev.net>
2 years agogh-103590: mention that the change is included in 3.11.4 and clarify except* document...
Irit Katriel [Wed, 3 May 2023 20:55:19 +0000 (21:55 +0100)] 
gh-103590: mention that the change is included in 3.11.4 and clarify except* documentation (#104095)

2 years agoGH-104114: Fix `pathlib.WindowsPath.glob()` use of literal pattern segment case ...
Barney Gale [Wed, 3 May 2023 16:28:44 +0000 (17:28 +0100)] 
GH-104114: Fix `pathlib.WindowsPath.glob()` use of literal pattern segment case (GH-104116)

We now use `_WildcardSelector` to evaluate literal pattern segments, which
allows us to retrieve the real filesystem case.

This change is necessary in order to implement a *case_sensitive* argument
(see GH-81079) and a *follow_symlinks* argument (see GH-77609).

2 years agoGH-103944: Remove last use of `utcfromtimestamp` (#103995)
Paul Ganssle [Wed, 3 May 2023 15:17:27 +0000 (11:17 -0400)] 
GH-103944: Remove last use of `utcfromtimestamp` (#103995)

* Remove last use of `utcfromtimestamp`

This was a weirdly valid use of `utcfromtimestamp` in the sense that the "timestamps" in TZif files are not epoch times, but actually something more properly thought of as "number of seconds since 1970 in the local time zone", so even though we didn't want UTC time, `utcfromtimestamp` was still a good way to get the thing we wanted. Since we're deprecating `utcfromtimestamp`, it's just as valid to use `timedelta` arithmetic here.

We may be able to avoid the question entirely by switching these tests over to using `ZoneInfo` in the future.

* Fix a few missing DeprecationWarnings in tests

In one test, we simply turn off DeprecationWarning rather than asserting about it, because whether the error condition happens before or after the warning seems to differ between the Python and C versions.

2 years agogh-103693: Add convenience variable feature to `pdb` (#103694)
Tian Gao [Wed, 3 May 2023 14:04:50 +0000 (07:04 -0700)] 
gh-103693: Add convenience variable feature to `pdb` (#103694)

2 years agogh-103968: Deprecate creating heap types whose metaclass has custom tp_new. (GH-103972)
Petr Viktorin [Wed, 3 May 2023 13:17:14 +0000 (15:17 +0200)] 
gh-103968: Deprecate creating heap types whose metaclass has custom tp_new. (GH-103972)

(That's a mouthful of an edge case!)

Co-authored-by: Barney Gale <barney.gale@gmail.com>