Closed as not planned
Description
In Python 3.12 we've made pathlib.PurePath
subclassable - see #31691.
A significant wrinkle is that subclasses inherit an __fspath__()
method, which can lead to unexpected behaviour when these "pure" paths are passed to filesystem APIs:
import pathlib
class TarPath(pathlib.PurePath):
...
readme = TarPath('README.md', tarfile=...)
with open(readme) as f:
...
The with open(readme) as f:
line should throw a TypeError
, but instead it attempts to open a file called README.md in the current working directory (!). This sort of thing makes subclasses that implement purely virtual filesystems difficult to use safely.