def _run(self, element): self._update_status(0.1, "Check version") if self.is_cancelled(): return version = self._read_version(element) if version != VERSION: raise ValueError("Incompatible version: %s != %s" % (version, VERSION)) self._update_status(0.13, "Reading name") if self.is_cancelled(): return name = self._read_name(element) options = Options(name) self._update_status(0.16, "Reading UUID") if self.is_cancelled(): return options._uuid = self._read_uuid(element) self._update_status(0.2, "Reading programs") if self.is_cancelled(): return options.programs.update(self._read_programs(element)) self._update_status(0.3, "Reading beams") if self.is_cancelled(): return options.beam = self._read_beams(element) self._update_status(0.4, "Reading geometries") if self.is_cancelled(): return options.geometry = self._read_geometries(element) self._update_status(0.6, "Reading detectors") if self.is_cancelled(): return options.detectors.update(self._read_detectors(element)) self._update_status(0.8, "Reading limits") if self.is_cancelled(): return options.limits.update(self._read_limits(element)) self._update_status(0.9, "Reading models") if self.is_cancelled(): return options.models.update(self._read_models(element)) return options