salvus.project.components.entity_component
salvus.project.components.entity_component salvus project components entity_component The entity component.
Functions
type_to_entity_string()
type_to_entity_string()def type_to_entity_string(_type: type | ABCMeta) -> str: ...Convert a type to the corresponding entity_type string as used in Salvus’
entity component.
_typetype | ABCMeta — The type to find corresponding entity string for. Allowed to be subtype of defined entity types.
Classes
EntityComponent
EntityComponentclass EntityComponent(builtins.object):
def __init__(
self, project: salvus.project.project.Project, path: pathlib.Path
): ...Project subclass handling all things related to various configuration components which we’ll call entities.
projectsalvus.project.project.Project — The project.pathpathlib.Path — The path where the entities are stored within the project.
add()
add()def add(
self,
entity: typing.Any,
overwrite: bool = False,
skip_validation: bool = True,
timer: Timer | None = None,
log_to_logger: bool = False,
comm: int | None = None,
) -> None: ...Add an entity to the project.
entitytyping.Any — The entity to add.overwritebool — Potentially overwrite an existing thing in project if it already exists.skip_validationbool — If set to true, any validation steps are skipped. This currently only affects mesh QC.timerTimer | None — Execution timer.log_to_loggerbool — Log timings to the logger.commint | None — MPI communicator, if any.
delete()
delete()def delete(self, entity_type: str, entity_name: str) -> None: ...Remove an entity from the project.
entity_typestr — The type of entity to delete.entity_namestr — The name of the entity.
get()
get()def get(
self,
entity_type: str,
entity_name: str,
comm: int | None = None,
max_wait_time_if_mpi_in_seconds: float = 5.0,
) -> typing.Any: ...Get an entity.
The returned object must be treated as read-only. For some entity
types - see _cacheable_entity_types - repeated calls return the very
same instance rather than a fresh one, so modifying it would change
what every other holder of that entity sees. Deep copy it first if it
has to be changed:
sc = p.entities.get("simulation_configuration", "my_sim")
my_own_copy = copy.deepcopy(sc)
A fresh object is always returned once the file backing the entity changes, whether through this component or from another process.
entity_typestr — The type of entity to get.entity_namestr — The name of the entity.commint | None — MPI communicator for distributed meshes and models, if any.max_wait_time_if_mpi_in_secondsfloat — If the file for an entity is not found and a communicator is passed, wait for up to this long for the filesystem to catch up.
get_all()
get_all()def get_all(self, entity_type: str) -> dict[str, typing.Any]: ...Get all entities of a given type.
entity_typestr — The type of entities to get.
get_inverse_problem_configurations()
get_inverse_problem_configurations()def get_inverse_problem_configurations(
self, inversions: typing.Sequence[str] | None = None
) -> dict[str, InverseProblemConfiguration]: ...Get the inverse problem configuration objects for the passed inversions.
inversionstyping.Sequence[str] | None — Inversions to return the objects for. Omitting this parameter returns all inversion problem configurations related to the project.
has()
has()def has(self, entity_type: str, entity_name: str) -> bool: ...A check if an entity of a given type or name exists.
entity_typestr — The type of entity to get.entity_namestr — The name of the entity.
list()
list()def list(self, entity_type: str) -> list[str]: ...List all available entities of the chosen type.
entity_typestr — The type of the entities to list.