def run_pre_checks()

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


    def run_pre_checks(self, led_walls: List[LedWallSettings]) -> bool:
        """ Runs the pre-checks for the analysis and calibration, we report any warnings or failures to the user.

        Args:
            led_walls: The LED walls we want to run the pre-checks on

        Returns:
            Whether we should continue with the analysis/calibration or not
        """
        led_wall_names = [led_wall.name for led_wall in led_walls]
        for led_wall in led_walls:
            if not led_wall.has_valid_white_balance_options():
                message = f"Only Select 1 option from AutoWB, or Reference Wall or External White {led_wall.name}"
                self.error_message(message)
                return False

            if led_wall.native_camera_gamut == constants.CameraColourSpace.CS_ACES:
                message = f"Native Camera Gamut Should Not Be {constants.CameraColourSpace.CS_ACES} For {led_wall.name}"
                self.error_message(message)
                return False

            if led_wall.use_white_point_offset:
                if not led_wall.white_point_offset_source:
                    self.error_message(f"External White Point Enabled But File Not Set {led_wall.name}")
                    return False

                if not os.path.exists(led_wall.white_point_offset_source):
                    self.error_message(f"External White Point File Set Does Not Exist {led_wall.name}")
                    return False

            if led_wall.match_reference_wall:
                if not led_wall.reference_wall:
                    self.error_message(f"Match Reference Wall Enabled But Not Set {led_wall.name} Not In Selection")
                    return False

                if led_wall.reference_wall not in led_wall_names:
                    self.error_message(f"Reference Wall {led_wall.reference_wall} Not In Selection")
                    return False

        if not self.single_camera_across_all_wall(led_walls):
            return False

        return True