Source code for falconz.input_validation

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
.. module:: input_validation
   :platform: Unix, Windows
   :synopsis: A module for input validation for the falconz.

.. moduleauthor:: Lalith Kumar Shiyam Sundar <lalith.shiyamsundar@meduniwien.ac.at>

This module handles input validation for the falconz.

Usage:
    The functions in this module can be imported and used in other modules within the falconz to perform image conversion.
"""
import logging
import os

from falconz.constants import ALLOWED_MODES


[docs] class InputValidation: """ A class for input validation for the falconz. :param args: The arguments to validate. :type args: Any """ def __init__(self, args): self.args = args
[docs] def validate(self): """ Validates the input arguments. """ self._check_directory_exists() self._check_reference_frame_index() self._check_start_frame() self._check_registration_type() self._check_multi_resolution_iterations() self._check_operation_mode() logging.info("Input validation successful.")
def _check_directory_exists(self): """ Checks if the specified directory exists. """ if not os.path.exists(self.args.directory): raise ValueError(f"The specified directory does not exist: {self.args.directory}") def _check_reference_frame_index(self): """ Checks if the reference frame index is valid. """ if not isinstance(self.args.reference_frame_index, int) or self.args.reference_frame_index < -1: raise ValueError( f"Reference frame index must be a non-negative integer or -1: {self.args.reference_frame_index}") def _check_start_frame(self): """ Checks if the start frame is valid. """ if not isinstance(self.args.start_frame, int) or self.args.start_frame < 0: raise ValueError(f"Start frame must be a non-negative integer: {self.args.start_frame}") def _check_registration_type(self): """ Checks if the registration type is valid. """ allowed_registration_paradigms = ["rigid", "affine", "deformable"] if self.args.registration not in allowed_registration_paradigms: raise ValueError(f"Invalid registration type. Allowed values are: {allowed_registration_paradigms}") def _check_multi_resolution_iterations(self): """ Checks if the multi-resolution iterations are valid. """ if not isinstance(self.args.multi_resolution_iterations, str) or not all( i.isdigit() for i in self.args.multi_resolution_iterations.split('x')): raise ValueError( f"Multi resolution iterations must be a 'x' separated numeric string: {self.args.multi_resolution_iterations}") def _check_operation_mode(self): """ Checks if the operation mode is valid. """ if self.args.mode not in ALLOWED_MODES: raise ValueError(f"Invalid operation mode. Allowed values are: {ALLOWED_MODES}")