Commit Graph

28543 Commits

Author SHA1 Message Date
Lipták Attila (Flash) cfbc841ef3
gh-123621: Fix `datamodel.rst` with proper `dict` notation (#123648) 2024-09-03 22:52:00 +03:00
Shaygan Hooshyari 68fe5758bf
gh-123579: Document exclamation token (#123612) 2024-09-03 16:49:38 +02:00
Victor Stinner ef9d54703f
gh-107954, PEP 741: Add PyInitConfig C API (#123502)
Add Doc/c-api/config.rst documentation.
2024-09-03 12:33:49 +00:00
CBerJun 9e079c220b
gh-123580: Fix `signed_number` token in documentation (GH-123582)
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
2024-09-03 10:01:26 +02:00
Yorik Hansen 9684f40b9f
gh-123430: Add dark mode support to pages generated by http.server (#123475)
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2024-09-03 09:32:11 +03:00
Victor Stinner 33b790978d
gh-107954, PEP 741: Add PyConfig_Get()/Set() functions (#123472)
Add PyConfig_Get(), PyConfig_GetInt(), PyConfig_Set() and
PyConfig_Names() functions to get and set the current runtime Python
configuration.

Add visibility and "sys spec" to config and preconfig specifications.

_PyConfig_AsDict() now converts PyConfig.xoptions as a dictionary.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-09-02 23:25:08 +02:00
Nice Zombies 22fdb8cf89
gh-118508: Clarify which characters are matched by `\s` (#119155)
Clarify re syntax
2024-09-02 07:48:15 -04:00
sobolevn c3ed775899
gh-123570: Add link to `weakref.ref` from `weakref_slot` docs in `dataclasses` (#123571) 2024-09-02 09:58:38 +03:00
Rafael Fontenelle 9a32a2588e
gh-109975: Remove dangling angle bracket from 3.13.rst (#123589)
Remove dangling angle bracket from 3.13.rst
2024-09-02 07:57:56 +03:00
Raymond Hettinger e3f76e5cfb
Remove irrelevant detail from example code. (gh-123587) 2024-09-01 20:04:33 -05:00
Raymond Hettinger cb6d25011e
Simplify Property() recipe to focus on the essentials (gh-123585) 2024-09-01 17:49:38 -05:00
sobolevn 75e72822a3
gh-91126: Docs and tests for slotted dataclasses with `__init_subclass__` (#123342) 2024-09-01 13:25:34 +03:00
jlallas384 bac0e115b8
gh-123550: Fix code snippet of `BUILD_TUPLE` in `dis` docs (#123551) 2024-09-01 07:11:40 +01:00
Adam Turner 0ff59d707c
GH-109975: Copyedit 3.13 What's New: Removals (#123529)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-09-01 05:41:17 +00:00
Aarni Koskela 0b6acfee04
gh-123494: Improve documentation for ``webbrowser`` return types (#123495)
Document the return value for ``webbrowser.open*()``.
2024-09-01 06:17:03 +01:00
Wei-Hsiang (Matt) Wang cf472577e2
gh-123517: Remove unnecessary ``:meth:`` parentheses (#123518) 2024-09-01 05:59:42 +01:00
Maciej Olko 5332d989af
gh-123407: Enable translating literal and code blocks (#123408) 2024-08-31 07:31:36 +01:00
Victor Stinner d8e69b2c1b
gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
Victor Stinner 3d60dfbe17
gh-121645: Add PyBytes_Join() function (#121646)
* Replace _PyBytes_Join() with PyBytes_Join().
* Keep _PyBytes_Join() as an alias to PyBytes_Join().
2024-08-30 12:57:33 +00:00
Wei-Hsiang (Matt) Wang 103a0470e3
gh-123492: Remove unnecessary `:func:` parentheses (#123493) 2024-08-30 14:34:09 +03:00
Bénédikt Tran 40fff90ae3
gh-101860: document `property.__name__` (GH-123399) 2024-08-28 16:10:13 +02:00
Wulian 9e108b8719
Fix typos in docs, error messages and comments (#123336)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-08-28 14:41:04 +03:00
Victor Stinner 4c6dca8292
gh-120389: Add PyLong_FromInt64() and PyLong_AsInt64() (#120390)
Add new functions to convert C <stdint.h> numbers from/to Python int:

* PyLong_FromInt32()
* PyLong_FromUInt32()
* PyLong_FromInt64()
* PyLong_FromUInt64()
* PyLong_AsInt32()
* PyLong_AsUInt32()
* PyLong_AsInt64()
* PyLong_AsUInt64()
2024-08-28 10:16:13 +00:00
sobolevn 6f563e364d
gh-123254: Improve `tuple` C API docs with more info about errors (#123255)
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2024-08-28 10:30:21 +03:00
Daniel Hollas 08c0166ce4
gh-109975: Fix a typo in What's New in Python 3.13 (#123393) 2024-08-27 15:53:45 +01:00
Mark Shannon f49a91648a
GH-117759: Document incremental GC (GH-123266)
* Update what's new

* Update gc module docs and fix inconsistency in gc.get_objects
2024-08-27 15:23:39 +01:00
Petr Viktorin 6754566a51
gh-120426: Reword the glossary term "immortal" (GH-123191)
Reword the glossary term "immortal", mark it as an implementation detail
2024-08-27 13:37:56 +02:00
Barney Gale 7bd6ebf696
GH-73991: Prune `pathlib.Path.copy()` and `copy_into()` arguments (#123337)
Remove *ignore* and *on_error* arguments from `pathlib.Path.copy[_into]()`,
because these arguments are under-designed. Specifically:

- *ignore* is appropriated from `shutil.copytree()`, but it's not clear
  how it should apply when the user copies a non-directory. We've changed
  the callback signature from the `shutil` version, but I'm not confident
  the new signature is as good as it can be.
- *on_error* is a generalisation of `shutil.copytree()`'s error handling,
  which is to accumulate exceptions and raise a single `shutil.Error` at
  the end. It's not obvious which solution is better.

Additionally, this arguments may be challenging to implement in future user
subclasses of `PathBase`, which might utilise a native recursive copying
method.
2024-08-26 17:05:34 +01:00
Barney Gale 033d537cd4
GH-73991: Make `pathlib.Path.delete()` private. (#123315)
Per feedback from Paul Moore on GH-123158, it's better to defer making
`Path.delete()` public than ship it with under-designed error handling
capabilities.

We leave a remnant `_delete()` method, which is used by `move()`. Any
functionality not needed by `move()` is deleted.
2024-08-26 16:26:34 +01:00
Barney Gale c68a93c582
GH-73991: Add `pathlib.Path.copy_into()` and `move_into()` (#123314)
These two methods accept an *existing* directory path, onto which we join
the source path's base name to form the final target path.

A possible alternative implementation is to check for directories in
`copy()` and `move()` and adjust the target path, which is done in several
`shutil` functions. This behaviour is helpful in a shell context, but
less so in a stored program that explicitly specifies destinations. For
example, a user that calls `Path('foo.py').copy('bar.py')` might not
imagine that `bar.py/foo.py` would be created, but under the alternative
implementation this will happen if `bar.py` is an existing directory.
2024-08-26 14:14:23 +01:00
CF Bolz-Tereick 70bfef52b5
gh-82378: Document the difference between sys.tracebacklimit and the limit arguments (#123286) 2024-08-25 23:50:43 +01:00
Kirill Podoprigora 249b083ed8
gh-122982: Extend the deprecation period for bool inversion by two years (#123306) 2024-08-25 12:24:44 -07:00
Barney Gale 625d0705b9
GH-73991: Add `pathlib.Path.move()` (#122073)
Add a `Path.move()` method that moves a file or directory tree, and returns a new `Path` instance pointing to the target.

This method is similar to `shutil.move()`, except that it doesn't accept a *copy_function* argument, and it doesn't check whether the destination is an existing directory.
2024-08-25 16:51:51 +01:00
Adam Turner 74ff496dce
GH-109975: Copyedit 3.13 What's New: Optimizations (#123301) 2024-08-25 16:17:46 +03:00
Adam Turner 9b3749849e
GH-123299: Move ctypes What's New entry to 3.14 (#123300) 2024-08-25 01:41:44 +01:00
Adam Turner 127660bcdb
GH-109975: Copyedit 3.13 What's New: Improved Modules (#123132)
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
2024-08-24 14:32:35 +01:00
Adam Turner b178beef26
Docs: Fix Makefile syntax (#123287) 2024-08-24 12:57:38 +00:00
Bar Harel 90b6d0e0f8
gh-123213: Fixed xml.etree.ElementTree.Element.extend and assignment to no longer hide exceptions (GH-123214) 2024-08-23 12:12:58 +03:00
Bénédikt Tran b1d3bd2e09
gh-123165: make `dis` functions render positions on demand (#123168) 2024-08-21 14:46:24 +01:00
Peter Bierma 9dbd123755
gh-123084: Turn `shutil.ExecError` into a deprecated alias of `RuntimeError` (#123125) 2024-08-21 00:39:24 +00:00
Jelle Zijlstra 0480052ea1
gh-109975: Copyedit What's New in Python 3.13 (#123150)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-19 23:51:37 +00:00
Pedro Lacerda be257c5815
gh-123049: configparser: Allow to create the unnamed section from scratch. (#123077)
---------

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-08-18 15:52:25 -04:00
Sergey B Kirpichev b0f462d4c8
gh-123110: correct note about _Bool in the struct module docs (GH-123111) 2024-08-18 16:58:58 +03:00
Adam Turner 79c542b5cc
Docs: Run ``latexmk`` in parallel when creating PDFs (#123113) 2024-08-17 20:58:06 +00:00
Adam Turner d60b97a833
GH-109975: Copyedit 3.13 What's New: Other Language Changes (#123086)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-08-17 12:09:42 +00:00
Sergey B Kirpichev ce4b9c8464
gh-121477: mention new PyLong_*Bytes() functions in PyLong_FromString() (#121478)
* gh-121477: mention new PyLong_*Bytes() functions in PyLong_FromString()

* Update Doc/c-api/long.rst

---------

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2024-08-17 09:13:31 +00:00
mathysEthical e9287ea426
fix typo in dis.rst (#121612) 2024-08-17 14:20:58 +05:30
Rafael Fontenelle 26de1b245e
Remove unneeded verb in the phrase in sys.rst (#122718) 2024-08-17 14:18:31 +05:30
Damien 8a59deca59
gh-122519: Adding socket module shutdown() constants description (#122543) 2024-08-17 13:59:23 +05:30
CF Bolz-Tereick a07cf4ce25
mention pypy somewhat more prominently in the pyrepl section of whatsnew (#123063) 2024-08-16 11:38:44 +00:00
Eddie Elizondo 3203a74129
gh-113190: Reenable non-debug interned string cleanup (GH-113601) 2024-08-15 11:55:09 +00:00
Adam Turner b106cf8d97
GH-109975: Copyedit 3.13 What's New: New Features (#122990)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Brandt Bucher <brandtbucher@gmail.com>
2024-08-15 10:08:15 +01:00
Rafael Fontenelle 1054a755a3
GH-103484: Tell linkcheck to ignore debian manpage redirects (#123019) 2024-08-14 22:35:23 +01:00
Damien 8e2dc7f380
gh-123005: Add version added in enum.Flag.__len__ (GH-123007) 2024-08-14 13:30:33 -07:00
Rafael Fontenelle 315a933a5b
Fix doctrees directory for the gettext builder (#122997) 2024-08-14 11:38:29 +01:00
Trey Hunner 906b796af8
gh-122873: Allow "python -m json" to work (#122884)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
2024-08-13 17:09:38 +01:00
Adam Turner db6f5e1933
GH-109975: Copyedit 3.13 What's New: Release Highlights (#122958)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-08-13 15:30:59 +01:00
Damien be90648fb2
gh-122944: Fix incorrect prompt strings in the Python Tutorial (#122949)
In the REPL, top level comments are followed by a primary, not secondary prompt.
Fix the places in the in the tutorial that use the latter.
2024-08-12 14:30:08 -04:00
Barney Gale a6644d4464
GH-73991: Rework `pathlib.Path.copytree()` into `copy()` (#122369)
Rename `pathlib.Path.copy()` to `_copy_file()` (i.e. make it private.)

Rename `pathlib.Path.copytree()` to `copy()`, and add support for copying
non-directories. This simplifies the interface for users, and nicely
complements the upcoming `move()` and `delete()` methods (which will also
accept any type of file.)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-11 22:43:18 +01:00
sobolevn ea70439bd2
gh-122701: Fix wording of raw strings/bytes in `lexical_analysis.rst` (#122702)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-11 21:02:50 +00:00
Rafael Fontenelle db8b83c2b0
Docs: Standardise versionchanged text in weakref.rst (#122898) 2024-08-11 21:40:11 +01:00
Wulian bc9d92c679
gh-122858: Deprecate `asyncio.iscoroutinefunction` (#122875)
Deprecate `asyncio.iscoroutinefunction` in favor of `inspect.iscoroutinefunction`.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2024-08-11 16:35:51 +00:00
Barney Gale 363374cf69
GH-120794: Use example paths with multiple parts in pathlib docs (#122887)
In the documentation of `PosixPath` and `WindowsPath`, and their `Pure*`
equivalents, use example paths with multiple non-anchor parts.

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-10 21:21:17 +00:00
Adam Turner 0959142e4d
gh-122868: Add more lower bounds for sphinxcontrib dependencies (#122891) 2024-08-10 20:50:43 +00:00
Nico Mexis 5580f31c56
gh-115808: Add ``is_none`` and ``is_not_none`` to ``operator`` (#115814)
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
2024-08-10 20:16:34 +01:00
Adam Turner 0fd97e46c7
gh-122868: Add lower bounds for sphinxcontrib dependencies (#122870)
* Docs: Add lower bounds for sphinxcontrib dependencies

* oops
2024-08-10 01:18:46 +03:00
Victor Stinner d3239976a8
gh-105376: Restore deprecated logging warn() method (#122775)
This reverts commit dcc028d924 and
commit 6c54e5d721.

Keep the deprecated logging warn() method in Python 3.13.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-08-09 15:13:24 +02:00
Nate Ohlson aab18f4d92
gh-112301: Update documentation for configure options (``--disable-safety`` and ``--enable-slower-safety``) (#122758)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-08 20:35:00 +01:00
Erlend E. Aasland e006c7371d
gh-105201: Add PyIter_NextItem() (#122331)
Return -1 and set an exception on error; return 0 if the iterator is
exhausted, and return 1 if the next item was fetched successfully.

Prefer this API to PyIter_Next(), which requires the caller to use
PyErr_Occurred() to differentiate between iterator exhaustion and errors.

Co-authered-by: Irit Katriel <iritkatriel@yahoo.com>
2024-08-08 00:47:15 +02:00
smij720 967a4f1d18
Docs: Change `remove` to `removes` for consistency (#121072) 2024-08-07 16:30:00 +01:00
Wim Jeantine-Glenn c25898d51e
Doc: cmdline.rst: Include -P and -R in usage (#122590)
* ``-P``: safe path (https://docs.python.org/3/using/cmdline.html#cmdoption-P)
* ``-R``: hash randomization (https://docs.python.org/3/using/cmdline.html#cmdoption-R)
2024-08-07 16:01:44 +01:00
Bénédikt Tran 76bdeebef6
gh-122511: Improve documentation for object identity of mutable/immutable types (#122512)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-07 13:40:19 +00:00
Barney Gale 98dba73010
GH-73991: Rework `pathlib.Path.rmtree()` into `delete()` (#122368)
Rename `pathlib.Path.rmtree()` to `delete()`, and add support for deleting
non-directories. This simplifies the interface for users, and nicely
complements the upcoming `move()` and `copy()` methods (which will also
accept any type of file.)
2024-08-07 01:34:44 +01:00
Sam Gross 1429651a06
gh-121103: Update site module docs for free-threaded installs (#122737)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-08-06 14:34:34 -04:00
Kirill Podoprigora 8ce70d6c69
gh-122058: `Lib/inspect`: Update docstrings for `isfunction`, `isgenerator`, `isframe`, `iscode`. (#122059)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2024-08-06 14:47:31 +02:00
Irit Katriel 1422500d02
gh-121367: [doc] BUILD_TUPLE arg can be 0 (#122663) 2024-08-05 10:17:55 +01:00
Libor Martínek f5c39b3e9c
gh-122661: Remove GNU make-specific directive from Doc/Makefile (#122662) 2024-08-04 17:02:29 +03:00
sobolevn 151934a324
gh-122623: Improve `c-api/bytearray.rst` with error handling info (#122624) 2024-08-04 00:55:47 +03:00
Adam Turner 95f5c89b54
GH-121970: Fix ``gettext`` for audit events (#122651) 2024-08-03 17:41:26 +01:00
scottwoodall 06eb9701a1
Doc: Grammar fix in ``library/ssl.rst``, 'Verifying certificates' (#122646) 2024-08-03 14:24:29 +01:00
Sergey B Kirpichev d91ac525ef
gh-122613: Document PyLong_GetInfo() (part of Limited API) (GH-#122280) 2024-08-03 13:20:10 +02:00
Matth-M 7a5c4103b0
Doc: Improve wording of ``os.path.commonpath()`` (#122627)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-08-03 11:18:59 +00:00
Irit Katriel 498376d7a7
gh-122445: populate only modified fields in __static_attributes__ (#122446) 2024-08-02 15:40:42 +01:00
Bénédikt Tran fb864c76cd
gh-121723: Relax constraints on queue objects for `logging.handlers.QueueHandler`. (GH-122154) 2024-08-02 12:16:32 +01:00
Victor Stinner addbb73927
Update PyObject_Del() documentation (#122597)
Replace PyMem_Del() with PyMem_Free().
2024-08-02 12:13:33 +02:00
Victor Stinner fda6bd842a
Replace PyObject_Del with PyObject_Free (#122453)
PyObject_Del() is just a alias to PyObject_Free() kept for backward
compatibility. Use directly PyObject_Free() instead.
2024-08-01 14:12:33 +02:00
Bénédikt Tran 88030861e2
gh-122555: Remove removed functions from `Doc/data/refcounts.dat` (#122556) 2024-08-01 12:26:09 +02:00
Rafael Fontenelle 58ffc4cf4a
gh-122384: Mark strings from Download page for translation (#122385)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-08-01 12:25:16 +03:00
jianghuyiyuan 46f5a4f9e1
Fix typos in docs, error messages and comments (#122502)
Signed-off-by: jianghuyiyuan <shuangcui@live.com>
2024-08-01 00:26:09 +00:00
Hugo van Kemenade d01fd24051
Docs: bump Sphinx to 8.0 and update constraints (#122496)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-07-31 07:02:08 +00:00
Cody Maloney a9344cdffa
gh-121381 Remove subprocess._USE_VFORK escape hatch (#121383)
This flag was added as an escape hatch in gh-91401 and backported to
Python 3.10. The flag broke at some point between its addition and now.
As there is currently no publicly known environments that require this,
remove it rather than work on fixing it.

This leaves the flag in the subprocess module to not break code which
may have used / checked the flag itself.

discussion: https://discuss.python.org/t/subprocess-use-vfork-escape-hatch-broken-fix-or-remove/56915/2
2024-07-30 18:39:54 -07:00
Petr Viktorin 0976339818
gh-121650: Encode newlines in headers, and verify headers are sound (GH-122233)
## Encode header parts that contain newlines

Per RFC 2047:

> [...] these encoding schemes allow the
> encoding of arbitrary octet values, mail readers that implement this
> decoding should also ensure that display of the decoded data on the
> recipient's terminal will not cause unwanted side-effects

It seems that the "quoted-word" scheme is a valid way to include
a newline character in a header value, just like we already allow
undecodable bytes or control characters.
They do need to be properly quoted when serialized to text, though.


## Verify that email headers are well-formed

This should fail for custom fold() implementations that aren't careful
about newlines.


Co-authored-by: Bas Bloemsaat <bas@bloemsaat.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-07-31 00:19:48 +02:00
Thomas Grainger c68cb8e0c9
Remove outdated note about instance methods from datamodel.rst (#122471) 2024-07-30 12:42:25 -07:00
Petr Viktorin 3833d27f98
gh-105733: Soft-deprecate ctypes.ARRAY, rather than hard-deprecating it. (GH-122281)
Soft-deprecate ctypes.ARRAY, rather than hard-deprecating it.

Partially reverts 2211454fe2
2024-07-30 09:37:58 +02:00
Adam Turner 11ad731f4f
GH-121970: Extract ``audit_events`` into a new extension (#122325) 2024-07-30 03:49:00 +00:00
Adam Turner 76bdfa4cd0
GH-122085: Use include files for C API deprecations (#109843) 2024-07-29 22:20:40 +01:00
Hugo van Kemenade aa449cf063
gh-122085: Create dedicated page for deprecations (#122352)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-07-28 10:53:21 +03:00
Barney Gale cbac8a3888
GH-121462: pathlib docs: improve table of corresponding os/os.path functions (#121465)
Re-order table of corresponding functions with the following priorities:

1. Pure functionality is at the top
2. `os.path` functions are shown before `os` functions
3. Similar functionality is kept together
4. Functionality follows docs order where possible

Add a few missed correspondences:

- `os.path.isjunction` and `Path.is_junction`
- `os.path.ismount` and `Path.is_mount`
- `os.lstat()` and `Path.lstat()`
- `os.lchmod()` and `Path.lchmod()`

Also add footnotes describing a few differences.
2024-07-27 18:03:18 +01:00
Hugo van Kemenade 4e75509349
gh-122085: Use include files for `whatsnew/3.14.rst` deprecations (#122242) 2024-07-27 14:17:54 +03:00
Adam Turner 762e771cc0
Fix underline for 'pty' in What's New in Python 3.14 (#122337) 2024-07-27 01:00:56 +00:00