@@ -18,7 +18,7 @@ lots of shared sub-objects. The keys are ordinary strings.
1818
1919
2020.. function :: open(filename, flag='c', protocol=None, writeback=False, *, \
21- serializer=None, deserializer=None)
21+ mode=0o666, serializer=None, deserializer=None)
2222
2323 Open a persistent dictionary. The filename specified is the base filename for
2424 the underlying database. As a side-effect, an extension may be added to the
@@ -42,6 +42,9 @@ lots of shared sub-objects. The keys are ordinary strings.
4242 determine which accessed entries are mutable, nor which ones were actually
4343 mutated).
4444
45+ The optional *mode * parameter controls the file mode (permissions) when creating
46+ a new shelf. It has the same interpretation as the *mode * parameter of :func: `dbm.open `.
47+
4548 By default, :mod: `!shelve ` uses :func: `pickle.dumps ` and :func: `pickle.loads `
4649 for serializing and deserializing. This can be changed by supplying
4750 *serializer * and *deserializer *, respectively.
@@ -68,6 +71,9 @@ lots of shared sub-objects. The keys are ordinary strings.
6871 Accepts custom *serializer * and *deserializer * functions in place of
6972 :func: `pickle.dumps ` and :func: `pickle.loads `.
7073
74+ .. versionchanged :: 3.16
75+ Accepts *mode * to control file mode, behavior is the same as in :func: `dbm.open `.
76+
7177 .. note ::
7278
7379 Do not rely on the shelf being closed automatically; always call
@@ -209,20 +215,23 @@ Restrictions
209215
210216
211217.. class :: DbfilenameShelf(filename, flag='c', protocol=None, \
212- writeback=False, *, serializer=None, \
218+ writeback=False, *, mode=0o666, serializer=None \
213219 deserializer=None)
214220
215221 A subclass of :class: `Shelf ` which accepts a *filename * instead of a dict-like
216222 object. The underlying file will be opened using :func: `dbm.open `. By
217223 default, the file will be created and opened for both read and write. The
218224 optional *flag * parameter has the same interpretation as for the
219- :func: `.open ` function. The optional *protocol *, *writeback *, *serializer *
225+ :func: `.open ` function. The optional *mode *, * protocol *, *writeback *, *serializer *
220226 and *deserializer * parameters have the same interpretation as in
221227 :func: `~shelve.open `.
222228
223229 .. versionchanged :: 3.15
224230 Added the *serializer * and *deserializer * parameters.
225231
232+ .. versionchanged :: 3.16
233+ Added the *mode * parameter.
234+
226235
227236.. _shelve-example :
228237
0 commit comments