solidipes.loaders.data_container module

class solidipes.loaders.data_container.DataContainer(initial_data={}, name=None, unique_identifier=None, **kwargs)[source]

Bases: object

Container class for other structured data containers

_data_collection

Dictionary of other DataContainer or arbitrary objects. Set entry to “None” to mark as loadable.

_has_native_attr(key)[source]

Check if attribute is present, outside of _data_collection, without using __getattr__

_valid_loading()[source]
add(key, data=None)[source]

Add an arbitrary object to the data collection

compatible_viewers: list[Type[Viewer]]

List of compatible Viewer classes. Optionally override this in subclasses. Ideally, update it with self.compatible_viewers[:0] = [new_viewer_class, …]

copy()[source]

Returns a shallow copy without the need to read from disk again

property data

Load all data if necessary and return it

Accessing this property for the first time will load the data. If self.__loaded_data has only one entry, returns it directly.

Override the _load_data method in subclasses to define how data is loaded or built using other data containers.

property data_info

Returns a multi-line string with information about data keys

property default_viewer: Type[Viewer] | None

Returns the default viewer for this data container

errors

stores the error messages during loading

get(key)[source]

Get a data object by key, loading it if necessary

has(key)[source]

Check if data is available in this container

load_all(*args, **kwargs)[source]
class loadable(func)

Bases: property

foo(obj, *args, **kwargs)
foo_setter(obj, value, *args, **kwargs)
remove(key)[source]

Remove a data object from the data collection

view(**kwargs)[source]

View the file using the default viewer

class solidipes.loaders.data_container.loadable(func)[source]

Bases: property

foo(obj, *args, **kwargs)[source]
foo_setter(obj, value, *args, **kwargs)[source]
solidipes.loaders.data_container.wrap_errors(func)[source]