def analyse()

in src/open_vp_cal/application_base.py [0:0]


    def analyse(self, led_walls: List[LedWallSettings]) -> bool:
        """ Runs the analysis for each of the LED walls in the selection, and performs some pre validation checks
        to ensure that the LED walls are correctly setup

        Args:
            led_walls: The LED walls we want to analyse

        Returns:
            Whether the analysis was successful or not
        """
        if not led_walls:
            message = "No Led Walls Provided"
            self.error_message(message)
            return False

        for led_wall in led_walls:
            if led_wall.processing_results:
                if led_wall.processing_results.samples:
                    message = f"Sampling Results Already Exist For {led_wall.name}, Would You Like To Overwrite?"
                    if not self.warning_message(message):
                        return False
                    break

        if not self.run_pre_checks(led_walls):
            return False

        led_walls = utils.led_wall_reference_wall_sort(led_walls)

        # We have to do these sequentially encase we are using a reference wall
        # if the separation fails inform the user to try again or that they have an issue
        for led_wall in led_walls:
            try:
                processing = Processing(led_wall)
                processing.run_sampling()
                processing.analyse()
            except SeparationException as e:
                self.error_message(f"{led_wall.name}\n{e}")
                return False
            except OpenVPCalException as e:
                self.error_message(f"{led_wall.name}\n{e}")
                return False
            except OpenVPCalWarning as e:
                self.error_message(f"{led_wall.name}\n{e}")
                return True
        return True