24
 
    """Like os.listdir, this reads the contents of a directory.
 
26
 
    There is a C module which is recommended which will return
 
27
 
    a sort key in the first element of the tuple to allow slightly
 
28
 
    more efficient behaviour on the operating systems part.
 
30
 
    :param path: the directory to list.
 
31
 
    :return: a list of (None, basename) tuples.
 
 
24
_directory = 'directory'
 
 
34
    stat.S_IFDIR:'directory',
 
 
35
    stat.S_IFCHR:'chardev',
 
 
39
    stat.S_IFLNK:'symlink',
 
 
40
    stat.S_IFSOCK:'socket',
 
 
44
def _kind_from_mode(stat_mode, _formats=_formats, _unknown='unknown'):
 
 
45
    """Generate a file kind from a stat mode. This is used in walkdirs.
 
 
47
    It's performance is critical: Do not mutate without careful benchmarking.
 
33
 
    return [(None, name) for name in os.listdir(path)]
 
 
50
        return _formats[stat_mode & 0170000]