Skip to content

Commit

Permalink
pythonGH-113225: Speed up pathlib.Path.glob() (python#113226)
Browse files Browse the repository at this point in the history
Use `os.DirEntry.path` as the string representation of child paths, unless
the parent path is empty, in which case we use the entry `name`.
  • Loading branch information
barneygale authored and kulikjak committed Jan 22, 2024
1 parent 805e16a commit 8e4e69b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
8 changes: 7 additions & 1 deletion Lib/pathlib/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,13 @@ def _scandir(self):

def _make_child_entry(self, entry):
# Transform an entry yielded from _scandir() into a path object.
return self._make_child_relpath(entry.name)
path_str = entry.name if str(self) == '.' else entry.path
path = self.with_segments(path_str)
path._str = path_str
path._drv = self.drive
path._root = self.root
path._tail_cached = self._tail + [entry.name]
return path

def absolute(self):
"""Return an absolute version of this path
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Speed up :meth:`pathlib.Path.glob` by using :attr:`os.DirEntry.path` where possible.

0 comments on commit 8e4e69b

Please sign in to comment.