comparison 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
comparison
equal deleted inserted replaced
273:c02a57df2a29 274:224725fd9f2f
232 return self._is_reg 232 return self._is_reg
233 233
234 @property 234 @property
235 def is_dir(self): 235 def is_dir(self):
236 return self._is_dir 236 return self._is_dir
237
238 @property
239 def is_chr(self):
240 return (stat.S_ISCHR(self._stat_result.st_mode)
241 if self._stat_result is not None
242 else False)
243
244 @property
245 def is_blk(self):
246 return (stat.S_ISBLK(self._stat_result.st_mode)
247 if self._stat_result is not None
248 else False)
249
250 @property
251 def is_fifo(self):
252 return (stat.S_ISFIFO(self._stat_result.st_mode)
253 if self._stat_result is not None
254 else False)
255
256 @property
257 def is_socket(self):
258 return (stat.S_ISSOCK(self._stat_result.st_mode)
259 if self._stat_result is not None
260 else False)
261
262 @property
263 def is_door(self):
264 test = getattr(stat, "S_ISDOOR", None)
265 return (test(self._stat_result.st_mode)
266 if test and (self._stat_result is not None)
267 else False)
268
269 @property
270 def is_eventport(self):
271 test = getattr(stat, "S_ISPORT", None)
272 return (test(self._stat_result.st_mode)
273 if test and (self._stat_result is not None)
274 else False)
275
276 @property
277 def is_whiteout(self):
278 test = getattr(stat, "S_ISWHT", None)
279 return (test(self._stat_result.st_mode)
280 if test and (self._stat_result is not None)
281 else False)
282
283 @property
284 def is_special(self):
285 """Anything besides a regular file and a directory"""
286 if self._stat_result is None:
287 return False
288 return not (self.is_reg or self.is_dir)
237 289
238 @property 290 @property
239 def stat(self): 291 def stat(self):
240 return self._stat_result 292 return self._stat_result
241 293