This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: os.isdir() should contain skiplinks=False in arguments
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 3.5
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: alexey-smirnov, giampaolo.rodola, larry, socketpair
Priority: normal Keywords:

Created on 2011-09-13 13:23 by socketpair, last changed 2022-04-11 14:57 by admin.

Messages (4)
msg143968 - (view) Author: Марк Коренберг (socketpair) * Date: 2011-09-13 13:23
When skiplinks is False (by default), it should as in current implementation, i.e. using stat().

if skiplinks is True, isidr() should use lstat() and same logick. 

If one will be implemented, os.walk() should be patched (see issue12970) to use this new isdir() with this new parameter instead of own logick in os.walk().
msg164116 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2012-06-27 00:03
If this happens, in keeping with the new os module aesthetic, I suggest the prototype should be

os.isdir(path, *, follow_symlinks=True)
msg164131 - (view) Author: Марк Коренберг (socketpair) * Date: 2012-06-27 09:11
Отправлено с iPad

27.06.2012, в 6:03, Larry Hastings <report@bugs.python.org> написал(а):

No, follow symlinks is not the same. 

Skiplinks mean returning true or false depending on fact that last path element is symlink.
Checking If symlink appear in the middle of the path, this is not issue of this feature request. 

> 
> ----------
> nosy: +larry
> 
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue12971>
> _______________________________________
msg164140 - (view) Author: Larry Hastings (larry) * (Python committer) Date: 2012-06-27 10:10
First: there's no chance this will go into 3.1, 3.2, or 3.3 at this point.

Second: I can assure you that switching to the l... version of a function and not following the last symlink is exactly what "follow_symlinks" is for.  Please see the 3.3 documentation on follow_symlinks for more:

http://docs.python.org/3.3/library/os.html#follow-symlinks

Third: I think it's better to keep os.isdir() simple.  Users who want more sophisticated use cases (what to do about symlinks, using a dir_fd parameter) should use os.stat().  So I'm -1 on this.

TBH I'm not sure this even warrants a documentation change ("for more functionality, use os.stat()").
History
Date User Action Args
2022-04-11 14:57:21adminsetgithub: 57180
2014-01-31 22:59:21yselivanovsetversions: + Python 3.5, - Python 3.4
2012-06-27 10:10:46larrysetmessages: + msg164140
versions: - Python 3.1, Python 3.2, Python 3.3
2012-06-27 09:11:33socketpairsetmessages: + msg164131
2012-06-27 00:03:54larrysetnosy: + larry
messages: + msg164116
2012-06-26 23:21:02giampaolo.rodolasetnosy: + giampaolo.rodola
2011-09-14 06:08:44alexey-smirnovsetnosy: + alexey-smirnov
2011-09-13 13:23:57socketpaircreate