pathlib.PureWindowsPath.match() mishandles path anchors
pathlib.PurePath.match() doesn't use fnmatch() to match path anchors, contrary to the documentation. Instead, it considers the drive and root of the pattern separately; if either (or both) is specified in the pattern, it must exactly match the corresponding drive/root in the path.
This results in the following:
>>> from pathlib import PureWindowsPath as P >>> P('c:/b.py').match('*:/*.py') False >>> P('c:/b.py').match('c:*.py') True >>> P('c:/b.py').match('/*.py') True >>> P('//some/share/a.py').match('//*/*/*.py') False >>> P('//some/share/a.py').match('/*.py') True
All of these results are wrong IMO.