expanduser('~other') reliability and future

There’s been a bit of discussion on the reliability of getting other users' home directories via os.path.expanduser(), mostly on issue42998 <https://bugs.python.org/issue42998>. In msg390503 <https://bugs.python.org/issue42998#msg390503>, Serhiy Storchaka pointed out that ntpath only makes an educated guess of other user’s home directories. In msg390535 <https://bugs.python.org/issue42998#msg390535>, Eryk Sun supplied an improved ntpath implementation that makes use of winreg and ctypes. In msg391970 <https://bugs.python.org/issue42998#msg391970>, Steve Dower pointed out that, if retrieving another user’s home directory on Windows is unlikely to be made reliable, we should look at deprecating this functionality in expanduser() From a bit of googling, Python seems to be an outlier in having a function to retrieve another user’s home directory. I am encouraged by Eryk’s patch, but a little out of my depth with Windows stuff. Any views on this? Is expanduser(‘~other’) fixable and worth fixing? If not, should we deprecate this functionality? Or something else? Barney

On Wed, Apr 28, 2021 at 05:44:06PM +0100, Barney Gale wrote:
From a bit of googling, Python seems to be an outlier in having a function to retrieve another user’s home directory.
Any views on this? Is expanduser(‘~other’) fixable and worth fixing? If not, should we deprecate this functionality? Or something else?
+1 to deprecate this functionality. This does not seem to be common usecase to be present in stdlib, and reliablity across platform seems difficult. -- Senthil

On UNIX-oid platforms (e.g. BSD, Linux, Mac), ~user/ should be reasonably reliable, after all the shell does it. On Windows, only ~/ can be relied upon -- the rest is "best effort". I'd be okay with deprecating ~user/ on Windows, but on UNIX-oid it should not be deprecated IMO. (Spoken as an old UNIX nerd who's currently using Windows 10.) On Wed, Apr 28, 2021 at 9:57 AM Senthil Kumaran <senthil@uthcode.com> wrote:
-- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>

On Wed, Apr 28, 2021 at 05:44:06PM +0100, Barney Gale wrote:
From a bit of googling, Python seems to be an outlier in having a function to retrieve another user’s home directory.
Any views on this? Is expanduser(‘~other’) fixable and worth fixing? If not, should we deprecate this functionality? Or something else?
+1 to deprecate this functionality. This does not seem to be common usecase to be present in stdlib, and reliablity across platform seems difficult. -- Senthil

On UNIX-oid platforms (e.g. BSD, Linux, Mac), ~user/ should be reasonably reliable, after all the shell does it. On Windows, only ~/ can be relied upon -- the rest is "best effort". I'd be okay with deprecating ~user/ on Windows, but on UNIX-oid it should not be deprecated IMO. (Spoken as an old UNIX nerd who's currently using Windows 10.) On Wed, Apr 28, 2021 at 9:57 AM Senthil Kumaran <senthil@uthcode.com> wrote:
-- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>
participants (5)
-
Antoine Pitrou
-
Barney Gale
-
Guido van Rossum
-
Senthil Kumaran
-
Terry Reedy