bpo-38811: Check for presence of os.link method in pathlib. (GH-17170)
Fix also the Path.symplink() method implementation for the case when
symlinks are not supported.
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index d70fde0..5142ff6 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -418,7 +418,12 @@
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
@@ -430,6 +435,7 @@
if supports_symlinks:
symlink = os.symlink
else:
+ @staticmethod
def symlink(a, b, target_is_directory):
raise NotImplementedError("symlink() not available on this system")
else: