Skip to content

unienv_data.base.storage

SpaceStorage

SpaceStorage(single_instance_space: Space[BatchT, BDeviceType, BDtypeType, BRNGType])

Bases: ABC, Generic[BatchT, BArrayType, BDeviceType, BDtypeType, BRNGType]

SpaceStorage is an abstract base class for storages that hold instances of a specific space. It provides a common interface for creating, loading, and managing the storage of instances of a given space. Note that if you want your space storage to support multiprocessing, you need to check / implement __getstate__ and __setstate__ methods to ensure that the storage can be pickled and unpickled correctly.

Bind the storage to the space of one stored element.

single_file_ext class-attribute instance-attribute

single_file_ext: Optional[str] = None

The total capacity (number of single instances) of the storage. If None, the storage has unlimited capacity.

capacity class-attribute instance-attribute

capacity: Optional[int] = None

The cache path for the storage. If None, the storage will not use caching.

cache_filename class-attribute instance-attribute

cache_filename: Optional[Union[str, PathLike]] = None

Can the storage instance be safely used in multiprocessing environments after creation? If True, the storage can be used in multiprocessing environments.

is_multiprocessing_safe class-attribute instance-attribute

is_multiprocessing_safe: bool = False

Is the storage mutable? If False, the storage is read-only.

is_mutable class-attribute instance-attribute

is_mutable: bool = True

backend property

backend: ComputeBackend[BArrayType, BDeviceType, BDtypeType, BRNGType]

device property

device: Optional[BDeviceType]

single_instance_space instance-attribute

single_instance_space = single_instance_space

create classmethod

create(single_instance_space: Space[BatchT, BDeviceType, BDtypeType, BRNGType], *args, capacity: Optional[int], cache_path: Optional[Union[str, PathLike]] = None, multiprocessing: bool = False, **kwargs) -> SpaceStorage[BatchT, BArrayType, BDeviceType, BDtypeType, BRNGType]

Create a new storage instance for samples from single_instance_space.

load_from classmethod

load_from(path: Union[str, PathLike], single_instance_space: Space[BatchT, BDeviceType, BDtypeType, BRNGType], *, capacity: Optional[int] = None, read_only: bool = True, multiprocessing: bool = False, **kwargs) -> SpaceStorage[BatchT, BArrayType, BDeviceType, BDtypeType, BRNGType]

Restore a storage instance previously written to disk.

extend_length

extend_length(length: int) -> None

This is used by capacity = None storages to extend the length of the storage If this is called on a storage with a fixed capacity, we will simply ignore the call.

shrink_length

shrink_length(length: int) -> None

This is used by capacity = None storages to shrink the length of the storage If this is called on a storage with a fixed capacity, we will simply ignore the call.

get abstractmethod

get(index: Union[IndexableType, BArrayType]) -> BatchT

Read one or more samples from storage.

set abstractmethod

set(index: Union[IndexableType, BArrayType], value: BatchT) -> None

Write one or more samples into storage.

clear

clear() -> None

Clear all data inside the storage and set the length to 0 if the storage has unlimited capacity. For storages with fixed capacity, this should reset the storage to its initial state.

dumps abstractmethod

dumps(path: Union[str, PathLike]) -> None

Dumps the storage to the specified path. This is used for storages that have a single file extension (e.g. .pt for PyTorch).

close

close() -> None