diff options
author | Toke Høiland-Jørgensen <toke@redhat.com> | 2019-12-16 13:23:55 +0100 |
---|---|---|
committer | Victor Stinner <vstinner@python.org> | 2019-12-16 13:23:55 +0100 |
commit | 092435e932dee1802784ec28f39454f50fdd879a (patch) | |
tree | 7d2649d3fb0766621a0760a5efd86815d7804f38 /Lib/pathlib.py | |
parent | 1ca8fb187eb320f87a74b82c2a20acb89f429841 (diff) | |
download | cpython-git-092435e932dee1802784ec28f39454f50fdd879a.tar.gz |
bpo-38811: Check for presence of os.link method in pathlib (GH-17225)
Commit 6b5b013bcc22 ("bpo-26978: Implement pathlib.Path.link_to (Using
os.link) (GH-12990)") introduced a new link_to method in pathlib. However,
this makes pathlib crash when the 'os' module is missing a 'link' method.
Fix this by checking for the presence of the 'link' method on pathlib
module import, and if it's not present, turn it into a runtime error like
those emitted when there is no lchmod() or symlink().
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Diffstat (limited to 'Lib/pathlib.py')
-rw-r--r-- | Lib/pathlib.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/pathlib.py b/Lib/pathlib.py index f0537cfea1..7d1d1150b0 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -418,7 +418,12 @@ class _NormalAccessor(_Accessor): unlink = os.unlink - link_to = os.link + if hasattr(os, "link"): + link_to = os.link + else: + @staticmethod + def link_to(self, target): + raise NotImplementedError("os.link() not available on this system") rmdir = os.rmdir |