]> granicus.if.org Git - python/commitdiff
Fix #9790 again. Rather than handle NotImplementedError at runtime as
authorBrian Curtin <brian.curtin@gmail.com>
Fri, 24 Sep 2010 13:56:34 +0000 (13:56 +0000)
committerBrian Curtin <brian.curtin@gmail.com>
Fri, 24 Sep 2010 13:56:34 +0000 (13:56 +0000)
before, only attempt the import where nt._getfinalpathname could actually
work, i.e., Windows Vista and beyond.

Lib/ntpath.py

index 6d1b50abbdba4043cc94ba65fb883e9e777ae151..d2410f66d0b979a00b2849c0ffe010391aa84c14 100644 (file)
@@ -642,12 +642,17 @@ def relpath(path, start=curdir):
 
 # determine if two files are in fact the same file
 try:
-    from nt import _getfinalpathname
-except (NotImplementedError, ImportError):
+    # GetFinalPathNameByHandle is available starting with Windows 6.0.
+    # Windows XP and non-Windows OS'es will mock _getfinalpathname.
+    if sys.getwindowsversion()[:2] >= (6, 0):
+        from nt import _getfinalpathname
+    else:
+        raise ImportError
+except (AttributeError, ImportError):
     # On Windows XP and earlier, two files are the same if their absolute
     # pathnames are the same.
-    # Also, on other operating systems, fake this method with a
-    # Windows-XP approximation.
+    # Non-Windows operating systems fake this method with an XP
+    # approximation.
     def _getfinalpathname(f):
         return abspath(f)