ciyidogan commited on
Commit
815a822
·
verified ·
1 Parent(s): 95d76b3

Delete validation_engine.py

Browse files
Files changed (1) hide show
  1. validation_engine.py +0 -132
validation_engine.py DELETED
@@ -1,132 +0,0 @@
1
- """
2
- Flare – Parameter Validation (locale-aware)
3
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
- Locale-based validation with multi-language support
5
- """
6
-
7
- import re
8
- from typing import Any, Optional, List
9
- from datetime import datetime
10
- from config_models import ParameterConfig
11
- from locale_manager import LocaleManager
12
- from logger import log_info, log_error, log_warning, log_debug
13
-
14
- def validate(value: str, param: ParameterConfig, locale: Optional[str] = None) -> bool:
15
- """Validate parameter value based on type and locale"""
16
- t = param.canonical_type()
17
-
18
- if t == "int":
19
- if not value.isdigit():
20
- return False
21
- elif t == "float":
22
- try:
23
- float(value)
24
- except ValueError:
25
- return False
26
- elif t in ("str", "string"):
27
- pass # All strings are valid
28
- elif t == "bool":
29
- # Locale-aware boolean validation
30
- return validate_boolean(value, locale)
31
- elif t == "date":
32
- try:
33
- # Check if it's a valid ISO date format (YYYY-MM-DD)
34
- datetime.strptime(value, "%Y-%m-%d")
35
- except ValueError:
36
- return False
37
-
38
- # Regex validation if provided
39
- if param.validation_regex and not re.fullmatch(param.validation_regex, value, re.I):
40
- return False
41
-
42
- return True
43
-
44
- def validate_boolean(value: str, locale: Optional[str] = None) -> bool:
45
- """Validate boolean value based on locale"""
46
- # Default values (always accepted)
47
- default_true = ["1", "true"]
48
- default_false = ["0", "false"]
49
-
50
- value_lower = value.lower().strip()
51
-
52
- # Check default values first
53
- if value_lower in default_true or value_lower in default_false:
54
- return True
55
-
56
- # If no locale specified, use minimal validation
57
- if not locale:
58
- return value_lower in ["yes", "no", "evet", "hayır"]
59
-
60
- try:
61
- # Get locale data
62
- locale_data = LocaleManager.get_locale(locale)
63
-
64
- # Get boolean values from locale
65
- boolean_values = locale_data.get("boolean_values", {})
66
- true_values = boolean_values.get("true_values", [])
67
- false_values = boolean_values.get("false_values", [])
68
-
69
- # Include synonyms if available
70
- yes_synonyms = boolean_values.get("yes_synonyms", [])
71
- no_synonyms = boolean_values.get("no_synonyms", [])
72
-
73
- # Combine all accepted values
74
- all_true_values = set(true_values + yes_synonyms + default_true)
75
- all_false_values = set(false_values + no_synonyms + default_false)
76
-
77
- # Convert to lowercase for comparison
78
- all_true_values = {v.lower() for v in all_true_values}
79
- all_false_values = {v.lower() for v in all_false_values}
80
-
81
- return value_lower in all_true_values or value_lower in all_false_values
82
-
83
- except Exception as e:
84
- log_error("⚠️ Error in locale-based boolean validation", e)
85
- # Fallback to basic validation
86
- return value_lower in ["yes", "no", "evet", "hayır", "1", "0", "true", "false"]
87
-
88
- def get_boolean_value(value: str, locale: Optional[str] = None) -> Optional[bool]:
89
- """Convert locale-specific boolean string to Python bool"""
90
- value_lower = value.lower().strip()
91
-
92
- # Default true values
93
- if value_lower in ["1", "true"]:
94
- return True
95
- if value_lower in ["0", "false"]:
96
- return False
97
-
98
- if not locale:
99
- # Basic conversion without locale
100
- if value_lower in ["yes", "evet"]:
101
- return True
102
- elif value_lower in ["no", "hayır"]:
103
- return False
104
- return None
105
-
106
- try:
107
- # Get locale data
108
- locale_data = LocaleManager.get_locale(locale)
109
- boolean_values = locale_data.get("boolean_values", {})
110
-
111
- true_values = set(v.lower() for v in boolean_values.get("true_values", []))
112
- false_values = set(v.lower() for v in boolean_values.get("false_values", []))
113
- yes_synonyms = set(v.lower() for v in boolean_values.get("yes_synonyms", []))
114
- no_synonyms = set(v.lower() for v in boolean_values.get("no_synonyms", []))
115
-
116
- # Check if it's a true value
117
- if value_lower in true_values or value_lower in yes_synonyms or value_lower == "1":
118
- return True
119
-
120
- # Check if it's a false value
121
- if value_lower in false_values or value_lower in no_synonyms or value_lower == "0":
122
- return False
123
-
124
- return None
125
-
126
- except Exception as e:
127
- log_error("⚠️ Error converting boolean value", e)
128
- return None
129
-
130
- def get_supported_locales() -> List[str]:
131
- """Get list of supported locales for validation"""
132
- return LocaleManager.list_available_locales()