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.

class Viewer(data_container=None, add_kwargs={}, show_kwargs={}, **kwargs)

Bases: ABC

Abstract class for viewers.

If istanciated with data, it will directly display it.

Parameters:
  • data – data to display

  • add_kwargs – kwargs to pass to the add method. Note: cannot be passed as a positional argument because of get_data_from_container decorator.

  • show_kwargs – kwargs to pass to the show method

  • **kwargs – kwargs to pass to the init method

_abc_impl = <_abc._abc_data object>
abstractmethod add(data, **kwargs) None

Add data to the viewer.

check_data_compatibility(data) bool

Check if data is compatible with the viewer.

class_path = 'solidipes.viewers.viewer.Viewer'
compatible_data_types

List of data types (apart from DataContainers) that are compatible with the viewer DataContainers themselves already declare their compatible Viewers

save(path, **kwargs) NoReturn

Save the view to a file.

abstractmethod show(**kwargs)

Show the viewer.

_compatible_viewers: list[Type[Viewer]] = []

List of compatible Viewer classes. Doesn’t need to include Viewer classes already listed in parent classes.

_data_collection

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

_get_class_validators() list[Validator][source]

Fill the list of validators for this class.

_has_native_attr(key) bool | None[source]

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

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

Add an arbitrary object to the data collection.

add_validation_error(errors)[source]

Add a validation error to the current validation context.

class_path = 'solidipes.loaders.data_container.DataContainer'
compatible_viewers = []
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.

disable_validator(name: str) None[source]

Disable a specific validator.

enable_validator(name: str) None[source]

Enable a specific validator.

property errors: list[str]

List of validation errors.

get(key)[source]

Get a data object by key, loading it if necessary.

get_is_valid(exclude=[], include=None, validation_results=None) bool[source]

Evaluate if all validators are passing.

get_validation_results(exclude=[], include=None) list[ValidationResult][source]

Dictionary of validation results.

has(key)[source]

Check if data is available in this container.

property is_valid: bool

Evaluate if all validators are passing.

keys()[source]
load_all

Load all data.

class loadable(fget, *args, **kwargs)

Bases: property

wrapped_fget(obj)
wrapped_fset(obj, value) None
property preferred_viewer: Type[Viewer] | None

Returns the default viewer for this data container.

property preferred_viewer_name: str

Returns the default viewer name for this data container.

remove(key) None[source]

Remove a data object from the data collection.

property validation_results: list[ValidationResult]

Dictionary of validation results.

property validator_enabled: dict[str, bool]

Dictionary of validator names and enabled status.

view(**kwargs)[source]

View the file using the preferred viewer.

exception solidipes.loaders.data_container.ExitCalled[source]

Bases: RuntimeError

class solidipes.loaders.data_container.PostInit[source]

Bases: object

Metaclass to call __post_init__ after all attributes are initialized.

class solidipes.loaders.data_container.TemporaryFile(delete=False, init=True)[source]

Bases: object

add_extensions(extensions) None[source]
fname(ext=None)[source]
getstate()[source]
open(ext=None, options='r')[source]
setstate(state) None[source]
solidipes.loaders.data_container._validators: dict[str, list[Validator]] = {}

Lists of validators for each DataContainer class

class solidipes.loaders.data_container.loadable(fget, *args, **kwargs)[source]

Bases: property

wrapped_fget(obj)[source]
wrapped_fset(obj, value) None[source]
solidipes.loaders.data_container.my_exit(code=-1)[source]