# sec_interp.core.validation.field_validator module

Validation logic for QGIS layer fields and attributes.

sec_interp.core.validation.field_validator.validate_numeric_input(value: str, min_val: float | None = None, max_val: float | None = None, field_name: str = 'Value', allow_empty: bool = False) → tuple[bool, str, float | None]

  Validate a numeric input string from a text field.

  Parameters:

    - value – The string value to validate.

    - min_val – Optional minimum value allowed.

    - max_val – Optional maximum value allowed.

    - field_name – Name of the field for error messages.

    - allow_empty – Whether to allow an empty string.

  Returns:

    (is_valid, error_message, float_value)

      - is_valid: True if validation passed.

      - error_message: Error details if validation failed.

      - float_value: The parsed numeric value if valid, else None.

  Return type:

    tuple

sec_interp.core.validation.field_validator.validate_integer_input(value: str, min_val: int | None = None, max_val: int | None = None, field_name: str = 'Value', allow_empty: bool = False) → tuple[bool, str, int | None]

  Validate an integer input string from a text field.

  Parameters:

    - value – The string value to validate.

    - min_val – Optional minimum value allowed.

    - max_val – Optional maximum value allowed.

    - field_name – Name of the field for error messages.

    - allow_empty – Whether to allow an empty string.

  Returns:

    (is_valid, error_message, int_value)

      - is_valid: True if validation passed.

      - error_message: Error details if validation failed.

      - int_value: The parsed integer value if valid, else None.

  Return type:

    tuple

sec_interp.core.validation.field_validator.validate_angle_range(value: float, field_name: str, min_angle: float = 0.0, max_angle: float = 360.0) → tuple[bool, str]

  Validate that an angle value is within the expected range.

  Parameters:

    - value – The angle value to validate.

    - field_name – Name of the field for error messages.

    - min_angle – Minimum allowed angle (default 0.0).

    - max_angle – Maximum allowed angle (default 360.0).

  Returns:

    (is_valid, error_message)

      - is_valid: True if validation passed.

      - error_message: Error details if validation failed.

  Return type:

    tuple

sec_interp.core.validation.field_validator.validate_field_exists(layer: qgis.core.QgsVectorLayer, field_name: str | None) → tuple[bool, str]

  Validate that a specific field exists in a vector layer.

  Parameters:

    - layer – The QGIS vector layer to check.

    - field_name – The name of the field to search for.

  Returns:

    (is_valid, error_message)

      - is_valid: True if validation passed.

      - error_message: Error details if validation failed.

  Return type:

    tuple

sec_interp.core.validation.field_validator.validate_field_type(layer: qgis.core.QgsVectorLayer, field_name: str, expected_types: list[FieldType]) → tuple[bool, str]

  Validate that a field in a layer has one of the expected data types.

  Parameters:

    - layer – The QGIS vector layer containing the field.

    - field_name – The name of the field to check.

    - expected_types – List of allowed FieldType values.

  Returns:

    (is_valid, error_message)

      - is_valid: True if validation passed.

      - error_message: Error details if validation failed.

  Return type:

    tuple