From: Brian Curtin Date: Fri, 24 Sep 2010 13:56:34 +0000 (+0000) Subject: Fix #9790 again. Rather than handle NotImplementedError at runtime as X-Git-Tag: v3.2a3~150 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e8e8042bb5f722481ce22be573e62a6d009c7dfe;p=python Fix #9790 again. Rather than handle NotImplementedError at runtime as before, only attempt the import where nt._getfinalpathname could actually work, i.e., Windows Vista and beyond. --- diff --git a/Lib/ntpath.py b/Lib/ntpath.py index 6d1b50abbd..d2410f66d0 100644 --- a/Lib/ntpath.py +++ b/Lib/ntpath.py @@ -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)