flare / validation_engine.py
ciyidogan's picture
Update validation_engine.py
2bfc495 verified
raw
history blame
2 kB
import re
from utils import log
class ValidationEngine:
def __init__(self):
pass
def validate_parameters(self, intent_def, variables):
"""
Checks all parameters defined in the intent against provided variables.
Returns: (is_valid, error_messages)
"""
is_valid = True
error_messages = []
for param_def in intent_def.get("parameters", []):
name = param_def.get("name")
expected_type = param_def.get("type", "string")
regex = param_def.get("regex")
validation_message = param_def.get("validation_message", f"Invalid value for {name}.")
value = variables.get(name)
# Check existence
if value is None:
continue # Missing parameters are handled elsewhere
# Type check
if expected_type == "string":
if not isinstance(value, str):
is_valid = False
error_messages.append(f"{validation_message} Expected a string.")
continue
elif expected_type == "int":
if not isinstance(value, int):
is_valid = False
error_messages.append(f"{validation_message} Expected an integer.")
continue
elif expected_type == "float":
if not isinstance(value, float):
is_valid = False
error_messages.append(f"{validation_message} Expected a float.")
continue
# Regex check
if regex and isinstance(value, str):
if not re.match(regex, value):
is_valid = False
error_messages.append(validation_message)
if is_valid:
log("βœ… Parameter validation passed.")
else:
log(f"❌ Parameter validation failed: {error_messages}")
return is_valid, error_messages