gh-90889: Deprecate pathlib methods when required functions are missing. #101505
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Emit a deprecation warning (in addition to raising
NotImplementedError) if a pathlib method is called that relies on a missing function. Affects:Path.readlink()(whenos.readlink()is missing)Path.symlink_to()(whenos.symlink()is missing)Path.hardlink_to()(whenos.link()is missing)Path.owner()(whenpwd.getpwuid()is missing)Path.group()(whengrp.getgrgid()is missing)From Python 3.14, these methods will only be present if their required low-level functions are present, which will allow users to perform feature detection:
if hasattr(p, 'symlink_to'): p.symlink_to(...)To support versions prior to Python 3.14, users can first check for the low-level functions, like:
if hasattr(os, 'symlink'): p.symlink_to(...).