Skip to content

Commit ffcddd0

Browse files
author
dzsekijo
committed
Define the required fields in FuseStruct derivatives to None if there is no explicit default value.
This helps users to know what fields are there to be assigned, and makes it possible to iterate over the fields.
1 parent ec34a5c commit ffcddd0

1 file changed

Lines changed: 39 additions & 17 deletions

File tree

fuse.py

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,17 @@ class Stat(FuseStruct):
378378
The attributes are undefined by default.
379379
"""
380380

381-
pass
381+
def __init__(self, **kw):
382+
self.st_mode = None
383+
self.st_ino = None
384+
self.st_dev = None
385+
self.st_nlink = None
386+
self.st_uid = None
387+
self.st_gid = None
388+
self.st_size = None
389+
self.st_atime = None
390+
self.st_mtime = None
391+
self.st_ctime = None
382392

383393

384394
class StatVfs(FuseStruct):
@@ -389,15 +399,15 @@ class StatVfs(FuseStruct):
389399

390400
def __init__(self, **kw):
391401

392-
self.f_bsize = 0
393-
self.f_frsize = 0
394-
self.f_blocks = 0
395-
self.f_bfree = 0
396-
self.f_bavail = 0
397-
self.f_files = 0
398-
self.f_ffree = 0
399-
self.f_favail = 0
400-
self.f_flag = 0
402+
self.f_bsize = 0
403+
self.f_frsize = 0
404+
self.f_blocks = 0
405+
self.f_bfree = 0
406+
self.f_bavail = 0
407+
self.f_files = 0
408+
self.f_ffree = 0
409+
self.f_favail = 0
410+
self.f_flag = 0
401411
self.f_namemax = 0
402412

403413
FuseStruct.__init__(self, **kw)
@@ -430,10 +440,10 @@ class Direntry(FuseStruct):
430440

431441
def __init__(self, name, **kw):
432442

433-
self.name = name
443+
self.name = name
434444
self.offset = 0
435-
self.type = 0
436-
self.ino = 0
445+
self.type = 0
446+
self.ino = 0
437447

438448
FuseStruct.__init__(self, **kw)
439449

@@ -446,24 +456,36 @@ class Flock(FuseStruct):
446456
`l_len`, `l_pid` attributes (`l_whence` is not used by
447457
FUSE, see ``fuse.h``).
448458
"""
459+
460+
def __init__(self, name, **kw):
461+
462+
self.l_type = None
463+
self.l_start = None
464+
self.l_len = None
465+
self.l_pid = None
449466

450-
pass
451-
467+
FuseStruct.__init__(self, **kw)
468+
452469

453470
class Timespec(FuseStruct):
454471
"""
455472
Cf. struct timespec in time.h:
456473
http://www.opengroup.org/onlinepubs/009695399/basedefs/time.h.html
457474
"""
458475

459-
pass
476+
def __init__(self, name, **kw):
477+
478+
self.tv_sec = None
479+
self.tv_nsec = None
480+
481+
FuseStruct.__init__(self, **kw)
460482

461483

462484
class FuseFileInfo(FuseStruct):
463485

464486
def __init__(self, **kw):
465487

466-
self.keep = False
488+
self.keep = False
467489
self.direct_io = False
468490

469491
FuseStruct.__init__(self, **kw)

0 commit comments

Comments
 (0)