libretro.drivers.vfs.history

FileSystemDriver decorator that records the operations performed against another driver.

See also

FileSystemDriver

The protocol this driver implements.

Classes

class HistoryFileSystemDriver[source]

Bases: FileSystemDriver

FileSystemDriver that wraps another and records every call made through it.

Each recorded call is appended to history as a VfsOperation instance, making it easy to assert against the exact sequence of VFS operations a core performed.

__init__(interface)[source]

Wrap interface and start with an empty history.

Parameters:

interface (FileSystemDriver) – The underlying FileSystemDriver to delegate to.

Raises:

TypeError – If interface is not a FileSystemDriver.

property version

Return the VFS interface version implemented by this driver.

Returns:

The supported VFS interface version (1, 2, or 3).

get_path(stream)[source]

Return the path that was used to open stream.

Parameters:

stream (retro_vfs_file_handle) – An open file handle previously returned by open().

Return type:

bytes | None

Returns:

The original path as bytes, or None if stream is unknown.

See also

retro_vfs_get_path_t()

open(path, mode, hints)[source]

Open the file at path and return a handle to it.

Parameters:
  • path (bytes) – Path of the file to open, encoded as bytes.

  • mode (VfsFileAccess) – Access mode flags controlling read/write behavior.

  • hints (VfsFileAccessHint) – Hints describing the intended access pattern.

Return type:

retro_vfs_file_handle | None

Returns:

A new retro_vfs_file_handle, or None if the file could not be opened.

See also

retro_vfs_open_t()

close(stream)[source]

Close the file referenced by stream.

Parameters:

stream (retro_vfs_file_handle) – A file handle previously returned by open().

Return type:

bool

Returns:

True if the file was closed successfully, False otherwise.

See also

retro_vfs_close_t()

size(stream)[source]

Return the size of the file referenced by stream.

Parameters:

stream (retro_vfs_file_handle) – An open file handle previously returned by open().

Return type:

int

Returns:

The size of the file in bytes, or a negative value on failure.

See also

retro_vfs_size_t()

truncate(stream, length)[source]

Truncate (or extend) the file referenced by stream to length bytes.

Parameters:
Return type:

bool

Returns:

True if the operation succeeded, False otherwise.

See also

retro_vfs_truncate_t()

tell(stream)[source]

Return the current read/write offset within stream.

Parameters:

stream (retro_vfs_file_handle) – An open file handle previously returned by open().

Return type:

int

Returns:

The current byte offset from the start of the file, or a negative value on failure.

See also

retro_vfs_tell_t()

seek(stream, offset, whence)[source]

Move stream’s read/write offset to offset relative to whence.

Parameters:
  • stream (retro_vfs_file_handle) – An open file handle previously returned by open().

  • offset (int) – The new offset, in bytes, relative to whence.

  • whence (VfsSeekPosition) – The reference position used to interpret offset.

Return type:

int

Returns:

The resulting absolute offset, or a negative value on failure.

See also

retro_vfs_seek_t()

read(stream, buffer)[source]

Read bytes from stream into buffer.

Parameters:
Return type:

int

Returns:

The number of bytes actually read, or a negative value on failure.

See also

retro_vfs_read_t()

write(stream, buffer)[source]

Write the contents of buffer to stream at its current offset.

Parameters:
Return type:

int

Returns:

The number of bytes actually written, or a negative value on failure.

See also

retro_vfs_write_t()

flush(stream)[source]

Flush any buffered data for stream to the underlying storage.

Parameters:

stream (retro_vfs_file_handle) – An open file handle previously returned by open().

Return type:

bool

Returns:

True if the flush succeeded, False otherwise.

See also

retro_vfs_flush_t()

remove(path)[source]

Delete the file at path.

Parameters:

path (bytes) – Path of the file to remove, encoded as bytes.

Return type:

bool

Returns:

True if the file was removed successfully, False otherwise.

See also

retro_vfs_remove_t()

rename(old_path, new_path)[source]

Rename or move the file at old_path to new_path.

Parameters:
  • old_path (bytes) – Existing path of the file, encoded as bytes.

  • new_path (bytes) – New path for the file, encoded as bytes.

Return type:

bool

Returns:

True if the rename succeeded, False otherwise.

See also

retro_vfs_rename_t()

stat(path)[source]

Return file metadata for path.

Parameters:

path (bytes) – Path of the entry to inspect, encoded as bytes.

Return type:

tuple[VfsStat, int] | None

Returns:

A pair of VfsStat flags and the entry size in bytes, or None if path does not exist.

See also

retro_vfs_stat_t()

mkdir(path)[source]

Create a directory at path.

Parameters:

path (bytes) – Path of the directory to create, encoded as bytes.

Return type:

VfsMkdirResult

Returns:

A VfsMkdirResult describing the outcome of the operation.

See also

retro_vfs_mkdir_t()

opendir(path, include_hidden)[source]

Open the directory at path for iteration.

Parameters:
  • path (bytes) – Path of the directory to open, encoded as bytes.

  • include_hidden (bool) – Whether hidden entries should be returned during iteration.

Return type:

retro_vfs_dir_handle | None

Returns:

A new retro_vfs_dir_handle, or None if the directory could not be opened.

See also

retro_vfs_opendir_t()

readdir(dir)[source]

Advance dir to its next entry.

Parameters:

dir (retro_vfs_dir_handle) – An open directory handle previously returned by opendir().

Return type:

bool

Returns:

True if a new entry is now available, False if the end was reached.

See also

retro_vfs_readdir_t()

dirent_get_name(dir)[source]

Return the name of the current entry in dir.

Parameters:

dir (retro_vfs_dir_handle) – An open directory handle previously returned by opendir().

Return type:

bytes | None

Returns:

The entry name as bytes, or None if no entry is available.

See also

retro_vfs_dirent_get_name_t()

dirent_is_dir(dir)[source]

Return whether the current entry in dir refers to a subdirectory.

Parameters:

dir (retro_vfs_dir_handle) – An open directory handle previously returned by opendir().

Return type:

bool

Returns:

True if the current entry is a directory, False otherwise.

See also

retro_vfs_dirent_is_dir_t()

closedir(dir)[source]

Close dir and release any associated resources.

Parameters:

dir (retro_vfs_dir_handle) – A directory handle previously returned by opendir().

Return type:

bool

Returns:

True if the directory was closed successfully, False otherwise.

See also

retro_vfs_closedir_t()

property history

The recorded operations in the order they were performed.

classmethod __new__(*args, **kwargs)
class GetPath[source]

Bases: object

Recorded FileSystemDriver.get_path() call.

stream
result
__init__(*, stream, result)
classmethod __new__(*args, **kwargs)
class Open[source]

Bases: object

Recorded FileSystemDriver.open() call.

path
mode
hints
result
__init__(*, path, mode, hints, result)
classmethod __new__(*args, **kwargs)
class Close[source]

Bases: object

Recorded FileSystemDriver.close() call.

stream
result
__init__(*, stream, result)
classmethod __new__(*args, **kwargs)
class Size[source]

Bases: object

Recorded FileSystemDriver.size() call.

stream
result
__init__(*, stream, result)
classmethod __new__(*args, **kwargs)
class Truncate[source]

Bases: object

Recorded FileSystemDriver.truncate() call.

stream
length
result
__init__(*, stream, length, result)
classmethod __new__(*args, **kwargs)
class Tell[source]

Bases: object

Recorded FileSystemDriver.tell() call.

stream
result
__init__(*, stream, result)
classmethod __new__(*args, **kwargs)
class Seek[source]

Bases: object

Recorded FileSystemDriver.seek() call.

stream
offset
whence
result
__init__(*, stream, offset, whence, result)
classmethod __new__(*args, **kwargs)
class Read[source]

Bases: object

Recorded FileSystemDriver.read() call.

stream
buffer
result
__init__(*, stream, buffer, result)
classmethod __new__(*args, **kwargs)
class Write[source]

Bases: object

Recorded FileSystemDriver.write() call.

stream
buffer
result
__init__(*, stream, buffer, result)
classmethod __new__(*args, **kwargs)
class Flush[source]

Bases: object

Recorded FileSystemDriver.flush() call.

stream
result
__init__(*, stream, result)
classmethod __new__(*args, **kwargs)
class Remove[source]

Bases: object

Recorded FileSystemDriver.remove() call.

path
result
__init__(*, path, result)
classmethod __new__(*args, **kwargs)
class Rename[source]

Bases: object

Recorded FileSystemDriver.rename() call.

old_path
new_path
result
__init__(*, old_path, new_path, result)
classmethod __new__(*args, **kwargs)
class Stat[source]

Bases: object

Recorded FileSystemDriver.stat() call.

path
result
__init__(*, path, result)
classmethod __new__(*args, **kwargs)
class Mkdir[source]

Bases: object

Recorded FileSystemDriver.mkdir() call.

path
result
__init__(*, path, result)
classmethod __new__(*args, **kwargs)
class OpenDir[source]

Bases: object

Recorded FileSystemDriver.opendir() call.

path
include_hidden
result
__init__(*, path, include_hidden, result)
classmethod __new__(*args, **kwargs)
class ReadDir[source]

Bases: object

Recorded FileSystemDriver.readdir() call.

dir
result
__init__(*, dir, result)
classmethod __new__(*args, **kwargs)
class DirentGetName[source]

Bases: object

Recorded FileSystemDriver.dirent_get_name() call.

dir
result
__init__(*, dir, result)
classmethod __new__(*args, **kwargs)
class DirentIsDir[source]

Bases: object

Recorded FileSystemDriver.dirent_is_dir() call.

dir
result
__init__(*, dir, result)
classmethod __new__(*args, **kwargs)
class CloseDir[source]

Bases: object

Recorded FileSystemDriver.closedir() call.

dir
result
__init__(*, dir, result)
classmethod __new__(*args, **kwargs)