Data Structures — pyfuse3 3.2.0 documentation

# Data Structures

`pyfuse3.` `ENOATTR`

  This errorcode is unfortunately missing in the `errno` module, so it is provided by pyfuse3 instead.

`pyfuse3.` `ROOT_INODE`

  The inode of the root directory, i.e. the mount point of the file system.

`pyfuse3.` `RENAME_EXCHANGE`

  A flag that may be passed to the `rename` handler. When passed, the handler must atomically exchange the two paths (which must both exist).

`pyfuse3.` `RENAME_NOREPLACE`

  A flag that may be passed to the `rename` handler. When passed, the handler must not replace an existing target.

`pyfuse3.` `default_options`

  This is a recommended set of options that should be passed to `pyfuse3.init` to get reasonable behavior and performance. pyfuse3 is compatible with any other combination of options as well, but you should only deviate from the defaults with good reason.

  (The `fsname=<foo>` option is guaranteed never to be included in the default options, so you can always safely add it to the set).

  The default options are:

  - `default_permissions` enables permission checking by kernel. Without this any umask (or uid/gid) would not have an effect.

exception `pyfuse3.` `FUSEError`

  This exception may be raised by request handlers to indicate that the requested operation could not be carried out. The system call that resulted in the request (if any) will then fail with error code errno_.

class `pyfuse3.` `RequestContext`

  Instances of this class are passed to some `Operations` methods to provide information about the caller of the syscall that initiated the request.

  `pid`
  `uid`
  `gid`
  `umask`

class `pyfuse3.` `StatvfsData`

  Instances of this class store information about the file system. The attributes correspond to the elements of the `statvfs` struct, see statvfs(2) for details.

  `f_bsize`
  `f_frsize`
  `f_blocks`
  `f_bfree`
  `f_bavail`
  `f_files`
  `f_ffree`
  `f_favail`
  `f_namemax`

class `pyfuse3.` `EntryAttributes`

  Instances of this class store attributes of directory entries. Most of the attributes correspond to the elements of the `stat` C struct as returned by e.g. `fstat` and should be self-explanatory.

  `st_ino`
  `generation`

    The inode generation number

  `entry_timeout`

    Validity timeout for the name/existence of the directory entry

    Floating point numbers may be used. Units are seconds.

  `attr_timeout`

    Validity timeout for the attributes of the directory entry

    Floating point numbers may be used. Units are seconds.

  `st_mode`
  `st_nlink`
  `st_uid`
  `st_gid`
  `st_rdev`
  `st_size`
  `st_blksize`
  `st_blocks`
  `st_atime_ns`

    Time of last access in (integer) nanoseconds

  `st_ctime_ns`

    Time of last inode modification in (integer) nanoseconds

  `st_mtime_ns`

    Time of last modification in (integer) nanoseconds

class `pyfuse3.` `FileInfo`

  Instances of this class store options and data that `Operations.open` returns. The attributes correspond to the elements of the `fuse_file_info` struct that are relevant to the `Operations.open` function.

  `fh`

    fh: ‘uint64_t’

    This attribute must be set to the file handle to be returned from `Operations.open`.

  `direct_io`

    direct_io: ‘bool’

    If true, signals to the kernel that this file should not be cached or buffered.

  `keep_cache`

    keep_cache: ‘bool’

    If true, signals to the kernel that previously cached data for this inode is still valid, and should not be invalidated.

  `nonseekable`

    nonseekable: ‘bool’

    If true, indicates that the file does not support seeking.

class `pyfuse3.` `SetattrFields`

  `SetattrFields` instances are passed to the `setattr` handler to specify which attributes should be updated.

  `update_atime`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_atime_ns` field contains an updated value.

  `update_mtime`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_mtime_ns` field contains an updated value.

  `update_mode`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_mode` field contains an updated value.

  `update_uid`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_uid` field contains an updated value.

  `update_gid`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_gid` field contains an updated value.

  `update_size`

    If this attribute is true, it signals the `Operations.setattr` method that the `st_size` field contains an updated value.