Mercurial > hgrepos > Python > apps > py-cutils
diff cutils/util/walk.py @ 274:224725fd9f2f
WalkDirEntry: add support for special files (character and block special, FIFO, socket, door, whiteout, event port, ...)
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Wed, 19 Feb 2025 16:42:44 +0100 |
| parents | c02a57df2a29 |
| children | f7850ff5cbe0 |
line wrap: on
line diff
--- a/cutils/util/walk.py Wed Feb 19 09:12:30 2025 +0100 +++ b/cutils/util/walk.py Wed Feb 19 16:42:44 2025 +0100 @@ -236,6 +236,58 @@ return self._is_dir @property + def is_chr(self): + return (stat.S_ISCHR(self._stat_result.st_mode) + if self._stat_result is not None + else False) + + @property + def is_blk(self): + return (stat.S_ISBLK(self._stat_result.st_mode) + if self._stat_result is not None + else False) + + @property + def is_fifo(self): + return (stat.S_ISFIFO(self._stat_result.st_mode) + if self._stat_result is not None + else False) + + @property + def is_socket(self): + return (stat.S_ISSOCK(self._stat_result.st_mode) + if self._stat_result is not None + else False) + + @property + def is_door(self): + test = getattr(stat, "S_ISDOOR", None) + return (test(self._stat_result.st_mode) + if test and (self._stat_result is not None) + else False) + + @property + def is_eventport(self): + test = getattr(stat, "S_ISPORT", None) + return (test(self._stat_result.st_mode) + if test and (self._stat_result is not None) + else False) + + @property + def is_whiteout(self): + test = getattr(stat, "S_ISWHT", None) + return (test(self._stat_result.st_mode) + if test and (self._stat_result is not None) + else False) + + @property + def is_special(self): + """Anything besides a regular file and a directory""" + if self._stat_result is None: + return False + return not (self.is_reg or self.is_dir) + + @property def stat(self): return self._stat_result
