def __init__(self, path, modtime=None):
        log.debug("Creating FileSystemEntry from path %r.", path)
        try:
            # os.lstat(path)
            # Perform the equivalent of an lstat() system call on the given
            # path. Similar to stat(), but does not follow symbolic links.
            # On platforms that do not support symbolic links, this is an alias
            # for stat().
            self._stat = os.lstat(path)
        except __HOLE__ as e:
            log.error("stat() failed on path: '%s' (%s).", path, e)
            raise
        self.type = self._get_type(self._stat)
        log.debug("Detected type %s.", self.type)
        if modtime is None:
            # User may provide modification time -- if not, extract it from
            # inode. This is a Unix timestamp, seconds since epoch. Not
            # localized.
            modtime = self._stat.st_mtime
        else:
            log.debug("Don't use stat mtime, use %s.", modtime)
        self.path = path
        # FilterItem requires unicode `text` attribute, decode path if not
        # already unicode:
        t = path
        if not isinstance(t, text_type):
            t = t.decode(sys.getfilesystemencoding())
        FilterItem.__init__(self, text=t, modtime=modtime)
dataset/ETHPy150Open jgehrcke/timegaps/timegaps/timegaps.py/FileSystemEntry.__init__