Skip to content

Commit 87389af

Browse files
authored
Merge branch 'main' into allow-lazymodule-spec-without-full-load
2 parents 1fa47d6 + e39255e commit 87389af

File tree

107 files changed

+3290
-1315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+3290
-1315
lines changed

Doc/library/dbm.rst

Lines changed: 67 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,13 @@ the Oracle Berkeley DB.
9090
.. versionchanged:: 3.11
9191
*file* accepts a :term:`path-like object`.
9292

93-
The object returned by :func:`~dbm.open` supports the same basic functionality as a
94-
:class:`dict`; keys and their corresponding values can be stored, retrieved, and
95-
deleted, and the :keyword:`in` operator and the :meth:`!keys` method are
96-
available, as well as :meth:`!get` and :meth:`!setdefault` methods.
93+
The object returned by :func:`~dbm.open` supports the basic
94+
functionality of mutable :term:`mappings <mapping>`;
95+
keys and their corresponding values can be stored, retrieved, and
96+
deleted, and iteration, the :keyword:`in` operator and methods :meth:`!keys`,
97+
:meth:`!get`, :meth:`!setdefault` and :meth:`!clear` are available.
98+
The :meth:`!keys` method returns a list instead of a view object.
99+
The :meth:`!setdefault` method requires two arguments.
97100

98101
Key and values are always stored as :class:`bytes`. This means that when
99102
strings are used they are implicitly converted to the default encoding before
@@ -114,6 +117,10 @@ will automatically close them when done.
114117
Deleting a key from a read-only database raises a database module specific exception
115118
instead of :exc:`KeyError`.
116119

120+
.. versionchanged:: 3.13
121+
:meth:`!clear` methods are now available for all :mod:`dbm` backends.
122+
123+
117124
The following example records some hostnames and a corresponding title, and
118125
then prints out the contents of the database::
119126

@@ -173,9 +180,6 @@ or any other SQLite browser, including the SQLite CLI.
173180
.. function:: open(filename, /, flag="r", mode=0o666)
174181

175182
Open an SQLite database.
176-
The returned object behaves like a :term:`mapping`,
177-
implements a :meth:`!close` method,
178-
and supports a "closing" context manager via the :keyword:`with` keyword.
179183

180184
:param filename:
181185
The path to the database to be opened.
@@ -192,6 +196,17 @@ or any other SQLite browser, including the SQLite CLI.
192196
The Unix file access mode of the file (default: octal ``0o666``),
193197
used only when the database has to be created.
194198

199+
The returned database object behaves similar to a mutable :term:`mapping`,
200+
but the :meth:`!keys` method returns a list, and
201+
the :meth:`!setdefault` method requires two arguments.
202+
It also supports a "closing" context manager via the :keyword:`with` keyword.
203+
204+
The following methods are also provided:
205+
206+
.. method:: sqlite3.close()
207+
208+
Close the SQLite database.
209+
195210
.. method:: sqlite3.reorganize()
196211

197212
If you have carried out a lot of deletions and would like to shrink the space
@@ -204,6 +219,7 @@ or any other SQLite browser, including the SQLite CLI.
204219

205220
.. versionadded:: next
206221

222+
207223
:mod:`dbm.gnu` --- GNU database manager
208224
---------------------------------------
209225

@@ -232,6 +248,11 @@ functionality like crash tolerance.
232248
raised for general mapping errors like specifying an incorrect key.
233249

234250

251+
.. data:: open_flags
252+
253+
A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` supports.
254+
255+
235256
.. function:: open(filename, flag="r", mode=0o666, /)
236257

237258
Open a GDBM database and return a :class:`!gdbm` object.
@@ -270,14 +291,25 @@ functionality like crash tolerance.
270291
.. versionchanged:: 3.11
271292
*filename* accepts a :term:`path-like object`.
272293

273-
.. data:: open_flags
294+
:class:`!gdbm` objects behave similar to mutable :term:`mappings <mapping>`,
295+
but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`,
296+
and :meth:`!update` are not supported,
297+
the :meth:`!keys` method returns a list, and
298+
the :meth:`!setdefault` method requires two arguments.
299+
It also supports a "closing" context manager via the :keyword:`with` keyword.
300+
301+
.. versionchanged:: 3.2
302+
Added the :meth:`!get` and :meth:`!setdefault` methods.
274303

275-
A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` supports.
304+
.. versionchanged:: 3.13
305+
Added the :meth:`!clear` method.
276306

277-
:class:`!gdbm` objects behave similar to :term:`mappings <mapping>`,
278-
but :meth:`!items` and :meth:`!values` methods are not supported.
279307
The following methods are also provided:
280308

309+
.. method:: gdbm.close()
310+
311+
Close the GDBM database.
312+
281313
.. method:: gdbm.firstkey()
282314

283315
It's possible to loop over every key in the database using this method and the
@@ -313,16 +345,6 @@ functionality like crash tolerance.
313345
When the database has been opened in fast mode, this method forces any
314346
unwritten data to be written to the disk.
315347

316-
.. method:: gdbm.close()
317-
318-
Close the GDBM database.
319-
320-
.. method:: gdbm.clear()
321-
322-
Remove all items from the GDBM database.
323-
324-
.. versionadded:: 3.13
325-
326348

327349
:mod:`dbm.ndbm` --- New Database Manager
328350
----------------------------------------
@@ -383,22 +405,27 @@ This module can be used with the "classic" NDBM interface or the
383405
:param int mode:
384406
|mode_param_doc|
385407

386-
:class:`!ndbm` objects behave similar to :term:`mappings <mapping>`,
387-
but :meth:`!items` and :meth:`!values` methods are not supported.
388-
The following methods are also provided:
389-
390408
.. versionchanged:: 3.11
391409
Accepts :term:`path-like object` for filename.
392410

393-
.. method:: ndbm.close()
411+
:class:`!ndbm` objects behave similar to mutable :term:`mappings <mapping>`,
412+
but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`,
413+
and :meth:`!update` are not supported,
414+
the :meth:`!keys` method returns a list, and
415+
the :meth:`!setdefault` method requires two arguments.
416+
It also supports a "closing" context manager via the :keyword:`with` keyword.
394417

395-
Close the NDBM database.
418+
.. versionchanged:: 3.2
419+
Added the :meth:`!get` and :meth:`!setdefault` methods.
396420

397-
.. method:: ndbm.clear()
421+
.. versionchanged:: 3.13
422+
Added the :meth:`!clear` method.
398423

399-
Remove all items from the NDBM database.
424+
The following method is also provided:
400425

401-
.. versionadded:: 3.13
426+
.. method:: ndbm.close()
427+
428+
Close the NDBM database.
402429

403430

404431
:mod:`dbm.dumb` --- Portable DBM implementation
@@ -436,9 +463,6 @@ The :mod:`!dbm.dumb` module defines the following:
436463
.. function:: open(filename, flag="c", mode=0o666)
437464

438465
Open a :mod:`!dbm.dumb` database.
439-
The returned database object behaves similar to a :term:`mapping`,
440-
in addition to providing :meth:`~dumbdbm.sync` and :meth:`~dumbdbm.close`
441-
methods.
442466

443467
:param filename:
444468
The basename of the database file (without extensions).
@@ -477,14 +501,12 @@ The :mod:`!dbm.dumb` module defines the following:
477501
.. versionchanged:: 3.11
478502
*filename* accepts a :term:`path-like object`.
479503

480-
In addition to the methods provided by the
481-
:class:`collections.abc.MutableMapping` class,
482-
the following methods are provided:
504+
The returned database object behaves similar to a mutable :term:`mapping`,
505+
but the :meth:`!keys` and :meth:`!items` methods return lists, and
506+
the :meth:`!setdefault` method requires two arguments.
507+
It also supports a "closing" context manager via the :keyword:`with` keyword.
483508

484-
.. method:: dumbdbm.sync()
485-
486-
Synchronize the on-disk directory and data files. This method is called
487-
by the :meth:`shelve.Shelf.sync` method.
509+
The following methods are also provided:
488510

489511
.. method:: dumbdbm.close()
490512

@@ -501,3 +523,8 @@ The :mod:`!dbm.dumb` module defines the following:
501523
that this factor changes for each :mod:`dbm` submodule.
502524

503525
.. versionadded:: next
526+
527+
.. method:: dumbdbm.sync()
528+
529+
Synchronize the on-disk directory and data files. This method is called
530+
by the :meth:`shelve.Shelf.sync` method.

Doc/library/resource.rst

Lines changed: 62 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,16 @@ this module for those platforms.
5757
Previously, it could be negative, such as -1 or -3.
5858

5959

60+
.. data:: RLIM_SAVED_CUR
61+
.. data:: RLIM_SAVED_MAX
62+
63+
Constants used to represent the soft and hard limit values if they
64+
cannot be represented in the ``rlim_t`` value in C.
65+
Can be equal to :data:`RLIM_INFINITY`.
66+
67+
.. versionadded:: next
68+
69+
6070
.. function:: getrlimit(resource)
6171

6272
Returns a tuple ``(soft, hard)`` with the current soft and hard limits of
@@ -68,12 +78,12 @@ this module for those platforms.
6878

6979
Sets new limits of consumption of *resource*. The *limits* argument must be a
7080
tuple ``(soft, hard)`` of two integers describing the new limits. A value of
71-
:data:`~resource.RLIM_INFINITY` can be used to request a limit that is
81+
:const:`~resource.RLIM_INFINITY` can be used to request a limit that is
7282
unlimited.
7383

7484
Raises :exc:`ValueError` if an invalid resource is specified, if the new soft
7585
limit exceeds the hard limit, or if a process tries to raise its hard limit.
76-
Specifying a limit of :data:`~resource.RLIM_INFINITY` when the hard or
86+
Specifying a limit of :const:`~resource.RLIM_INFINITY` when the hard or
7787
system limit for that resource is not unlimited will result in a
7888
:exc:`ValueError`. A process with the effective UID of super-user can
7989
request any valid limit value, including unlimited, but :exc:`ValueError`
@@ -83,7 +93,7 @@ this module for those platforms.
8393
``setrlimit`` may also raise :exc:`error` if the underlying system call
8494
fails.
8595

86-
VxWorks only supports setting :data:`RLIMIT_NOFILE`.
96+
VxWorks only supports setting :const:`RLIMIT_NOFILE`.
8797

8898
.. audit-event:: resource.setrlimit resource,limits resource.setrlimit
8999

@@ -181,8 +191,9 @@ platform.
181191
.. data:: RLIMIT_VMEM
182192

183193
The largest area of mapped memory which the process may occupy.
194+
Usually an alias of :const:`RLIMIT_AS`.
184195

185-
.. availability:: FreeBSD >= 11.
196+
.. availability:: Solaris, FreeBSD, NetBSD.
186197

187198

188199
.. data:: RLIMIT_AS
@@ -235,16 +246,18 @@ platform.
235246

236247
.. versionadded:: 3.4
237248

249+
238250
.. data:: RLIMIT_SBSIZE
239251

240252
The maximum size (in bytes) of socket buffer usage for this user.
241253
This limits the amount of network memory, and hence the amount of mbufs,
242254
that this user may hold at any time.
243255

244-
.. availability:: FreeBSD.
256+
.. availability:: FreeBSD, NetBSD.
245257

246258
.. versionadded:: 3.4
247259

260+
248261
.. data:: RLIMIT_SWAP
249262

250263
The maximum size (in bytes) of the swap space that may be reserved or
@@ -254,18 +267,20 @@ platform.
254267
`tuning(7) <https://man.freebsd.org/cgi/man.cgi?query=tuning&sektion=7>`__
255268
for a complete description of this sysctl.
256269

257-
.. availability:: FreeBSD.
270+
.. availability:: FreeBSD >= 8.
258271

259272
.. versionadded:: 3.4
260273

274+
261275
.. data:: RLIMIT_NPTS
262276

263277
The maximum number of pseudo-terminals created by this user id.
264278

265-
.. availability:: FreeBSD.
279+
.. availability:: FreeBSD >= 8.
266280

267281
.. versionadded:: 3.4
268282

283+
269284
.. data:: RLIMIT_KQUEUES
270285

271286
The maximum number of kqueues this user id is allowed to create.
@@ -274,6 +289,46 @@ platform.
274289

275290
.. versionadded:: 3.10
276291

292+
293+
.. data:: RLIMIT_NTHR
294+
295+
The maximum number of threads for this user id, not counting the main
296+
and kernel threads.
297+
298+
.. availability:: NetBSD >= 7.0.
299+
300+
.. versionadded:: next
301+
302+
303+
.. data:: RLIMIT_PIPEBUF
304+
305+
The maximum total size of in-kernel buffers for bi-directional pipes/fifos
306+
that this user id is allowed to consume.
307+
308+
.. availability:: FreeBSD >= 14.2.
309+
310+
.. versionadded:: next
311+
312+
313+
.. data:: RLIMIT_THREADS
314+
315+
The maximum number of threads each process can create.
316+
317+
.. availability:: AIX.
318+
319+
.. versionadded:: next
320+
321+
322+
.. data:: RLIMIT_UMTXP
323+
324+
The limit of the number of process-shared Posix thread library objects
325+
allocated by user id.
326+
327+
.. availability:: FreeBSD >= 11.
328+
329+
.. versionadded:: next
330+
331+
277332
Resource Usage
278333
--------------
279334

Doc/library/ssl.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1898,8 +1898,9 @@ to speed up repeated connections from the same clients.
18981898
.. attribute:: SSLContext.sslsocket_class
18991899

19001900
The return type of :meth:`SSLContext.wrap_socket`, defaults to
1901-
:class:`SSLSocket`. The attribute can be overridden on instance of class
1902-
in order to return a custom subclass of :class:`SSLSocket`.
1901+
:class:`SSLSocket`. The attribute can be assigned to on instances of
1902+
:class:`SSLContext` in order to return a custom subclass of
1903+
:class:`SSLSocket`.
19031904

19041905
.. versionadded:: 3.7
19051906

Doc/whatsnew/3.13.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ dbm
834834
(Contributed by Raymond Hettinger and Erlend E. Aasland in :gh:`100414`.)
835835

836836
* Allow removing all items from the database through
837-
the new :meth:`.gdbm.clear` and :meth:`.ndbm.clear` methods.
837+
the new :meth:`!clear` methods of the GDBM and NDBM database objects.
838838
(Contributed by Donghee Na in :gh:`107122`.)
839839

840840

Doc/whatsnew/3.15.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,15 @@ os.path
312312
the resulting path can be missing but it will be free of symlinks.
313313
(Contributed by Petr Viktorin for :cve:`2025-4517`.)
314314

315+
resource
316+
--------
317+
318+
* Add new constants: :data:`~resource.RLIMIT_NTHR`,
319+
:data:`~resource.RLIMIT_UMTXP`, :data:`~resource.RLIMIT_THREADS`,
320+
:data:`~resource.RLIM_SAVED_CUR`, and :data:`~resource.RLIM_SAVED_MAX`.
321+
(Contributed by Serhiy Storchaka in :gh:`137512`.)
322+
323+
315324
shelve
316325
------
317326

Include/internal/pycore_global_objects_fini_generated.h

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_global_strings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,6 +787,7 @@ struct _Py_global_strings {
787787
STRUCT_FOR_ID(template)
788788
STRUCT_FOR_ID(term)
789789
STRUCT_FOR_ID(text)
790+
STRUCT_FOR_ID(third)
790791
STRUCT_FOR_ID(threading)
791792
STRUCT_FOR_ID(throw)
792793
STRUCT_FOR_ID(time)

0 commit comments

Comments
 (0)