neuralib.persistence.persistence.PersistenceHandler

class neuralib.persistence.persistence.PersistenceHandler[source]

Bases: Generic[T]

The handler for loading and saving persistence instance.

__init__()

Methods

__init__()

filename(result, **kwargs)

build filename for persistence instance.

filepath(result, **kwargs)

build filepath for persistence instance.

load_all(result, **kwargs)

load all persistent result under save_root.

load_persistence(path)

Load data as data_cls from path without validation.

save_persistence(result[, path])

save persistence result under path.

validate(ref, res)

Attributes

persistence_class

persistence_info

information for persistence class

save_root

saving directory

abstract property persistence_class: type[T]
Returns:

type T

property persistence_info: PersistentClass[T]

information for persistence class

abstract property save_root: Path

saving directory

filename(result, **kwargs)[source]

build filename for persistence instance.

Parameters:
  • result (T | None) – persistence instance

  • kwargs – overwrite field value in result.

Returns:

file name of result, may contains ‘{}’ if result’s autoinc field not resolved

Return type:

str

filepath(result, **kwargs)[source]

build filepath for persistence instance.

Parameters:
  • result (T | None) – persistence instance

  • kwargs – overwrite field value in result.

Returns:

file path of result

Raises:

RuntimeErrorresult’s autoinc field not resolved, or errors from filename()

Return type:

Path

validate(ref, res)[source]
Parameters:
  • ref (T)

  • res (T)

Return type:

bool

save_persistence(result, path=None)[source]

save persistence result under path.

Parameters:
  • result (T)

  • path (str | Path | None) – save path.

Returns:

result. autoinc field will be resolved after saving.

Raises:

AutoIncFieldNotResolvedError

Return type:

T

load_persistence(path)[source]

Load data as data_cls from path without validation.

Parameters:

path (Path | T | dict[str, Any]) – load from path.

Returns:

persistence instance

Raises:

IsADirectoryError

Return type:

T

load_all(result, **kwargs)[source]

load all persistent result under save_root. missing is used to make a field becomes a wildcard field.

>>> template = Example(use_animal='A00', use_session='test', use_date='20200101')
>>> # find all animal A00's persistent result.
>>> found = PickleHandler(Example, Path('')).load_all(template, use_date=missing)
Parameters:

result (T | None)

Return type:

Iterator[tuple[Path, T]]