barneygale · GitHub

pathlib.Path.glob() converts a given string pattern to a Path object:

if not isinstance(pattern, PurePath):
pattern = self.with_segments(pattern)

Which has the following drawbacks:

  • It instantiates a Path object, which is slow
  • It normalizes a Windows UNC drive if given, which is unnecessary - any anchor causes NotImplementedError to be raised.
  • It strips the trailing slash from the pattern, so we need to peek at pattern._raw_path to restore it

It would be better to add a variant of PurePath._parse_path() for dealing specifically with glob patterns.

Linked PRs

Read the original on github.com ↗