Author steve.dower eryksun, miss-islington, paul.moore, steve.dower, tim.golden, zach.ware 2019-10-29.21:33:26 -1.0 Yes <1572384806.58.0.764210223804.issue38453@roundup.psfhosted.org>
Content
The discussion on the PR has raised one scenario where our algorithm conflicts with what we can reasonably emulate from the IO manager (which is itself not entirely self-consistent):

If you call ntpath.realpath(r"C:\spam\eggs") where "spam" is a symlink/junction to "D:\foo\baz" and "D:\foo\baz\eggs" is a relative symlink to "..\bar" and "D:\foo\bar" does not exist, we will incorrectly return "C:\bar".

Note that if "D:\foo\bar" *does* exist, we will return the correct result. And if "C:\spam" is *not* a symlink/junction, we will return the correct result.

Essentially, we fail in the case where ntpath.exists(X) fails and realpath(dirname(X)) != dirname(X) and readlink(X).startswith("..\\") is True.

Considering it's taken months of patient explanation from Eryk Sun for me to understand this, and nobody has ever complained about it, I'm prepared to call it a known limitation.
History
Date User Action Args
2019-10-29 21:33:26steve.dowersetrecipients: + steve.dower, paul.moore, tim.golden, zach.ware, eryksun, miss-islington
2019-10-29 21:33:26steve.dowersetmessageid: <1572384806.58.0.764210223804.issue38453@roundup.psfhosted.org>