keyerrors handled on all attributes of classes Layers and Entrypoint

This commit is contained in:
2026-01-28 15:45:36 +01:00
parent fd903f025b
commit f74d8efea8

View File

@@ -6,17 +6,17 @@ class Layers:
def __init__(self, layer_data): def __init__(self, layer_data):
try: try:
self.extra = layer_data["metadata_decoded"]["extra_fields"] self.extra = layer_data["metadata_decoded"]["extra_fields"]
self.target_elabid = self.extra["Target"]["value"]
self.start_time = layer_data.get("created_at")
self.operator = layer_data.get("fullname")
self.description = layer_data.get("body")
self.deposition_time = self.extra["Duration"]["value"]
self.repetition_rate = self.extra["Repetition rate"]["value"]
self.number_of_pulses = float(self.deposition_time) * float(self.repetition_rate)
self.temperature = self.extra["Heater temperature "]["value"]
self.heating_method = self.extra["Heating Method"]["value"]
except KeyError as k: except KeyError as k:
raise KeyError(f"The provided dictionary lacks a \"{k}\" key.") raise KeyError(f"The provided dictionary lacks a \"{k}\" key.")
self.target_elabid = self.extra["Target"]["value"]
self.start_time = layer_data.get("created_at")
self.operator = layer_data.get("fullname")
self.description = layer_data.get("body")
self.deposition_time = self.extra["Duration"]["value"]
self.repetition_rate = self.extra["Repetition rate"]["value"]
self.number_of_pulses = float(self.deposition_time) * float(self.repetition_rate)
self.temperature = self.extra["Heater temperature "]["value"]
self.heating_method = self.extra["Heating Method"]["value"]
class Entrypoint: class Entrypoint:
''' '''
@@ -33,11 +33,11 @@ class Entrypoint:
''' '''
try: try:
self.extra = sample_data["metadata_decoded"]["extra_fields"] self.extra = sample_data["metadata_decoded"]["extra_fields"]
self.linked_experiments = sample_data.get("related_experiments_links") or None
self.linked_items = sample_data.get("items_links") or None
self.batch_elabid = self.extra["Substrate batch"]["value"]
except KeyError as k: except KeyError as k:
raise KeyError(f"The provided dictionary lacks a \"{k}\" key.") raise KeyError(f"The provided dictionary lacks a \"{k}\" key.")
self.linked_experiments = sample_data.get("related_experiments_links") or None
self.linked_items = sample_data.get("items_links") or None
self.batch_elabid = self.extra["Substrate batch"]["value"]
def get_entry_from_elabid(elabid, entryType="items"): def get_entry_from_elabid(elabid, entryType="items"):