diff --git a/Lib/pathlib.py b/Lib/pathlib.py index 87c2e970a0a881..a57b582a211e06 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -235,7 +235,7 @@ def __repr__(self): return "<{}.parents>".format(type(self._path).__name__) -class PurePath(os.PathLike): +class PurePath: """Base class for manipulating paths without I/O. PurePath represents a filesystem path and offers operations which @@ -715,6 +715,10 @@ def match(self, path_pattern, *, case_sensitive=None): return False return True +# Subclassing os.PathLike makes isinstance() checks slower, +# which in turn makes Path construction slower. Register instead! +os.PathLike.register(PurePath) + class PurePosixPath(PurePath): """PurePath subclass for non-Windows systems.