Spaces:
Paused
Paused
| """ | |
| Flare – Parameter Validation (with date support) | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| Basit tip + regex kontrolü; Spark veya harici lib ile zenginleştirilebilir. | |
| """ | |
| import re | |
| from typing import Any | |
| from datetime import datetime | |
| from config_provider import ParameterConfig | |
| def validate(value: str, param: ParameterConfig) -> bool: | |
| t = param.canonical_type() | |
| if t == "int": | |
| if not value.isdigit(): | |
| return False | |
| elif t == "float": | |
| try: | |
| float(value) | |
| except ValueError: | |
| return False | |
| elif t in ("str", "string"): | |
| pass # All strings are valid | |
| elif t == "bool": | |
| if value.lower() not in ("true","false","1","0","evet","hayır"): | |
| return False | |
| # Special handling for date type | |
| if param.type == "date": | |
| try: | |
| # Check if it's a valid ISO date format (YYYY-MM-DD) | |
| datetime.strptime(value, "%Y-%m-%d") | |
| except ValueError: | |
| return False | |
| # Regex validation if provided | |
| if param.validation_regex and not re.fullmatch(param.validation_regex, value, re.I): | |
| return False | |
| return True | |