summaryrefslogtreecommitdiff
path: root/Lib/pathlib.py
diff options
context:
space:
mode:
authorToke Høiland-Jørgensen <toke@redhat.com>2019-12-16 13:23:55 +0100
committerVictor Stinner <vstinner@python.org>2019-12-16 13:23:55 +0100
commit092435e932dee1802784ec28f39454f50fdd879a (patch)
tree7d2649d3fb0766621a0760a5efd86815d7804f38 /Lib/pathlib.py
parent1ca8fb187eb320f87a74b82c2a20acb89f429841 (diff)
downloadcpython-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.py7
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