]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
GH-110109: Add `pathlib._PurePathBase` (#110670)
authorBarney Gale <barney.gale@gmail.com>
Fri, 8 Dec 2023 17:39:04 +0000 (17:39 +0000)
committerGitHub <noreply@github.com>
Fri, 8 Dec 2023 17:39:04 +0000 (17:39 +0000)
commit76929fdeebc5f89655a7a535c19fdcece9728a7d
treeb4d9f023e4b7951d60caadb58ada10a5b21279f2
parent5a0137ca34deb6e1e2e890a52cb4b22d645c166b
GH-110109: Add `pathlib._PurePathBase` (#110670)

Add private `pathlib._PurePathBase` class: a private superclass of both `PurePath` and `_PathBase`. Unlike `PurePath`, it does not define any of these special methods: `__fspath__`, `__bytes__`, `__reduce__`, `__hash__`, `__eq__`, `__lt__`, `__le__`, `__gt__`, `__ge__`. Its initializer and path joining methods accept only strings, not os.PathLike objects more broadly.

This is important for supporting *virtual paths*: user subclasses of `_PathBase` that provide access to archive files, FTP servers, etc. In these classes, the above methods should be implemented by users only as appropriate, with due consideration for the hash/equality of any backing objects, such as file objects or sockets.
Lib/pathlib.py
Lib/test/test_pathlib.py
Misc/NEWS.d/next/Library/2023-10-11-02-34-01.gh-issue-110109.RFCmHs.rst [new file with mode: 0644]