]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
5 years agobpo-39573: Convert Py_TYPE() and Py_SIZE() back to macros (GH-23366)
Victor Stinner [Wed, 18 Nov 2020 17:48:06 +0000 (18:48 +0100)] 
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;".

5 years agobpo-42336: Improve PCbuild batch files (GH-23275)
Steve Dower [Wed, 18 Nov 2020 17:24:36 +0000 (17:24 +0000)] 
bpo-42336: Improve PCbuild batch files (GH-23275)

5 years agobpo-40998: Address compiler warnings found by ubsan (GH-20929)
Christian Heimes [Wed, 18 Nov 2020 15:38:53 +0000 (16:38 +0100)] 
bpo-40998: Address compiler warnings found by ubsan (GH-20929)

Signed-off-by: Christian Heimes <christian@python.org>
Automerge-Triggered-By: GH:tiran
5 years agobpo-1635741: Port _hashlib to multiphase initialization (GH-23358)
Christian Heimes [Wed, 18 Nov 2020 15:12:13 +0000 (16:12 +0100)] 
bpo-1635741: Port _hashlib to multiphase initialization (GH-23358)

Signed-off-by: Christian Heimes <christian@python.org>
5 years agobpo-1635741: Port symtable module to multiphase initialization (GH-23361)
Christian Heimes [Wed, 18 Nov 2020 15:03:51 +0000 (16:03 +0100)] 
bpo-1635741: Port symtable module to multiphase initialization (GH-23361)

Signed-off-by: Christian Heimes <christian@python.org>
5 years agobpo-40998: Fix a refleak in create_filter() (GH-23365)
Victor Stinner [Wed, 18 Nov 2020 14:57:10 +0000 (15:57 +0100)] 
bpo-40998: Fix a refleak in create_filter() (GH-23365)

5 years agobpo-42398: Fix "make regen-all" race condition (GH-23362)
Victor Stinner [Wed, 18 Nov 2020 14:36:27 +0000 (15:36 +0100)] 
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.

5 years agobpo-41561: skip test_min_max_version_mismatch (GH-22308)
Christian Heimes [Wed, 18 Nov 2020 12:10:53 +0000 (13:10 +0100)] 
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>
5 years agobpo-40656: Clean up detect_socket() (GH-20148)
Erlend Egeberg Aasland [Wed, 18 Nov 2020 00:08:58 +0000 (01:08 +0100)] 
bpo-40656: Clean up detect_socket() (GH-20148)

5 years agobpo-42395: Add aclosing to __all__ (GH-23356)
Tom Gringauz [Tue, 17 Nov 2020 23:18:05 +0000 (01:18 +0200)] 
bpo-42395: Add aclosing to __all__ (GH-23356)

Automerge-Triggered-By: GH:asvetlov
5 years agobpo-42396: Add a whatsnew entry about async contextlib.nullcontext (GH-23357)
Tom Gringauz [Tue, 17 Nov 2020 22:58:35 +0000 (00:58 +0200)] 
bpo-42396: Add a whatsnew entry about async contextlib.nullcontext (GH-23357)

Automerge-Triggered-By: GH:asvetlov
5 years agobpo-41713: Port _signal module to multi-phase init (GH-23355)
Victor Stinner [Tue, 17 Nov 2020 22:28:25 +0000 (23:28 +0100)] 
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>
5 years agobpo-41625: Skip os.splice() tests on AIX (GH-23354)
Victor Stinner [Tue, 17 Nov 2020 22:08:10 +0000 (23:08 +0100)] 
bpo-41625: Skip os.splice() tests on AIX (GH-23354)

On AIX, splice() only works with a socket, whereas the test uses a
pipe.

5 years agobpo-41686: Move _Py_RestoreSignals() to signalmodule.c (GH-23353)
Victor Stinner [Tue, 17 Nov 2020 21:55:30 +0000 (22:55 +0100)] 
bpo-41686: Move _Py_RestoreSignals() to signalmodule.c (GH-23353)

5 years agoFix: Docstrings hidden by slots. (GH-23352)
Julien Palard [Tue, 17 Nov 2020 21:50:23 +0000 (22:50 +0100)] 
Fix: Docstrings hidden by slots. (GH-23352)

Some `__slots__` where before the docstring, hiding them.

5 years agobpo-41625: Add a guard for Linux for splice() constants in the os module (GH-23350)
Pablo Galindo [Tue, 17 Nov 2020 19:57:49 +0000 (19:57 +0000)] 
bpo-41625: Add a guard for Linux for splice() constants in the os module (GH-23350)

5 years agobpo-41625: Specify that Linux >= 2.6.17 *and* glibc >= 2.5 are requir… (GH-23351)
Pablo Galindo [Tue, 17 Nov 2020 19:57:03 +0000 (19:57 +0000)] 
bpo-41625: Specify that Linux >= 2.6.17 *and* glibc >= 2.5 are requir… (GH-23351)

…ed for splice()

5 years agobpo-42349: Compiler clean up. More yak-shaving for PEP 626. (GH-23267)
Mark Shannon [Tue, 17 Nov 2020 19:30:14 +0000 (19:30 +0000)] 
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.

5 years agobpo-41625: Add versionadded to os.splice() constants (GH-23340)
Pablo Galindo [Tue, 17 Nov 2020 18:13:50 +0000 (18:13 +0000)] 
bpo-41625: Add versionadded to os.splice() constants (GH-23340)

5 years agobpo-41686: Refactor signal_exec() (GH-23346)
Victor Stinner [Tue, 17 Nov 2020 17:57:32 +0000 (18:57 +0100)] 
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().

5 years agobpo-41686: Always create the SIGINT event on Windows (GH-23344)
Victor Stinner [Tue, 17 Nov 2020 17:15:20 +0000 (18:15 +0100)] 
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.

5 years agobpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163)
Erlend Egeberg Aasland [Tue, 17 Nov 2020 15:55:12 +0000 (16:55 +0100)] 
bpo-42264: Deprecate sqlite3.OptimizedUnicode (GH-23163)

5 years agobpo-41713: Remove PyOS_InitInterrupts() function (GH-23342)
Victor Stinner [Tue, 17 Nov 2020 15:22:23 +0000 (16:22 +0100)] 
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()

5 years agobpo-40637: Don't test builtin PBKDF2 without builtin hashes (GH-20980)
Christian Heimes [Tue, 17 Nov 2020 14:40:35 +0000 (15:40 +0100)] 
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>
5 years agobpo-41861, _sqlite3 : Add NEWS entry and rename variables (GH-23337)
Erlend Egeberg Aasland [Tue, 17 Nov 2020 12:52:54 +0000 (13:52 +0100)] 
bpo-41861, _sqlite3 : Add NEWS entry and rename variables (GH-23337)

5 years agobpo-42345: Fix three issues with typing.Literal parameters (GH-23294)
Yurii Karabas [Tue, 17 Nov 2020 02:23:19 +0000 (04:23 +0200)] 
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.

5 years agobpo-42381: Allow walrus in set literals and set comprehensions (GH-23332)
Pablo Galindo [Tue, 17 Nov 2020 01:17:12 +0000 (01:17 +0000)] 
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

5 years agobpo-41625: Expose the splice() system call in the os module (GH-21947)
Pablo Galindo [Tue, 17 Nov 2020 00:00:38 +0000 (00:00 +0000)] 
bpo-41625: Expose the splice() system call in the os module (GH-21947)

5 years agoAdd GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327)
Pablo Galindo [Mon, 16 Nov 2020 23:59:55 +0000 (23:59 +0000)] 
Add GCC pragmas to silence compiler warning about ffi_prep_closure (GH-23327)

5 years agobpo-42120: Remove macro defining copysign to _copysign on Windows (GH-23326)
Steve Dower [Mon, 16 Nov 2020 23:22:42 +0000 (23:22 +0000)] 
bpo-42120: Remove macro defining copysign to _copysign on Windows (GH-23326)

5 years agobpo-42316: Allow unparenthesized walrus operator in indexes (GH-23317)
Lysandros Nikolaou [Mon, 16 Nov 2020 23:09:35 +0000 (01:09 +0200)] 
bpo-42316: Allow unparenthesized walrus operator in indexes (GH-23317)

5 years agobpo-42374: Allow unparenthesized walrus in genexps (GH-23319)
Lysandros Nikolaou [Mon, 16 Nov 2020 23:08:35 +0000 (01:08 +0200)] 
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
5 years agobpo-38506: Fix the Windows py.exe launcher's misordering of 3.10 (GH-18307)
Zackery Spytz [Mon, 16 Nov 2020 21:32:35 +0000 (14:32 -0700)] 
bpo-38506: Fix the Windows py.exe launcher's misordering of 3.10 (GH-18307)

5 years agobpo-40939: Document removal of the old parser in 3.10 whatsnew (GH-23321)
Lysandros Nikolaou [Mon, 16 Nov 2020 18:46:37 +0000 (20:46 +0200)] 
bpo-40939: Document removal of the old parser in 3.10 whatsnew (GH-23321)

Automerge-Triggered-By: GH:lysnikolaou
5 years agobpo-42087: Remove support for AIX 5.3 and below (GH-22830)
Kevin Adler [Mon, 16 Nov 2020 15:16:10 +0000 (09:16 -0600)] 
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.

5 years agobpo-37205: time.time() cannot fail with fatal error (GH-23314)
Victor Stinner [Mon, 16 Nov 2020 15:08:05 +0000 (16:08 +0100)] 
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.

5 years agobpo-42350: Fix Thread._reset_internal_locks() (GH-23268)
Victor Stinner [Mon, 16 Nov 2020 14:20:34 +0000 (15:20 +0100)] 
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.

5 years agobpo-37205: time.perf_counter() and time.monotonic() are system-wide (GH-23284)
Victor Stinner [Mon, 16 Nov 2020 12:21:45 +0000 (13:21 +0100)] 
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.

5 years agobpo-42153 Fix link to IMAP documents in imaplib.rst (GH-23297)
Yash Shete [Mon, 16 Nov 2020 05:02:35 +0000 (10:32 +0530)] 
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.

5 years agobpo-42332: Add weakref slot to types.GenericAlias (GH-23250)
kj [Mon, 16 Nov 2020 03:27:23 +0000 (11:27 +0800)] 
bpo-42332: Add weakref slot to types.GenericAlias (GH-23250)

Automerge-Triggered-By: GH:gvanrossum
5 years agoMore updates to the descriptor howto guide (GH-23238)
Raymond Hettinger [Mon, 16 Nov 2020 01:44:28 +0000 (17:44 -0800)] 
More updates to the descriptor howto guide (GH-23238)

5 years agobpo-42317: Improve docs of typing.get_args concerning Union (GH-23254)
Dominik1123 [Mon, 16 Nov 2020 01:30:55 +0000 (02:30 +0100)] 
bpo-42317: Improve docs of typing.get_args concerning Union (GH-23254)

5 years agobpo-42318: Fix support of non-BMP characters in Tkinter on macOS (GH-23281)
Serhiy Storchaka [Sun, 15 Nov 2020 16:16:59 +0000 (18:16 +0200)] 
bpo-42318: Fix support of non-BMP characters in Tkinter on macOS (GH-23281)

5 years agobpo-42351: Avoid error when opening header with non-UTF8 encoding (GH-23279)
Ronald Oussoren [Sat, 14 Nov 2020 15:07:47 +0000 (16:07 +0100)] 
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.

5 years agobpo-41832: Restore note about NULL in PyType_Slot.pfunc (GH-23243)
Hai Shi [Sat, 14 Nov 2020 12:03:42 +0000 (20:03 +0800)] 
bpo-41832: Restore note about NULL in PyType_Slot.pfunc (GH-23243)

5 years agofix typo in ThreadedChildWatcher docs (GH-23277)
Thomas Grainger [Sat, 14 Nov 2020 12:02:15 +0000 (12:02 +0000)] 
fix typo in ThreadedChildWatcher docs (GH-23277)

5 years agobpo-42131: Add PEP 451-related methods to zipimport (GH-23187)
Brett Cannon [Fri, 13 Nov 2020 23:14:58 +0000 (15:14 -0800)] 
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>
5 years agobpo-40754: Adds _testinternalcapi to Windows installer for test suite (GH-23271)
Steve Dower [Fri, 13 Nov 2020 22:24:36 +0000 (22:24 +0000)] 
bpo-40754: Adds _testinternalcapi to Windows installer for test suite (GH-23271)

5 years agobpo-41001: Add os.eventfd() (#20930)
Christian Heimes [Fri, 13 Nov 2020 18:48:52 +0000 (19:48 +0100)] 
bpo-41001: Add os.eventfd() (#20930)

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
5 years agobpo-42344: Improve pseudo implementation for SimpleNamespace (GH-23264)
Jürgen Gmach [Fri, 13 Nov 2020 18:15:37 +0000 (19:15 +0100)] 
bpo-42344: Improve pseudo implementation for SimpleNamespace (GH-23264)

5 years agobpo-40968: Send http/1.1 ALPN extension (#20959)
Christian Heimes [Fri, 13 Nov 2020 15:37:52 +0000 (16:37 +0100)] 
bpo-40968: Send http/1.1 ALPN extension (#20959)

Signed-off-by: Christian Heimes <christian@python.org>
5 years agobpo-42042: Use ids attribute instead of names attribute (GH-22739)
Dong-hee Na [Fri, 13 Nov 2020 15:15:17 +0000 (00:15 +0900)] 
bpo-42042: Use ids attribute instead of names attribute (GH-22739)

5 years agobpo-41617: Add _Py__has_builtin() macro (GH-23260)
Victor Stinner [Fri, 13 Nov 2020 14:38:17 +0000 (15:38 +0100)] 
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>
5 years agobpo-42296: On Windows, fix CTRL+C regression (GH-23257)
Victor Stinner [Fri, 13 Nov 2020 13:44:42 +0000 (14:44 +0100)] 
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.

5 years agobpo-38823: Fix compiler warning in _ctypes on Windows (GH-23258)
Victor Stinner [Fri, 13 Nov 2020 13:44:11 +0000 (14:44 +0100)] 
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 *'

5 years agobpo-42246: Fix memory leak in compiler (GH-23256)
Mark Shannon [Fri, 13 Nov 2020 12:53:53 +0000 (12:53 +0000)] 
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.

5 years agobpo-42246: Eliminate jumps to exit blocks by copying those blocks. (#23251)
Mark Shannon [Thu, 12 Nov 2020 19:49:33 +0000 (19:49 +0000)] 
bpo-42246: Eliminate jumps to exit blocks by copying those blocks. (#23251)

* Compiler: eliminate jumps to short exit blocks by copying.

5 years agobpo-42308: Add threading.__excepthook__ (GH-23218)
Mario Corchero [Thu, 12 Nov 2020 17:27:44 +0000 (18:27 +0100)] 
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.

5 years agobpo-38823: Always build _ctypes with wchar_t (GH-23248)
Victor Stinner [Thu, 12 Nov 2020 14:38:13 +0000 (15:38 +0100)] 
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.

5 years agobpo-42260: Initialize time and warnings earlier at startup (GH-23249)
Victor Stinner [Thu, 12 Nov 2020 14:14:13 +0000 (15:14 +0100)] 
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.

5 years agobpo-38823: Fix refleaks in _ctypes extension init (GH-23247)
Victor Stinner [Thu, 12 Nov 2020 13:09:57 +0000 (14:09 +0100)] 
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.

5 years agoBump magic number. (GH-23245)
Mark Shannon [Thu, 12 Nov 2020 10:42:44 +0000 (10:42 +0000)] 
Bump magic number. (GH-23245)

5 years agobpo-42237: Fix os.sendfile() on illumos (GH-23154)
Jakub Stasiak [Thu, 12 Nov 2020 09:49:30 +0000 (10:49 +0100)] 
bpo-42237: Fix os.sendfile() on illumos (GH-23154)

5 years agobpo-42246: Partial implementation of PEP 626. (GH-23113)
Mark Shannon [Thu, 12 Nov 2020 09:43:29 +0000 (09:43 +0000)] 
bpo-42246: Partial implementation of PEP 626. (GH-23113)

* Implement new line number table format, as defined in PEP 626.

5 years agoFix memory leak introduced by GH-22780 (GH-23237)
Andrew Svetlov [Wed, 11 Nov 2020 15:48:53 +0000 (17:48 +0200)] 
Fix memory leak introduced by GH-22780 (GH-23237)

5 years agobpo-40170: Fix PyType_Ready() refleak on static type (GH-23236)
Victor Stinner [Wed, 11 Nov 2020 13:27:32 +0000 (14:27 +0100)] 
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).

5 years agobpo-40932: Note security caveat of shlex.quote on Windows (GH-21502)
Ammar Askar [Wed, 11 Nov 2020 07:29:56 +0000 (02:29 -0500)] 
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.

5 years agobpo-39411: pyclbr rewrite on AST (#18103)
Batuhan Taskaya [Wed, 11 Nov 2020 07:14:12 +0000 (10:14 +0300)] 
bpo-39411: pyclbr rewrite on AST (#18103)

- Rewrite pyclbr using an AST processor
- Add is_async to the pyclbr.Function

5 years agobpo-1635741: Fix typo in PyModule_AddObjectRef() doc (GH-23234)
Victor Stinner [Wed, 11 Nov 2020 00:52:26 +0000 (01:52 +0100)] 
bpo-1635741: Fix typo in PyModule_AddObjectRef() doc (GH-23234)

It is similar to PyModule_AddObject(), not to itself.

5 years agobpo-42294: Grammar fixes in doc glossary strong/weak refs (GH-23227)
kj [Tue, 10 Nov 2020 23:56:55 +0000 (07:56 +0800)] 
bpo-42294: Grammar fixes in doc glossary strong/weak refs (GH-23227)

5 years agobpo-42140: Improve asyncio.wait function (GH-22938)
Diogo Dutra [Tue, 10 Nov 2020 22:12:52 +0000 (19:12 -0300)] 
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
5 years agobpo-41073: PyType_GetSlot() can now accept static types. (GH-21931)
Hai Shi [Tue, 10 Nov 2020 20:53:46 +0000 (04:53 +0800)] 
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
5 years agobpo-42260: Fix _PyConfig_Read() if compute_path_config=0 (GH-23220)
Victor Stinner [Tue, 10 Nov 2020 20:10:22 +0000 (21:10 +0100)] 
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.

5 years agobpo-42085: Introduce dedicated entry in PyAsyncMethods for sending values (#22780)
Vladimir Matveev [Tue, 10 Nov 2020 20:09:55 +0000 (12:09 -0800)] 
bpo-42085: Introduce dedicated entry in PyAsyncMethods for sending values (#22780)

5 years agobpo-42014: shutil.rmtree: call onerror with correct function (GH-22585)
Michal Čihař [Tue, 10 Nov 2020 16:06:02 +0000 (17:06 +0100)] 
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
5 years agoUpdate whatsnew for 3.10 release about addition of contextlib.aclosing (GH-23217)
Joongi Kim [Tue, 10 Nov 2020 15:19:11 +0000 (00:19 +0900)] 
Update whatsnew for 3.10 release about addition of contextlib.aclosing (GH-23217)

5 years agobpo-42183: Fix a stack overflow error for asyncio Task or Future repr() (GH-23020)
Andrew Svetlov [Tue, 10 Nov 2020 13:58:31 +0000 (15:58 +0200)] 
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>
5 years agobpo-42171: Add PEP573-related items to the limited API (GH-23009)
Petr Viktorin [Tue, 10 Nov 2020 13:47:31 +0000 (14:47 +0100)] 
bpo-42171: Add PEP573-related items to the limited API (GH-23009)

5 years agoFix typo in test_array.py (GH-23189)
Ikko Ashimine [Tue, 10 Nov 2020 12:42:36 +0000 (21:42 +0900)] 
Fix typo in test_array.py (GH-23189)

5 years agobpo-42260: Compute the path config in the main init (GH-23211)
Victor Stinner [Tue, 10 Nov 2020 12:21:52 +0000 (13:21 +0100)] 
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.

5 years agoFix typo in unicodeobject.c (GH-23180)
Ikko Ashimine [Tue, 10 Nov 2020 05:57:34 +0000 (14:57 +0900)] 
Fix typo in unicodeobject.c (GH-23180)

exeeds -> exceeds

Automerge-Triggered-By: GH:Mariatta
5 years agobpo-36310: Allow pygettext.py to detect calls to gettext in f-strings. (GH-19875)
jack1142 [Mon, 9 Nov 2020 22:50:45 +0000 (23:50 +0100)] 
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>
5 years agobpo-41712: Avoid runaway regex match in upload scripts (GH-23166)
Yash Shete [Mon, 9 Nov 2020 17:38:09 +0000 (23:08 +0530)] 
bpo-41712: Avoid runaway regex match in upload scripts (GH-23166)

5 years agobpo-42294: Add borrowed/strong reference to doc glossary (GH-23206)
Victor Stinner [Mon, 9 Nov 2020 12:40:47 +0000 (13:40 +0100)] 
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.

5 years agobpo-41543: contextlib.nullcontext can fill in for an async context manager (GH-21870)
Tom Gringauz [Mon, 9 Nov 2020 12:34:07 +0000 (14:34 +0200)] 
bpo-41543: contextlib.nullcontext can fill in for an async context manager (GH-21870)

Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
5 years agobpo-40624: Add support for the XPath != operator in xml.etree (GH-22147)
Ammar Askar [Mon, 9 Nov 2020 07:02:39 +0000 (02:02 -0500)] 
bpo-40624: Add support for the XPath != operator in xml.etree (GH-22147)

5 years agobpo-42233: Add union type expression support for GenericAlias and fix de-duplicating...
kj [Mon, 9 Nov 2020 04:00:13 +0000 (12:00 +0800)] 
bpo-42233: Add union type expression support for GenericAlias and fix de-duplicating of GenericAlias (GH-23077)

5 years agobpo-41754: Ignore NotADirectoryError in invocation of xdg-settings (GH-23075)
Ronald Oussoren [Sun, 8 Nov 2020 09:46:55 +0000 (10:46 +0100)] 
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.

5 years agobpo-41100: Support macOS 11 and Apple Silicon (GH-22855)
Ronald Oussoren [Sun, 8 Nov 2020 09:05:27 +0000 (10:05 +0100)] 
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.

5 years agoMinor wording change in concurrent.futures. (GH-23194)
Don Kirkby [Sun, 8 Nov 2020 09:01:23 +0000 (01:01 -0800)] 
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.

5 years agobpo-40077: Convert _queuemodule to use heap types (GH-23136)
Erlend Egeberg Aasland [Sat, 7 Nov 2020 19:18:37 +0000 (20:18 +0100)] 
bpo-40077: Convert _queuemodule to use heap types (GH-23136)

@vstinner / @corona10, would you mind reviewing this?

5 years agobpo-42282: Fold constants inside named expressions (GH-23190)
Nick Coghlan [Sat, 7 Nov 2020 12:35:17 +0000 (22:35 +1000)] 
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

5 years agobpo-41028: Doc: Move switchers to docsbuild-scripts. (GH-20969)
Julien Palard [Sat, 7 Nov 2020 11:28:31 +0000 (12:28 +0100)] 
bpo-41028: Doc: Move switchers to docsbuild-scripts. (GH-20969)

5 years agobpo-42133: update parts of the stdlib to fall back to `__spec__.loader` when `__loade...
Brett Cannon [Sat, 7 Nov 2020 02:45:56 +0000 (18:45 -0800)] 
bpo-42133: update parts of the stdlib to fall back to `__spec__.loader` when `__loader__` is missing (#22929)

5 years agoRemove outdated reference to pywin32 from platform module (GH-22005)
Andre Delfino [Fri, 6 Nov 2020 18:58:14 +0000 (15:58 -0300)] 
Remove outdated reference to pywin32 from platform module (GH-22005)

5 years agobpo-41832: PyType_FromModuleAndSpec() now accepts NULL tp_doc (GH-23123)
Hai Shi [Fri, 6 Nov 2020 16:04:47 +0000 (00:04 +0800)] 
bpo-41832: PyType_FromModuleAndSpec() now accepts NULL tp_doc (GH-23123)

5 years agoMinor grammar edits for the descriptor howto guide (GH-#23175)
Raymond Hettinger [Fri, 6 Nov 2020 09:30:17 +0000 (01:30 -0800)] 
Minor grammar edits for the descriptor howto guide (GH-#23175)

5 years agobpo-42179: Doc/tutorial: Remove mention of __cause__ (GH-23162)
Inada Naoki [Fri, 6 Nov 2020 02:45:01 +0000 (11:45 +0900)] 
bpo-42179: Doc/tutorial: Remove mention of __cause__ (GH-23162)

5 years agobpo-26389: Allow passing an exception object in the traceback module (GH-22610)
Zackery Spytz [Thu, 5 Nov 2020 22:18:44 +0000 (15:18 -0700)] 
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>
5 years agobpo-42260: PyConfig_Read() only parses argv once (GH-23168)
Victor Stinner [Thu, 5 Nov 2020 17:58:07 +0000 (18:58 +0100)] 
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.