Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 306cfb3

Browse filesBrowse files
bpo-40486: Specify what happens if directory content change diring iteration (GH-22025)
1 parent 8171580 commit 306cfb3
Copy full SHA for 306cfb3

File tree

3 files changed

+17
-3
lines changed
Filter options

3 files changed

+17
-3
lines changed

‎Doc/library/glob.rst

Copy file name to clipboardExpand all lines: Doc/library/glob.rst
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ For example, ``'[?]'`` matches the character ``'?'``.
4343
(like :file:`/usr/src/Python-1.5/Makefile`) or relative (like
4444
:file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken
4545
symlinks are included in the results (as in the shell). Whether or not the
46-
results are sorted depends on the file system.
46+
results are sorted depends on the file system. If a file that satisfies
47+
conditions is removed or added during the call of this function, whether
48+
a path name for that file be included is unspecified.
4749

4850
If *root_dir* is not ``None``, it should be a :term:`path-like object`
4951
specifying the root directory for searching. It has the same effect on

‎Doc/library/os.rst

Copy file name to clipboardExpand all lines: Doc/library/os.rst
+9-2Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1852,6 +1852,8 @@ features:
18521852
Return a list containing the names of the entries in the directory given by
18531853
*path*. The list is in arbitrary order, and does not include the special
18541854
entries ``'.'`` and ``'..'`` even if they are present in the directory.
1855+
If a file is removed from or added to the directory during the call of
1856+
this function, whether a name for that file be included is unspecified.
18551857

18561858
*path* may be a :term:`path-like object`. If *path* is of type ``bytes``
18571859
(directly or indirectly through the :class:`PathLike` interface),
@@ -2257,7 +2259,9 @@ features:
22572259
Return an iterator of :class:`os.DirEntry` objects corresponding to the
22582260
entries in the directory given by *path*. The entries are yielded in
22592261
arbitrary order, and the special entries ``'.'`` and ``'..'`` are not
2260-
included.
2262+
included. If a file is removed from or added to the directory after
2263+
creating the iterator, whether an entry for that file be included is
2264+
unspecified.
22612265

22622266
Using :func:`scandir` instead of :func:`listdir` can significantly
22632267
increase the performance of code that also needs file type or file
@@ -3007,7 +3011,10 @@ features:
30073011
*filenames* is a list of the names of the non-directory files in *dirpath*.
30083012
Note that the names in the lists contain no path components. To get a full path
30093013
(which begins with *top*) to a file or directory in *dirpath*, do
3010-
``os.path.join(dirpath, name)``.
3014+
``os.path.join(dirpath, name)``. Whether or not the lists are sorted
3015+
depends on the file system. If a file is removed from or added to the
3016+
*dirpath* directory during generating the lists, whether a name for that
3017+
file be included is unspecified.
30113018

30123019
If optional argument *topdown* is ``True`` or not specified, the triple for a
30133020
directory is generated before the triples for any of its subdirectories

‎Doc/library/pathlib.rst

Copy file name to clipboardExpand all lines: Doc/library/pathlib.rst
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,11 @@ call fails (for example because the path doesn't exist).
890890
PosixPath('docs/_static')
891891
PosixPath('docs/Makefile')
892892

893+
The children are yielded in arbitrary order, and the special entries
894+
``'.'`` and ``'..'`` are not included. If a file is removed from or added
895+
to the directory after creating the iterator, whether an path object for
896+
that file be included is unspecified.
897+
893898
.. method:: Path.lchmod(mode)
894899

895900
Like :meth:`Path.chmod` but, if the path points to a symbolic link, the

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.