Exemple #1
0
    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