principia_materia.io_interface.base_data_wrapper module

class principia_materia.io_interface.base_data_wrapper.BaseDataWrapper(title=None)

Bases: ABC

A container stores how to process the dumping/loading of a collection of data

An object oriented wrapper to load and dump data in a certain format.

It’s also designed multiple wrappers can be added up to form a wrapper that handles all the data contained in every one of the sub-wrappers.

Parameters:

title (str, default to None) – A comment description for the file.

add_item(key, choices=None, dtype=None, load_dtype=None, save_dtype=None, optional=False, help=None, alias=None, depends=None)

Add an item of data to the container.

Parameters:
  • key (str) – The name of the item to be save in the data file.

  • dtype (str, default to None) – Data type of the item. The corresponding save/load functions will be used to save/load the item.

  • load_dtype (str or callable, default to None) – The function to load the item.

  • save_dtype (str or callable, default to None) – The function to save the item.

  • optional (bool, default to False) – Whether the item is optional.

  • help (str, default to None) – The description of the item.

  • alias (list of str, default to None) – A list aliases of the item keyword.

  • depends (list of str, default to None) – The keywords that are required when the item is present.

copy()
delete_item(key, allow_missing=False)

Delete an item of the data from the container.

abstract dump(data, filename, allow_missing=False, overwrite=False)

Dump the data into a data file

Parameters:
  • data (dict) – The dictionary containing data to be saved.

  • filename (str) – The name of the file to save the data into,

  • allow_missing (bool, optional, default to False) – Whether to allow a declared key not to exists in the data dictionary.

  • overwrite (bool, optional, default to False) – When the file exists, whether to replace the content of the file with the content to be saved.

dumps(data, allow_missing=False)

Dump the data into string

Parameters:
  • data (dict) – The dictionary containing data to be saved.

  • allow_missing (bool, optional, default to False) – Whether to allow a declared key not to exists in the data dictionary.

get_alias_map()
get_all_names_aliases()
abstract load(filename, allow_missing=False, allow_unknown=False, load_unknown=False)

Load the data from a data file

Parameters:
  • filename (str) – The name of the file to save the data into,

  • allow_missing (bool, optional, default to False) – Whether to allow a declared key not to exists in the data dictionary.

  • allow_unknown (bool, optional, default to False) – Whether to allow keys not declared in the container. Though even if allowed, those keys will not be loaded if load_unknown == False.

  • load_unknown (bool, optional, default to False) – Whether to load keys not declared in the container to be loaded in raw.

loads(text, allow_missing=False, allow_unknown=False, load_unknown=False)

Load the data from a string

Parameters:
  • text (str) – Data in text format,

  • allow_missing (bool, optional, default to False) – Whether to allow a declared key not to exists in the data dictionary.

  • allow_unknown (bool, optional, default to False) – Whether to allow keys not declared in the container. Though even if allowed, those keys will not be loaded if load_unknown == False.

  • load_unknown (bool, optional, default to False) – Whether to load keys not declared in the container to be loaded in raw.

register_dtype(name, load_dtype, save_dtype)

Add an load and save dtype to the container

Parameters:
  • name (str) – The name of the dtype.

  • load_dtype (callable) – A callable to perform the load dtype. It’ll process the data and return its final form after loaded from data file.

  • save_dtype (callable) – A callable to perform the save dtype. It’ll process the data and return the value to be dumped to the data file.

self_check(try_fix=True)
verify_data(data)