bpo-41625: Expose the splice() system call in the os module #21947
Conversation
76e7040
to
5d7f89b
I still need to add docs :) |
a57b3d3
into
python:master
9 of 10 checks passed
9 of 10 checks passed
bedevere/news
News entry found in Misc/NEWS.d
ThatXliner
added a commit
to ThatXliner/cpython
that referenced
this pull request
Nov 29, 2020
* bpo-29566: binhex.binhex now consitently writes MacOS 9 line endings. (GH-23059) [bpo-29566]() notes that binhex.binhex uses inconsistent line endings (both Unix and MacOS9 line endings are used). This PR changes this to use the MacOS9 line endings everywhere. * tempfile: Use random.choises() instead of choise() (GH-23068) * bpo-37483: Add PyObject_CallOneArg() in the What's New in Python 3.9 (GH-23062) * Expand and clarify the "Invoking Descriptors" section of the Descriptor HowTo (GH-23078) * bpo-42233: Correctly repr GenericAlias when used with typing module (GH-23081) Noticed by @serhiy-storchaka in the bpo. `typing`'s types were not showing the parameterized generic. Eg. previously: ```python >>> typing.Union[dict[str, float], list[int]] 'typing.Union[dict, list]' ``` Now: ```python >>> typing.Union[dict[str, float], list[int]] 'typing.Union[dict[str, float], list[int]]' ``` Automerge-Triggered-By: GH:gvanrossum * bpo-42236: Enhance _locale._get_locale_encoding() (GH-23083) * Rename _Py_GetLocaleEncoding() to _Py_GetLocaleEncodingObject() * Add _Py_GetLocaleEncoding() which returns a wchar_t* string to share code between _Py_GetLocaleEncodingObject() and config_get_locale_encoding(). * _Py_GetLocaleEncodingObject() now decodes nl_langinfo(CODESET) from the current locale encoding with surrogateescape, rather than using UTF-8. * bpo-42236: Use UTF-8 encoding if nl_langinfo(CODESET) fails (GH-23086) If the nl_langinfo(CODESET) function returns an empty string, Python now uses UTF-8 as the filesystem encoding. In May 2010 (commit b744ba1d14c5487576c95d0311e357b707600b47), I modified Python to log a warning and use UTF-8 as the filesystem encoding (instead of None) if nl_langinfo(CODESET) returns an empty string. In August 2020 (commit 94908bbc1503df830d1d615e7b57744ae1b41079), I modified Python startup to fail with a fatal error and a specific error message if nl_langinfo(CODESET) returns an empty string. The intent was to prevent guessing the encoding and also investigate user configuration where this case happens. In 10 years (2010 to 2020), I saw zero user report about the error message related to nl_langinfo(CODESET) returning an empty string. Today, UTF-8 became the defacto standard and it's safe to make the assumption that the user expects UTF-8. For example, nl_langinfo(CODESET) can return an empty string on macOS if the LC_CTYPE locale is not supported, and UTF-8 is the default encoding on macOS. While this change is likely to not affect anyone in practice, it should make UTF-8 lover happy ;-) Rewrite also the documentation explaining how Python selects the filesystem encoding and error handler. * bpo-37193: remove thread objects which finished process its request (GH-13893) * bpo-37193: remove the thread which finished process request from threads list * rename variable t to thread. * don't remove thread from list if it is daemon. * use lock to protect self._threads. * use finally block in case of exception from shutdown_request(). * check "not thread.daemon" before lock to avoid holding the lock if it's unnecessary. * fix the place of _threads_lock. * separate code to remove a current thread into a function. * check ValueError when removing thread. * fix wrong code which all instance shared same lock. * Extract thread management into a _Threads class to encapsulate atomic operations and separate concerns. * Replace multiple references of 'block_on_close' with one, avoiding the possibility that 'block_on_close' could change during the course of processing requests. Now, there's exactly one _threads object with behavior fixed for the duration. * Add docstrings to private classes. * Add test to ensure that a ThreadingTCPServer can be closed without serving any requests. * Use _NoThreads as the default value. Fixes AttributeError when server is closed without serving any requests. * Add blurb * Add test capturing failure. Co-authored-by: Jason R. Coombs <jaraco@jaraco.com> * Add member objects to the descriptor howto guide (GH-23084) * bpo-40511: Stop unwanted flashing of IDLE calltips (GH-20910) They were occurring with both repeated 'force-calltip' invocations and by typing parentheses in expressions, strings, and comments in the argument code. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> * Minor formatting edits to the descriptor howto guide (GH-23092) * bpo-41229: Update docs for explicit aclose()-required cases and add contextlib.aclosing() method (GH-21545) This is a PR to: * Add `contextlib.aclosing` which ia analogous to `contextlib.closing` but for async-generators with an explicit test case for [bpo-41229]() * Update the docs to describe when we need explicit `aclose()` invocation. which are motivated by the following issues, articles, and examples: * [bpo-41229]() * https://github.com/njsmith/async_generator * https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#cleanup-in-generators-and-async-generators * https://www.python.org/dev/peps/pep-0533/ * https://github.com/achimnol/aiotools/blob/ef7bf0cea7af/src/aiotools/context.py#L152 Particuarly regarding [PEP-533](https://www.python.org/dev/peps/pep-0533/), its acceptance (`__aiterclose__()`) would make this little addition of `contextlib.aclosing()` unnecessary for most use cases, but until then this could serve as a good counterpart and analogy to `contextlib.closing()`. The same applies for `contextlib.closing` with `__iterclose__()`. Also, still there are other use cases, e.g., when working with non-generator objects with `aclose()` methods. * bpo-42230: Improve asyncio documentation regarding accepting sets vs iterables (GH-23073) People call wait() and as_completed() with various non-set iterables, a list should be the most common but there are others as well[1]. Considering typeshed also documents wait()[2] and as_completed()[3] as accepting arbitrary iterables I think it's a good idea to document the status quo better. [1] https://github.com/aio-libs/aiokafka/pull/672 [2] https://github.com/python/typeshed/blob/620989bac572f30349b95590ebe81a73ce0fe862/stdlib/3/asyncio/tasks.pyi#L161 [3] https://github.com/python/typeshed/blob/620989bac572f30349b95590ebe81a73ce0fe862/stdlib/3/asyncio/tasks.pyi#L40 * bpo-41435: Add sys._current_exceptions() function (GH-21689) This adds a new function named sys._current_exceptions() which is equivalent ot sys._current_frames() except that it returns the exceptions currently handled by other threads. It is equivalent to calling sys.exc_info() for each running thread. * bpo-42224: Fix test_format when locale does not expect number grouping (GH-23067) * bpo-42236: Enhance init and encoding documentation (GH-23109) Enhance the documentation of the Python startup, filesystem encoding and error handling, locale encoding. Add a new "Python UTF-8 Mode" section. * Add "locale encoding" and "filesystem encoding and error handler" to the glossary * Remove documentation from Include/cpython/initconfig.h: move it to Doc/c-api/init_config.rst. * Doc/c-api/init_config.rst: * Document command line options and environment variables * Document default values. * Add a new "Python UTF-8 Mode" section in Doc/library/os.rst. * Add warnings to Py_DecodeLocale() and Py_EncodeLocale() docs. * Document how Python selects the filesystem encoding and error handler at a single place: PyConfig.filesystem_encoding and PyConfig.filesystem_errors. * PyConfig: move orig_argv member at the right place. * Revert "bpo-37193: remove thread objects which finished process its request (GH-13893)" (GH-23107) This reverts commit c41559021213cfc9dc62a83fc63306b3bdc3e64b. * bpo-41943: Fix bug where assertLogs doesn't correctly filter messages… (GH-22565) … by level @vsajip , @pitrou Automerge-Triggered-By: GH:vsajip * bpo-42103: Improve validation of Plist files. (GH-22882) * Prevent some possible DoS attacks via providing invalid Plist files with extremely large number of objects or collection sizes. * Raise InvalidFileException for too large bytes and string size instead of returning garbage. * Raise InvalidFileException instead of ValueError for specific invalid datetime (NaN). * Raise InvalidFileException instead of TypeError for non-hashable dict keys. * Add more tests for invalid Plist files. * bpo-41796: Make _ast module state per interpreter (GH-23024) The ast module internal state is now per interpreter. * Rename "astmodulestate" to "struct ast_state" * Add pycore_ast.h internal header: the ast_state structure is now declared in pycore_ast.h. * Add PyInterpreterState.ast (struct ast_state) * Remove get_ast_state() * Rename get_global_ast_state() to get_ast_state() * PyAST_obj2mod() now handles get_ast_state() failures * bpo-26789: Fix logging.FileHandler._open() at exit (GH-23053) The logging.FileHandler class now keeps a reference to the builtin open() function to be able to open or reopen the file during Python finalization. Fix errors like: Exception ignored in: (...) Traceback (most recent call last): (...) File ".../logging/__init__.py", line 1463, in error File ".../logging/__init__.py", line 1577, in _log File ".../logging/__init__.py", line 1587, in handle File ".../logging/__init__.py", line 1649, in callHandlers File ".../logging/__init__.py", line 948, in handle File ".../logging/__init__.py", line 1182, in emit File ".../logging/__init__.py", line 1171, in _open NameError: name 'open' is not defined * bpo-35455: Fix thread_time for Solaris OS (GH-11118) * Python 3.10.0a2 * bpo-40077: Convert mmap.mmap static type to a heap type (GH-23108) * bpo-42249: Fix writing binary Plist files larger than 4 GiB. (GH-23121) * bpo-41796: Call _PyAST_Fini() earlier to fix a leak (GH-23131) Call _PyAST_Fini() on all interpreters, not only on the main interpreter. Also, call it ealier to fix a reference leak. Python types contain a reference to themselves in in their PyTypeObject.tp_mro member. _PyAST_Fini() must called before the last GC collection to destroy AST types. _PyInterpreterState_Clear() now calls _PyAST_Fini(). It now also calls _PyWarnings_Fini() on subinterpeters, not only on the main interpreter. Add an assertion in AST init_types() to ensure that the _ast module is no longer used after _PyAST_Fini() has been called. * Post 3.10.0a2 * Add _PyType_GetModuleByDef (GH-22835) See https://mail.python.org/archives/list/capi-sig@python.org/thread/T3P2QNLNLBRFHWSKYSTPMVEIL2EEKFJU/ for discussion. https://bugs.python.org/issue42100 * Fix incorrect links in ast docs (GH-23017) * Enable signing of nuget.org packages and update to supported timestamp server (GH-23132) * bpo-42251: Add gettrace and getprofile to threading (GH-23125) This allows to retrieve the functions that were set in these two, which might differ from sys.gettrace and sys.getprofile within a thread. * bpo-42236: os.device_encoding() respects UTF-8 Mode (GH-23119) On Unix, the os.device_encoding() function now returns 'UTF-8' rather than the device encoding if the Python UTF-8 Mode is enabled. * bpo-1635741: Add PyModule_AddObjectRef() function (GH-23122) Added PyModule_AddObjectRef() function: similar to PyModule_AddObjectRef() but don't steal a reference to the value on success. * bpo-42260: Reorganize PyConfig (GH-23149) * Move orig_argv before argv * Move program_name and platlibdir with other path configuration inputs Give a name to the PyPreConfig and PyConfig structures and separate the type definitions. * bpo-1635741: _contextvars uses PyModule_AddType() (GH-23147) Replace PyModule_AddObject() with PyModule_AddType() in the _contextvars module (Python-ast.c). Add also the module name to _contextvars types name. * bpo-1635741: _ast uses PyModule_AddObjectRef() (GH-23146) Replace PyModule_AddObject() with PyModule_AddObjectRef() in the _ast module (Python-ast.c). * bpo-1635741: Fix ref leak in _PyWarnings_Init() error path (GH-23151) Replace PyModule_AddObject() with PyModule_AddObjectRef() in the _warnings module to fix a reference leak on error. Use also PyModule_AddObjectRef() in importdl.c. * bpo-42260: Main init modify sys.flags in-place (GH-23150) When Py_Initialize() is called twice, the second call now updates more sys attributes for the configuration, rather than only sys.argv. * Rename _PySys_InitMain() to _PySys_UpdateConfig(). * _PySys_UpdateConfig() now modifies sys.flags in-place, instead of creating a new flags object. * Remove old commented sys.flags flags (unbuffered and skip_first). * Add private _PySys_GetObject() function. * When Py_Initialize(), Py_InitializeFromConfig() and * bpo-1635741: Fix PyInit_pyexpat() error handling (GH-22489) Split PyInit_pyexpat() into sub-functions and fix reference leaks on error paths. * bpo-1635741: _sqlite3 uses PyModule_AddObjectRef() (GH-23148) * Disable peg generator tests when building with PGO (GH-23141) Otherwise, when running the testsuite, test_peg_generator tries to compile C code using the optimized flags and fails because it cannot find the profile data. * bpo-42260: Add _PyInterpreterState_SetConfig() (GH-23158) * Inline _PyInterpreterState_SetConfig(): replace it with _PyConfig_Copy(). * Add _PyErr_SetFromPyStatus() * Add _PyInterpreterState_GetConfigCopy() * Add a new _PyInterpreterState_SetConfig() function. * Add an unit which gets, modifies, and sets the config. * bpo-40816 Add AsyncContextDecorator class (GH-20516) Co-authored-by: Yury Selivanov <yury@edgedb.com> * bpo-42266: Handle monkey-patching descriptors in LOAD_ATTR cache (GH-23157) * bpo-42262: Add Py_NewRef() and Py_XNewRef() (GH-23152) Added Py_NewRef() and Py_XNewRef() functions to increment the reference count of an object and return the object. * [docs] fix wrongly named AsyncContextDecorator (GH-23164) Also added versionchanged. * bpo-41877 Check for asert, aseert, assrt in mocks (GH-23165) Currently, a Mock object which is not unsafe will raise an AttributeError if an attribute with the prefix assert or assret is accessed on it. This protects against misspellings of real assert method calls, which lead to tests passing silently even if the tested code does not satisfy the intended assertion. Recently a check was done in a large code base (Google) and three more frequent ways of misspelling assert were found causing harm: asert, aseert, assrt. These are now added to the existing check. * bpo-42260: Add _PyConfig_FromDict() (GH-23167) * Rename config_as_dict() to _PyConfig_AsDict(). * Add 'module_search_paths_set' to _PyConfig_AsDict(). * Add _PyConfig_FromDict(). * Add get_config() and set_config() to _testinternalcapi. * Add config_check_consistency(). * bpo-42260: PyConfig_Read() only parses argv once (GH-23168) The PyConfig_Read() function now only parses PyConfig.argv arguments once: PyConfig.parse_argv is set to 2 after arguments are parsed. Since Python arguments are strippped from PyConfig.argv, parsing arguments twice would parse the application options as Python options. * Rework the PyConfig documentation. * Fix _testinternalcapi.set_config() error handling. * SetConfigTests no longer needs parse_argv=0 when restoring the old configuration. * bpo-26389: Allow passing an exception object in the traceback module (GH-22610) The format_exception(), format_exception_only(), and print_exception() functions can now take an exception object as a positional-only argument. Co-Authored-By: Matthias Bussonnier <bussonniermatthias@gmail.com> * bpo-42179: Doc/tutorial: Remove mention of __cause__ (GH-23162) * Minor grammar edits for the descriptor howto guide (GH-#23175) * bpo-41832: PyType_FromModuleAndSpec() now accepts NULL tp_doc (GH-23123) * Remove outdated reference to pywin32 from platform module (GH-22005) * bpo-42133: update parts of the stdlib to fall back to `__spec__.loader` when `__loader__` is missing (#22929) * bpo-41028: Doc: Move switchers to docsbuild-scripts. (GH-20969) * bpo-42282: Fold constants inside named expressions (GH-23190) * The AST optimiser wasn't descending into named expressions, so any constant subexpressions weren't being folded at compile time * Remove "default:" clauses inside the AST optimiser code to reduce the risk of similar bugs passing unnoticed in future compiler changes * bpo-40077: Convert _queuemodule to use heap types (GH-23136) @vstinner / @corona10, would you mind reviewing this? * Minor wording change in concurrent.futures. (GH-23194) Fixes a grammar problem by adding a missing "as", and clarifies the wording of the valid ranges for max_workers. * bpo-41100: Support macOS 11 and Apple Silicon (GH-22855) Co-authored-by: Lawrence D’Anna <lawrence_danna@apple.com> * Add support for macOS 11 and Apple Silicon (aka arm64) As a side effect of this work use the system copy of libffi on macOS, and remove the vendored copy * Support building on recent versions of macOS while deploying to older versions This allows building installers on macOS 11 while still supporting macOS 10.9. * bpo-41754: Ignore NotADirectoryError in invocation of xdg-settings (GH-23075) It is not clear why this can happen, but several users have mentioned getting this exception on macOS. * bpo-42233: Add union type expression support for GenericAlias and fix de-duplicating of GenericAlias (GH-23077) * bpo-40624: Add support for the XPath != operator in xml.etree (GH-22147) * bpo-41543: contextlib.nullcontext can fill in for an async context manager (GH-21870) Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com> * bpo-42294: Add borrowed/strong reference to doc glossary (GH-23206) Add "borrowed reference" and "strong reference" to the documentation glossary. Enhance also Py_INCREF() and Py_NewRef() documentation. * bpo-41712: Avoid runaway regex match in upload scripts (GH-23166) * bpo-36310: Allow pygettext.py to detect calls to gettext in f-strings. (GH-19875) Adds support to Tools/i18n/pygettext.py for gettext calls in f-strings. This process is done by parsing the f-strings, processing each value, and flagging the ones which contain a gettext call. Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com> * Fix typo in unicodeobject.c (GH-23180) exeeds -> exceeds Automerge-Triggered-By: GH:Mariatta * bpo-42260: Compute the path config in the main init (GH-23211) The path configuration is now computed in the "main" initialization. The core initialization no longer computes it. * Add _PyConfig_Read() function to read the configuration without computing the path configuration. * pyinit_core() no longer computes the path configuration: it is now computed by init_interp_main(). * The path configuration output members of PyConfig are now optional: * executable * base_executable * prefix * base_prefix * exec_prefix * base_exec_prefix * _PySys_UpdateConfig() now skips NULL strings in PyConfig. * _testembed: Rename test_set_config() to test_init_set_config() for consistency with other tests. * Fix typo in test_array.py (GH-23189) * bpo-42171: Add PEP573-related items to the limited API (GH-23009) * bpo-42183: Fix a stack overflow error for asyncio Task or Future repr() (GH-23020) The overflow occurs under some circumstances when a task or future recursively returns itself. Co-authored-by: Kyle Stanley <aeros167@gmail.com> * Update whatsnew for 3.10 release about addition of contextlib.aclosing (GH-23217) * bpo-42014: shutil.rmtree: call onerror with correct function (GH-22585) The onerror is supposed to be called with failed function, but in this case lstat is wrongly used instead of open. Not sure if this needs bug or not... Automerge-Triggered-By: GH:hynek * bpo-42085: Introduce dedicated entry in PyAsyncMethods for sending values (#22780) * bpo-42260: Fix _PyConfig_Read() if compute_path_config=0 (GH-23220) Fix _PyConfig_Read() if compute_path_config=0: use values set by Py_SetPath(), Py_SetPythonHome() and Py_SetProgramName(). Add compute_path_config parameter to _PyConfig_InitPathConfig(). The following functions now return NULL if called before Py_Initialize(): * Py_GetExecPrefix() * Py_GetPath() * Py_GetPrefix() * Py_GetProgramFullPath() * Py_GetProgramName() * Py_GetPythonHome() These functions no longer automatically computes the Python Path Configuration. Moreover, Py_SetPath() no longer computes program_full_path. * bpo-41073: PyType_GetSlot() can now accept static types. (GH-21931) PyType_GetSlot() can now accept static types. Co-Authored-By: Petr Viktorin <encukou@gmail.com> Automerge-Triggered-By: GH:encukou * bpo-42140: Improve asyncio.wait function (GH-22938) # Improve asyncio.wait function The original code creates the futures set two times. We can create this set before, avoiding the second creation. This new behaviour [breaks the aiokafka library](https://github.com/aio-libs/aiokafka/pull/672), because it gives an iterator to that function, so the second iteration become empty. Automerge-Triggered-By: GH:1st1 * bpo-42294: Grammar fixes in doc glossary strong/weak refs (GH-23227) * bpo-1635741: Fix typo in PyModule_AddObjectRef() doc (GH-23234) It is similar to PyModule_AddObject(), not to itself. * bpo-39411: pyclbr rewrite on AST (#18103) - Rewrite pyclbr using an AST processor - Add is_async to the pyclbr.Function * bpo-40932: Note security caveat of shlex.quote on Windows (GH-21502) Added a note in the `subprocess` docs that recommend using `shlex.quote` without mentioning that this is only applicable to Unix. Also added a warning straight into the `shlex` docs since it only says "for simple syntaxes resembling that of the Unix shell" and says using `quote` plugs the security hole without mentioning this important caveat. * bpo-40170: Fix PyType_Ready() refleak on static type (GH-23236) bpo-1635741, bpo-40170: When called on a static type with NULL tp_base, PyType_Ready() no longer increments the reference count of the PyBaseObject_Type ("object). PyTypeObject.tp_base is a strong reference on a heap type, but it is borrowed reference on a static type. Fix 99 reference leaks at Python exit (showrefcount 18623 => 18524). * Fix memory leak introduced by GH-22780 (GH-23237) * bpo-42246: Partial implementation of PEP 626. (GH-23113) * Implement new line number table format, as defined in PEP 626. * bpo-42237: Fix os.sendfile() on illumos (GH-23154) * Bump magic number. (GH-23245) * bpo-38823: Fix refleaks in _ctypes extension init (GH-23247) Fix reference leaks in the error path of the initialization function the _ctypes extension module: call Py_DECREF(mod) on error. Change PyCFuncPtr_Type name from _ctypes.PyCFuncPtr to _ctypes.CFuncPtr to be consistent with the name exposed in the _ctypes namespace (_ctypes.CFuncPtr). Split PyInit__ctypes() function into sub-functions and add macros for readability. * bpo-42260: Initialize time and warnings earlier at startup (GH-23249) * Call _PyTime_Init() and _PyWarnings_InitState() earlier during the Python initialization. * Inline _PyImportHooks_Init() into _PySys_InitCore(). * The _warnings initialization function no longer call _PyWarnings_InitState() to prevent resetting filters_version to 0. * _PyWarnings_InitState() now returns an int and no longer clear the state in case of error (it's done anyway at Python exit). * Rework init_importlib(), fix refleaks on errors. * bpo-38823: Always build _ctypes with wchar_t (GH-23248) It is no longer possible to build the _ctypes extension module without wchar_t type: remove CTYPES_UNICODE macro. Anyway, the wchar_t type is required to build Python. * bpo-42308: Add threading.__excepthook__ (GH-23218) Add threading.__excepthook__ to allow retrieving the original value of threading.excepthook in case it is set to a broken or a different value. * bpo-42246: Eliminate jumps to exit blocks by copying those blocks. (#23251) * Compiler: eliminate jumps to short exit blocks by copying. * bpo-42246: Fix memory leak in compiler (GH-23256) * Fix potential memory leak in assembler init. * Fix reference leak when encountering error during compilation of function body. * bpo-38823: Fix compiler warning in _ctypes on Windows (GH-23258) Explicitly cast PyExc_Exception to PyTypeObject* to fix the warning: modules\_ctypes\_ctypes.c(5748): warning C4133: '=': incompatible types - from 'PyObject *' to '_typeobject *' * bpo-42296: On Windows, fix CTRL+C regression (GH-23257) On Windows, fix a regression in signal handling which prevented to interrupt a program using CTRL+C. The signal handler can be run in a thread different than the Python thread, in which case the test deciding if the thread can handle signals is wrong. On Windows, _PyEval_SignalReceived() now always sets eval_breaker to 1 since it cannot test _Py_ThreadCanHandleSignals(), and eval_frame_handle_pending() always calls _Py_ThreadCanHandleSignals() to recompute eval_breaker. * bpo-41617: Add _Py__has_builtin() macro (GH-23260) Fix building pycore_bitutils.h internal header on old clang version without __builtin_bswap16() (ex: Xcode 4.6.3 on Mac OS X 10.7). Add a new private _Py__has_builtin() macro to check for availability of a preprocessor builtin function. Co-Authored-By: Joshua Root <jmr@macports.org> Co-authored-by: Joshua Root <jmr@macports.org> * bpo-42042: Use ids attribute instead of names attribute (GH-22739) * bpo-40968: Send http/1.1 ALPN extension (#20959) Signed-off-by: Christian Heimes <christian@python.org> * bpo-42344: Improve pseudo implementation for SimpleNamespace (GH-23264) * bpo-41001: Add os.eventfd() (#20930) Co-authored-by: Kyle Stanley <aeros167@gmail.com> * bpo-40754: Adds _testinternalcapi to Windows installer for test suite (GH-23271) * bpo-42131: Add PEP 451-related methods to zipimport (GH-23187) Specifically, find_spec(), create_module(), and exec_module(). Co-authored-by: Nick Coghlan <ncoghlan@gmail.com> * fix typo in ThreadedChildWatcher docs (GH-23277) * bpo-41832: Restore note about NULL in PyType_Slot.pfunc (GH-23243) * bpo-42351: Avoid error when opening header with non-UTF8 encoding (GH-23279) grep_headers_for() would error out when a header contained text that cannot be interpreted as UTF-8. * bpo-42318: Fix support of non-BMP characters in Tkinter on macOS (GH-23281) * bpo-42317: Improve docs of typing.get_args concerning Union (GH-23254) * More updates to the descriptor howto guide (GH-23238) * bpo-42332: Add weakref slot to types.GenericAlias (GH-23250) Automerge-Triggered-By: GH:gvanrossum * bpo-42153 Fix link to IMAP documents in imaplib.rst (GH-23297) The University of Washington stopped hosting the IMAP documents. Link to a rescued copy on GitHub. * bpo-37205: time.perf_counter() and time.monotonic() are system-wide (GH-23284) time.perf_counter() on Windows and time.monotonic() on macOS are now system-wide. Previously, they used an offset computed at startup to reduce the precision loss caused by the float type. Use time.perf_counter_ns() and time.monotonic_ns() added in Python 3.7 to avoid this precision loss. * bpo-42350: Fix Thread._reset_internal_locks() (GH-23268) Fix the threading.Thread class at fork: do nothing if the thread is already stopped (ex: fork called at Python exit). Previously, an error was logged in the child process. * bpo-37205: time.time() cannot fail with fatal error (GH-23314) time.time(), time.perf_counter() and time.monotonic() functions can no longer fail with a Python fatal error, instead raise a regular Python exception on failure. Remove _PyTime_Init(): don't check system, monotonic and perf counter clocks at startup anymore. On error, _PyTime_GetSystemClock(), _PyTime_GetMonotonicClock() and _PyTime_GetPerfCounter() now silently ignore the error and return 0. They cannot fail with a Python fatal error anymore. Add py_mach_timebase_info() and win_perf_counter_frequency() sub-functions. * bpo-42087: Remove support for AIX 5.3 and below (GH-22830) As AIX 5.3 and below do not support thread_cputime, it was decided in https://bugs.python.org/issue40680 to require AIX 6.1 and above. This commit removes workarounds for — and references to — older, unsupported AIX versions. * bpo-40939: Document removal of the old parser in 3.10 whatsnew (GH-23321) Automerge-Triggered-By: GH:lysnikolaou * bpo-38506: Fix the Windows py.exe launcher's misordering of 3.10 (GH-18307) * bpo-42374: Allow unparenthesized walrus in genexps (GH-23319) This fixes a regression that was introduced by the new parser. Automerge-Triggered-By: GH:lysnikolaou * bpo-42316: Allow unparenthesized walrus operator in indexes (GH-23317) * bpo-42120: Remove macro defining copysign to _copysign on Windows (GH-23326) * Add GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327) * bpo-41625: Expose the splice() system call in the os module (GH-21947) * bpo-42381: Allow walrus in set literals and set comprehensions (GH-23332) Currently walruses are not allowerd in set literals and set comprehensions: >>> {y := 4, 4**2, 3**3} File "<stdin>", line 1 {y := 4, 4**2, 3**3} ^ SyntaxError: invalid syntax but they should be allowed as well per PEP 572 * bpo-42345: Fix three issues with typing.Literal parameters (GH-23294) Literal equality no longer depends on the order of arguments. Fix issue related to `typing.Literal` caching by adding `typed` parameter to `typing._tp_cache` function. Add deduplication of `typing.Literal` arguments. * bpo-41861, _sqlite3 : Add NEWS entry and rename variables (GH-23337) * bpo-40637: Don't test builtin PBKDF2 without builtin hashes (GH-20980) Skip testing of pure Python PBKDF2 when one or more builtin hash module is not available. Otherwise the import of hashlib prints noise on stderr. Signed-off-by: Christian Heimes <christian@python.org> * bpo-41713: Remove PyOS_InitInterrupts() function (GH-23342) Remove the undocumented PyOS_InitInterrupts() C function. * Rename PyOS_InitInterrupts() to _PySignal_Init(). It now installs other signal handlers, not only SIGINT. * Rename PyOS_FiniInterrupts() to _PySignal_Fini() * bpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163) * bpo-41686: Always create the SIGINT event on Windows (GH-23344) bpo-41686, bpo-41713: On Windows, the SIGINT event, _PyOS_SigintEvent(), is now created even if Python is configured to not install signal handlers (PyConfig.install_signal_handlers=0 or Py_InitializeEx(0)). Changes: * Move global variables initialization from signal_exec() to _PySignal_Init() to clarify that they are global variables cleared by _PySignal_Fini(). * _PySignal_Fini() now closes sigint_event. * IntHandler is no longer a global variable. * bpo-41686: Refactor signal_exec() (GH-23346) * Add signal_add_constants() function and add ADD_INT_MACRO macro. * The Python SIGINT handler is now installed at the end of signal_exec(). * Use Py_NewRef(). * bpo-41625: Add versionadded to os.splice() constants (GH-23340) * bpo-42349: Compiler clean up. More yak-shaving for PEP 626. (GH-23267) Make sure that CFG from compiler front-end is correct. Be a bit more aggressive in the compiler back-end. * bpo-41625: Specify that Linux >= 2.6.17 *and* glibc >= 2.5 are requir… (GH-23351) …ed for splice() * bpo-41625: Add a guard for Linux for splice() constants in the os module (GH-23350) * Fix: Docstrings hidden by slots. (GH-23352) Some `__slots__` where before the docstring, hiding them. * bpo-41686: Move _Py_RestoreSignals() to signalmodule.c (GH-23353) * bpo-41625: Skip os.splice() tests on AIX (GH-23354) On AIX, splice() only works with a socket, whereas the test uses a pipe. * bpo-41713: Port _signal module to multi-phase init (GH-23355) Port the _signal extension module to the multi-phase initialization API (PEP 489). Co-Authored-By: Mohamed Koubaa <koubaa.m@gmail.com> * bpo-42396: Add a whatsnew entry about async contextlib.nullcontext (GH-23357) Automerge-Triggered-By: GH:asvetlov * bpo-42395: Add aclosing to __all__ (GH-23356) Automerge-Triggered-By: GH:asvetlov * bpo-40656: Clean up detect_socket() (GH-20148) * bpo-41561: skip test_min_max_version_mismatch (GH-22308) skip test_min_max_version_mismatch when TLS 1.0 is not available Signed-off-by: Christian Heimes <christian@python.org> * bpo-42398: Fix "make regen-all" race condition (GH-23362) Fix a race condition in "make regen-all" when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time. The "make regen-all" command runs "make clinic" and "make regen-importlib" targets: * "make regen-importlib" builds object files (ex: Modules/_weakref.o) from source files (ex: Modules/_weakref.c) and clinic files (ex: Modules/clinic/_weakref.c.h) * "make clinic" always rewrites all clinic files (ex: Modules/clinic/_weakref.c.h) Since there is no dependency between "clinic" and "regen-importlib" Makefile targets, these two targets can be run in parallel. Moreover, half of clinic.py file writes are not atomic and so there is a race condition when "make regen-all" runs jobs in parallel using make -jN option (which can be passed in MAKEFLAGS environment variable). Fix clinic.py to make all file writes atomic: * Add write_file() function to ensure that all file writes are atomic: write into a temporary file and then use os.replace(). * Moreover, write_file() doesn't recreate or modify the file if the content does not change to avoid modifying the file modification file. * Update test_clinic to verify these assertions with a functional test. * Remove Clinic.force attribute which was no longer used, whereas Clinic.verify remains useful. * bpo-40998: Fix a refleak in create_filter() (GH-23365) * bpo-1635741: Port symtable module to multiphase initialization (GH-23361) Signed-off-by: Christian Heimes <christian@python.org> * bpo-1635741: Port _hashlib to multiphase initialization (GH-23358) Signed-off-by: Christian Heimes <christian@python.org> * bpo-40998: Address compiler warnings found by ubsan (GH-20929) Signed-off-by: Christian Heimes <christian@python.org> Automerge-Triggered-By: GH:tiran * bpo-42336: Improve PCbuild batch files (GH-23275) * bpo-39573: Convert Py_TYPE() and Py_SIZE() back to macros (GH-23366) This change partically reverts commit ad3252bad905d41635bcbb4b76db30d570cf0087 and the commit fe2978b3b940fe2478335e3a2ca5ad22338cdf9c. Many third party C extension modules rely on the ability of using Py_TYPE() to set an object type: "Py_TYPE(obj) = type;" or to set an object type using: "Py_SIZE(obj) = size;". * bpo-42085: Add documentation for Py_TPFLAGS_HAVE_AM_SEND (GH-23374) Updated docs to include `Py_TPFLAGS_HAVE_AM_SEND`. News section should not be necessary. Automerge-Triggered-By: GH:asvetlov * bpo-39573: Remove What's new entry for Py_SIZE() (GH-23375) A follow up for 0e2ac21dd4960574e89561243763eabba685296a * bpo-1635741: Convert _imp to multi-phase init (GH-23378) Convert the _imp extension module to the multi-phase initialization API (PEP 489). * Add _PyImport_BootstrapImp() which fix a bootstrap issue: import the _imp module before importlib is initialized. * Add create_builtin() sub-function, used by _imp_create_builtin(). * Initialize PyInterpreterState.import_func earlier, in pycore_init_builtins(). * Remove references to _PyImport_Cleanup(). This function has been renamed to finalize_modules() and moved to pylifecycle.c. * [doc] Fix smtplib and xml.dom.minidom mark-up (GH-22769) * bpo-1635741: Port _warnings to the multi-phase init (GH-23379) Port the _warnings extension module to the multi-phase initialization API (PEP 489). * bpo-42381: Document walrus-related syntax changes in whatsnew (GH-23382) Automerge-Triggered-By: GH:lysnikolaou * bpo-42345: Add whatsnew for typing.Literal in 3.10 (GH-23385) * bpo-42375: subprocess DragonFlyBSD build update. (GH-23320) Same as FreeBSD, file descriptors in /dev/fd id from 0 to 63. * bpo-1635741: Port _random to multiphase initialization (GH-23359) Signed-off-by: Christian Heimes <christian@python.org> * bpo-1635741: Port grp and pwd to multiphase initialization (GH-23360) Signed-off-by: Christian Heimes <christian@python.org> * bpo-1635741: Port _queue to multiphase initialization (GH-23376) Signed-off-by: Christian Heimes <christian@python.org> Automerge-Triggered-By: GH:tiran * bpo-1635741: Port spwd to multiphase initialization (GH-23390) Signed-off-by: Christian Heimes <christian@python.org> * bpo-42403: Fix pyflakes warnings in importlib (GH-23396) Remove unused imports and unused local variables. * bpo-42403: Simplify importlib external bootstrap (GH-23397) Simplify the importlib external bootstrap code: importlib._bootstrap_external now uses regular imports to import builtin modules. When it is imported, the builtin __import__() function is already fully working and so can be used to import builtin modules like sys. * bpo-1635741: Port _struct to multiphase initialization (GH-23398) Signed-off-by: Christian Heimes <christian@python.org> * bpo-1635741: Port gc module to multiphase initialization (GH-23377) Signed-off-by: Christian Heimes <christian@python.org> Automerge-Triggered-By: GH:tiran * bpo-1635741: Fix _struct for build bot error (GH-23402) Automerge-Triggered-By: GH:tiran * bpo-1635741: Port _posixshmem extension module to multiphase initialization (GH-23404) Signed-off-by: Christian Heimes <christian@python.org> * bpo-42345: Fix hash implementation of typing.Literal (GH-23383) Fix hash implementation of `typing.Literal`. Update docs regarding `typing.Litaral` caching. Base implementation was done in PR #23294. * bpo-42345: Add whatsnew and versionchanged for typing.Literal in 3.9 (GH-23386) * Whatsnew entry in 3.9 same as the one in 3.10. * versionchanged for typing.Literal docs Needs backport to 3.9. * bpo-42416: Use inspect.getdoc for IDLE calltips (GH-23416) Inspect.getdoc(ob) sometimes gets docstrings when ob.__doc__ is None. * bpo-42413: socket.timeout is now an alias of TimeoutError (GH-23413) Signed-off-by: Christian Heimes <christian@python.org> * bpo-42333: Port _ssl extension module to heap types (GH-23392) All types in _ssl module are now heap types. * bpo-1635741: Enhance _datetime error handling (GH-23139) * bpo-1635741: Convert _sre types to heap types and establish module state (PEP 384) (GH-23393) * bpo-42403: Use @staticmethod in importlib (GH-23395) Use @staticmethod on methods using @classmethod but don't use their cls parameter on the following classes: * BuiltinImporter * FrozenImporter * WindowsRegistryFinder * PathFinder Leave methods using @_requires_builtin or @_requires_frozen unchanged, since this decorator requires the wrapped method to have an extra parameter (cls or self). * bpo-42212: Check if generated files are up-to-date in GitHub Actions (GH-23042) See https: //github.com/python/core-workflow/issues/380 Signed-off-by: Filipe Laíns <lains@archlinux.org> * bpo-35498: Added slice support to PathLib parents attribute. (GH-11165) Added slice support to the `pathlib.Path.parents` sequence. For a `Path` `p`, slices of `p.parents` should return the same thing as slices of `tuple(p.parents)`. * Fix wrong availability for signal.SIGCHLD (#23285) I believe this is a mistake. SIGCHLD is only available on Unix systems, not Windows. * bpo-42360: Add advice to help avoid pickling issues. (GH-23305) * bpo-28002: Roundtrip f-strings with ast.unparse better (#19612) By attempting to avoid backslashes in f-string expressions. We also now proactively raise errors for some backslashes we can't avoid while unparsing FormattedValues Co-authored-by: hauntsaninja <> Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com> Co-authored-by: Batuhan Taskaya <isidentical@gmail.com> * bpo-36876: [c-analyzer tool] Tighten up the results and output. (GH-23431) We also update the "ignored" file with a temporary list of all known globals. * bpo-42407: Use possessive appostrophe in multiprocessing doc (GH-23400) * bpo-42419: Correct 'deprecatations' is What's New 3.9 (GH-23421) * bpo-40791: Make compare_digest more constant-time. (GH-20444) * bpo-40791: Make compare_digest more constant-time. The existing volatile `left`/`right` pointers guarantee that the reads will all occur, but does not guarantee that they will be _used_. So a compiler can still short-circuit the loop, saving e.g. the overhead of doing the xors and especially the overhead of the data dependency between `result` and the reads. That would change performance depending on where the first unequal byte occurs. This change removes that optimization. (This is change #1 from https://bugs.python.org/issue40791 .) * bpo-40550: Fix time-of-check/time-of-action issue in subprocess.Popen.send_signal. (GH-20010) send_signal() now swallows the exception if the process it thought was still alive winds up not to exist anymore (always a plausible race condition despite the checks). Co-authored-by: Gregory P. Smith <greg@krypto.org> * bpo-42412: Fix possible leaks and check arguments in PyType_FromModuleAndSpec() (GH-23410) * There were leaks if Py_tp_bases is used more than once or if some call is failed before setting tp_bases. * There was a crash if the bases argument or the Py_tp_bases slot is not a tuple. * The documentation was not accurate. * bpo-42232: mmap module add Darwin specific madvise options. (GH-23076) * bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446) * bpo-1635741: Port _posixsubprocess module to multiphase init (GH-23406) * bpo-1635741: Port select module to multiphase init (GH-23409) * Clarify that Set._from_iterable is not required to be a classmethod. (GH-23272) * bpo-38443: Check that the specified universal architectures work (GH-22910) As [bpo-38443]() says the error message from configure when specifying --enable-universalsdk with a set of architectures that is not supported by the compiler is not very helpful. This PR explicitly checks if the compiler works and bails out if it doesn't. * bpo-42361: Use Tcl/Tk 8.6.10 when building the installer on recent macOS (GH-23293) Building on older versions, and in particular macOS 10.9 still use Tk 8.6.8 because of build problems on that version of macOS. * bpo-41100: Stripping '-arch arm64' didn't work after all (GH-23280) * bpo-42426: IDLE: Fix reporting offset of the RE error in searchengine (GH-23447) * bpo-41116: Ensure system supplied libraries are found on macOS 11 (GH-23301) On macOS system provided libraries are in a shared library cache and not at their usual location. This PR teaches distutils to search in the SDK, even if there was no "-sysroot" argument in the compiler flags. * bpo-42391: Clarify documentation of TestCase.assertIs (GH-23348) Removing 'evaluate' makes it more consistent with other assertX entries. * bpo-42427: Use the errno attribute of OSError instead of args[0] (GH-23449) * bpo-42423: Accept single base class in PyType_FromModuleAndSpec() (GH-23441) * Doc: fix typo in typing.Type docs (GH-23460) * bpo-42435: Speed up comparison of bytes and bytearray object (GH--23461) * Speed up comparison of bytes objects with non-bytes objects when option -b is specified. * Speed up comparison of bytarray objects with non-buffer object. * bpo-42328: Fix tkinter.ttk.Style.map(). (GH-23300) The function accepts now the representation of the default state as empty sequence (as returned by Style.map()). The structure of the result is now the same on all platform and does not depend on the value of wantobjects. * bpo-28850: Fix PrettyPrinter.format overrides ignored for contents of small containers (GH-22120) * bpo-15450: Allow subclassing of dircmp (GH-23424) (#23424) Co-authored-by: Chris Jerdonek <chris.jerdonek@gmail.com> * Descriptor HowTo: Improve the fidelity of the member object simulation (GH-23475) * Added support for negative indexes to PurePath.parents (GH-21799) This commit also fixes up some of the overlapping documentation changed in bpo-35498, which added support for indexing with slices. Fixes bpo-21041. https://bugs.python.org/issue21041 Co-authored-by: Paul Ganssle <p.ganssle@gmail.com> Co-authored-by: Rémi Lapeyre <remi.lapeyre@henki.fr> * Typo (#23482) * bpo-41100: minor build installer fixes (GH-23480) * bpo-41100: in test_platform, ignore 10.16 (GH-23485) * bpo-42260: Improve error handling in _PyConfig_FromDict (GH-23488) * bpo-42212: smelly.py also checks the dynamic library (GH-23423) The smelly.py script now also checks the Python dynamic library and extension modules, not only the Python static library. Make also the script more verbose: explain what it does. The GitHub Action job now builds Python with the libpython dynamic library. * bpo-42370: Check element before making mouse click in ttk tests (GH-23491) * bpo-42392: Remove loop parameter form asyncio locks and Queue (#23420) Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com> * bpo-40170: Hide impl detail of Py_TRASHCAN_BEGIN macro (GH-23235) The Py_TRASHCAN_BEGIN macro no longer accesses PyTypeObject attributes, but now can get the condition by calling the new private _PyTrash_cond() function which hides implementation details. * Add doctests to the descriptor HowTo (GH-23500) * Doc: Minor fixes (GH-23422) * bpo-42238: Doc: Remove make suspicious from the CI and docs builds. (GH-23313) It probably helped a lot a while back, but may not be as usefull today. We'll continue monitoring it before deletion, so true positives can be migrated to rstlint. * bpo-12800: tarfile: Restore fix from 011525ee9 (GH-21409) Restore fix from 011525ee92eb1c13ad1a62d28725a840e28f8160. * Add more tests to the descriptor howto guide (GH-23506) * bpo-42202: Store func annotations as a tuple (GH-23316) Reduce memory footprint and improve performance of loading modules having many func annotations. >>> sys.getsizeof({"a":"int","b":"int","return":"int"}) 232 >>> sys.getsizeof(("a","int","b","int","return","int")) 88 The tuple is converted into dict on the fly when `func.__annotations__` is accessed first. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Inada Naoki <songofacandy@gmail.com> * bpo-42392: Improve removal of *loop* parameter in asyncio primitives (GH-23499) * Update code after merge review from 1st1 * Use a sentinel approach for loop parameter Remove unnecessary _get_running_loop patching * Use more clear function name (_verify_parameter_is_marker -> _verify_no_loop) * Add init method to _LoopBoundMixin to check that loop param wasn't used * bpo-42299: Remove formatter module (GH-23476) * bpo-41818: Updated tests for the standard pty library (GH-22962) * Typo: fix inverted sense of statement (GH-23288) Looks like a "not" was inadvertently omitted in commit e6a7ea4. Classmethods are useful when data stored in specific instances are *not* needed. Automerge-Triggered-By: GH:JulienPalard * bpo-41818: test_openpty succeed on Gentoo, don't expect to fail on this platform (GH-23514) * bpo-42392: Remove loop parameter from asyncio.streams (GH-23517) * bpo-41332: Added missing connect_accepted_socket() to AbstractEventLoop (GH-21533) Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com> Co-authored-by: Kyle Stanley <aeros167@gmail.com> * Document optional 'task'/'asyncgen' fields in call_exception_handler (#21735) * bpo-17852: Doc: Fix the tutorial about closing files (GH-23135) Co-authored-by: Inada Naoki <songofacandy@gmail.com> * bpo-41818: Make test_openpty() avoid unexpected success due to number of rows and/or number of columns being == 0. (GH-23526) * bpo-42474: test TracebackException comparison to non-equal instances (GH-23522) Closes bpo-42474 * bpo-42452: Improve colorsys.rgb_to_hls code (GH-23306) Cache repeated sum and difference to make code slightly faster and easier to read. * bpo-42392: Remove loop parameter from asyncio.tasks and asyncio.subprocess (GH-23521) * bpo-41241: Unnecessary Type casting in 'if condition' (GH-21396) This is my first issue! So, if there's anything wrong, please tell me! Also, thank you always for all the contributors! Automerge-Triggered-By: GH:asvetlov * bpo-34215: Clarify IncompleteReadError message when "expected" is None (GH-21925) Co-Authored-By: Tyler Bell <mrbell321@gmail.com> * bpo-42489: Fix the signature for list.sort() in the tutorial (GH-23538) * bpo-31904: Fix test_os.test_getcwd_long_path() failure for VxWorks (GH-20256) * bpo-41818: Fix test_master_read() so that it succeeds on all platforms that either raise OSError or return b"" upon reading from master (GH-23536) Signed-off-by: Soumendra Ganguly <soumendraganguly@gmail.com> * Fix multiprocessing markup (GH-23525) * Fix dis markup (GH-23524) * Fix an error in the news entry for _posixsubprocess multiphase init (GH-23516) Commit 035deee265c7fb227ddc87222fa48761231d8bd7 converted the _posixsubprocess module to multiphase initialization, but the news entry mentions the _posixshmem module. * skip test_getaddrinfo_ipv6_scopeid_symbolic and test_getnameinfo_ipv6_scopeid_symbolic on VxWorks (GH-23518) * skip test_test of test_mailcap on VxWorks (GH-23507) * bpo-31904: add shell requirement for test_pipes (GH-23489) VxWorks has no user space shell provided so it can't support pipes module. Also add shell requirement for running test_pipes. * bpo-31904: skip some tests related to fifo on VxWorks (GH-23473) On VxWork RTOS, FIFO must be created under directory "/fifos/". Some test cases related to fifo is invalid on VxWorks. So skip them. * bpo-31904: remove libnet dependency from detect_socket() for VxWorks (GH-23394) Previously on VxWorks compiling socket extension module needs the libnet to link. Now VxWorks has moved the replied functions to libc. So removing libnet from setup.py. * bpo-39096: Improve description of 'e', 'f' and 'g' presentation types (#23537) * Improve description of 'e', 'f' and 'g' presentation types * Drop the 'E' from Scientific 'E' notation; remove >= 0 qualifications * Fix false statement that the alternate form is valid for Decimal * Nitpick: remove the Harvard/Oxford comma * Add note that the decimal point is also removed if no digits follow it, except in alternate form * bpo-42392: Remove deprecated loop parameter from docs (GH-23552) * bpo-42406: Fix whichmodule() with multiprocessing (GH-23403) * bpo-42406: Fix whichmodule() with multiprocessing Signed-off-by: Renato L. de F. Cunha <renatoc@br.ibm.com> Co-authored-by: Gregory P. Smith <greg@krypto.org> * bpo-42450: Minor updates to the itertools recipes (GH-23555) Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> Co-authored-by: Inada Naoki <songofacandy@gmail.com> Co-authored-by: Dong-hee Na <donghee.na@python.org> Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com> Co-authored-by: kj <28750310+Fidget-Spinner@users.noreply.github.com> Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: MARUYAMA Norihiro <norihiro.maruyama@gmail.com> Co-authored-by: Jason R. Coombs <jaraco@jaraco.com> Co-authored-by: Tal Einat <taleinat+github@gmail.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Joongi Kim <joongi@lablup.com> Co-authored-by: Jakub Stasiak <jakub@stasiak.at> Co-authored-by: Julien Danjou <julien@danjou.info> Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> Co-authored-by: Irit Katriel <iritkatriel@yahoo.com> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Jakub Kulík <Kulikjak@gmail.com> Co-authored-by: Pablo Galindo <pablogsal@gmail.com> Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no> Co-authored-by: Petr Viktorin <encukou@gmail.com> Co-authored-by: Matthew Suozzo <matthew.suozzo@gmail.com> Co-authored-by: Steve Dower <steve.dower@python.org> Co-authored-by: Mario Corchero <mcorcherojim@bloomberg.net> Co-authored-by: Mohamed Koubaa <koubaa.m@gmail.com> Co-authored-by: serge-sans-paille <serge.guelton@telecom-bretagne.eu> Co-authored-by: Kazantcev Andrey <45011689+heckad@users.noreply.github.com> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: vabr-g <vabr@google.com> Co-authored-by: Zackery Spytz <zspytz@gmail.com> Co-authored-by: Matthias Bussonnier <bussonniermatthias@gmail.com> Co-authored-by: Hai Shi <shihai1992@gmail.com> Co-authored-by: Andre Delfino <adelfino@gmail.com> Co-authored-by: Brett Cannon <brett@python.org> Co-authored-by: Julien Palard <julien@palard.fr> Co-authored-by: Nick Coghlan <ncoghlan@gmail.com> Co-authored-by: Don Kirkby <donkirkby@users.noreply.github.com> Co-authored-by: Ammar Askar <ammar@ammaraskar.com> Co-authored-by: Tom Gringauz <tomgrin10@gmail.com> Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com> Co-authored-by: Yash Shete <universeyash4@gmail.com> Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com> Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com> Co-authored-by: Ikko Ashimine <eltociear@gmail.com> Co-authored-by: Kyle Stanley <aeros167@gmail.com> Co-authored-by: Michal Čihař <michal@cihar.com> Co-authored-by: Vladimir Matveev <vladima@fb.com> Co-authored-by: Diogo Dutra <diogodutradamata@gmail.com> Co-authored-by: Mark Shannon <mark@hotpy.org> Co-authored-by: Joshua Root <jmr@macports.org> Co-authored-by: Christian Heimes <christian@python.org> Co-authored-by: Jürgen Gmach <juergen.gmach@googlemail.com> Co-authored-by: Thomas Grainger <tagrain@gmail.com> Co-authored-by: Dominik1123 <15989985+Dominik1123@users.noreply.github.com> Co-authored-by: Kevin Adler <kadler@us.ibm.com> Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com> Co-authored-by: Miro Hrončok <miro@hroncok.cz> Co-authored-by: David CARLIER <devnexen@gmail.com> Co-authored-by: Filipe Laíns <lains@archlinux.org> Co-authored-by: Joshua Cannon <joshua.cannon@ni.com> Co-authored-by: Zhang Maiyun <myzhang1029@hotmail.com> Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com> Co-authored-by: Shantanu <hauntsaninja@users.noreply.github.com> Co-authored-by: Batuhan Taskaya <isidentical@gmail.com> Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com> Co-authored-by: ArioA <ArioA@users.noreply.github.com> Co-authored-by: Quentin Hibon <qh.public@yahoo.com> Co-authored-by: Devin Jeanpierre <jeanpierreda@google.com> Co-authored-by: Gregory P. Smith <greg@krypto.org> Co-authored-by: Richard Levasseur <richardlev@gmail.com> Co-authored-by: Ram Rachum <ram@rachum.com> Co-authored-by: John Belmonte <john@neggie.net> Co-authored-by: Nick Crews <nicholas.b.crews@gmail.com> Co-authored-by: Chris Jerdonek <chris.jerdonek@gmail.com> Co-authored-by: Yaroslav Pankovych <31005942+ypankovych@users.noreply.github.com> Co-authored-by: Paul Ganssle <p.ganssle@gmail.com> Co-authored-by: Rémi Lapeyre <remi.lapeyre@henki.fr> Co-authored-by: Jesús Cea <jcea@jcea.es> Co-authored-by: Ned Deily <nad@python.org> Co-authored-by: Soumendra Ganguly <67527439+8vasu@users.noreply.github.com> Co-authored-by: basak <robie@justgohome.co.uk> Co-authored-by: Alex Grönholm <alex.gronholm@nextday.fi> Co-authored-by: Shane Harvey <shnhrv@gmail.com> Co-authored-by: Volker-Weissmann <39418860+Volker-Weissmann@users.noreply.github.com> Co-authored-by: Julien Jerphanion <git@jjerphan.xyz> Co-authored-by: Wansoo Kim <rladhkstn8@gmail.com> Co-authored-by: Tyler Bell <mrbell321@gmail.com> Co-authored-by: pxinwr <peixing.xin@windriver.com> Co-authored-by: Mark Dickinson <mdickinson@enthought.com> Co-authored-by: Renato Cunha <renatocunha@acm.org>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
https://bugs.python.org/issue41625