safeshield 1.6.5__py3-none-any.whl → 1.6.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: safeshield
3
- Version: 1.6.5
3
+ Version: 1.6.8
4
4
  Summary: Library for Help Validation Control
5
5
  Home-page: https://github.com/WunsunTarniho/py-guard
6
6
  Author: Wunsun Tarniho
@@ -1,7 +1,7 @@
1
- safeshield-1.6.5.dist-info/licenses/LICENSE,sha256=YxHGBtuH0Vsy-KPvW2_afKE54XIrf1eipLF4v6kaybI,35276
1
+ safeshield-1.6.8.dist-info/licenses/LICENSE,sha256=YxHGBtuH0Vsy-KPvW2_afKE54XIrf1eipLF4v6kaybI,35276
2
2
  validator/__init__.py,sha256=udxDzUicPfxBOAQvzsnl3pHur9VUppKbWMgg35hpiww,244
3
3
  validator/exceptions.py,sha256=y2v7CaXmeGFHWcnigtLl4U-sFta_jMiXkGKXWIIVglY,366
4
- validator/factory.py,sha256=SJ2iJmTnFS-4ccH-gzZl_7CAW7Z6YJkZbMImu-po80w,1163
4
+ validator/factory.py,sha256=P9D-qbXmhY6LjZZSTKNRNK2YuRmjE7aKIEJud6pWMrk,1175
5
5
  validator/core/__init__.py,sha256=ZcqlXJSk03i_CVzmIN-nVe1UOyvwwO5jhbEj7f62Y_o,59
6
6
  validator/core/validator.py,sha256=cflLhGo_rS6Zh61X7lZfr0q-xR0bBHfylGudZ1uTn7o,12765
7
7
  validator/database/__init__.py,sha256=O-cB6-MhNapJ3iwe5jvifbMfr1dPjXLtEdfNTKIu0hc,171
@@ -9,10 +9,10 @@ validator/database/detector.py,sha256=Vac7oVL26GjU6expGo01-6mgUtXqldr-jirzpYokZB
9
9
  validator/database/manager.py,sha256=XJM_I0WaWfZWV710duAc32p1gtiP2or-MAj75WPw1oM,6478
10
10
  validator/rules/__init__.py,sha256=z3Vk3R5CRgjeqyDWZxdofD2tBMTgdyYVuFmo1mKOTj4,830
11
11
  validator/rules/array.py,sha256=7xwdXnthWZNDbD4lONgqtOf44OOQq1J6XexYm6BXea4,3512
12
- validator/rules/base.py,sha256=yhxQdGiiM-wY7VtRH-KRU-_wmw7RVJnmJcmayO1EqBk,5870
12
+ validator/rules/base.py,sha256=fFc12nUmaPWzoDFvikn7aFQiRsK5zoP5Ld4qBK9fHDE,5871
13
13
  validator/rules/basic.py,sha256=8k-REzsSyknhNuw0vPKMxtovvJBVlyZDihXXVznRQpM,6420
14
14
  validator/rules/boolean.py,sha256=UuSO9BdBMR5l6sB3dgZqoqOVjqu47yjFrmJ7xylTVKs,5452
15
- validator/rules/comparison.py,sha256=BnufmgCkSqzUjSFWvlsKN8auOCKTBs7Pxy5i9rwSQs8,15564
15
+ validator/rules/comparison.py,sha256=BnPPPkf_5TiWNbWX-HzYtpqMpeWWKF2vaj5yXoxMpjc,15863
16
16
  validator/rules/date.py,sha256=k27U3e08OPZoXyEX0Yj86ZfjCUuhLy4eBmqYbyc4Jn4,7292
17
17
  validator/rules/files.py,sha256=3Q0KoadDKqNIiVlBR7b5b-XBs4gOg3ZFu7wU7SrdqWQ,12280
18
18
  validator/rules/format.py,sha256=u_BhPQwW30JYHwZIjHD0ZX449csgTPPCJOeoXaQr4M4,7361
@@ -25,7 +25,7 @@ validator/services/rule_error_handler.py,sha256=l4jA6WtTRBNGytVA_nSwJpbix_viNWhq
25
25
  validator/services/rule_preparer.py,sha256=7HSMuSGGgaYWv8dt_m7pL5MQkJcTwFBH9gfmCZwzt8U,5284
26
26
  validator/utils/__init__.py,sha256=Yzo-xv285Be-a233M4duDdYtscuHiuBbPSX_C8yViJI,20
27
27
  validator/utils/string.py,sha256=0YACzeEaWNEOR9_7O9A8D1ItIbtWfOJ8IfrzcB8VMYA,515
28
- safeshield-1.6.5.dist-info/METADATA,sha256=OVljqH15_ZEVenjySC6L7oWe2Kc-tSPnvftfSfiD35U,6664
29
- safeshield-1.6.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
- safeshield-1.6.5.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
- safeshield-1.6.5.dist-info/RECORD,,
28
+ safeshield-1.6.8.dist-info/METADATA,sha256=Eldu5ERyxn2ivKtDZSX2GADh3l-KpnPkfmk1cAlFdaU,6664
29
+ safeshield-1.6.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
+ safeshield-1.6.8.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
+ safeshield-1.6.8.dist-info/RECORD,,
validator/factory.py CHANGED
@@ -19,10 +19,10 @@ class RuleFactory:
19
19
  _name = name
20
20
 
21
21
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
22
- return validate_func(field, value, params)
22
+ return validate_func(self, field, value, params)
23
23
 
24
24
  def message(self, field: str, params: List[str]) -> str:
25
- return message_func(field, params)
25
+ return message_func(self, field, params)
26
26
 
27
27
  cls._rules[name] = NewRule
28
28
 
validator/rules/base.py CHANGED
@@ -90,7 +90,7 @@ class Rule(ABC):
90
90
 
91
91
  def replacements(self, field, value) -> Dict[str, str]:
92
92
  """Default replacements for all rules"""
93
- return {':attribute': self._get_display_name(field), 'value': value }
93
+ return {':attribute': self._get_display_name(field), ':value': value }
94
94
 
95
95
  def _get_display_name(self, fields: str) -> str:
96
96
  single_input = isinstance(fields, str)
@@ -10,13 +10,17 @@ class MinRule(Rule):
10
10
 
11
11
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
12
12
  try:
13
- min_val = float(params[0])
13
+ min_val = float(self.get_field_value(params[0], params[0]))
14
14
  except ValueError:
15
15
  return False
16
+
17
+ try:
18
+ numeric_value = float(value)
19
+ return min_val < numeric_value
20
+ except ValueError:
21
+ pass
16
22
 
17
- if isinstance(value, (int, float)):
18
- return value >= min_val
19
- elif isinstance(value, str):
23
+ if isinstance(value, str):
20
24
  try:
21
25
  return len(value) >= min_val
22
26
  except ValueError:
@@ -42,7 +46,10 @@ class MaxRule(Rule):
42
46
 
43
47
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
44
48
  try:
45
- max_val = float(params[0])
49
+ try:
50
+ max_val = float(self.get_field_value(params[0], params[0]))
51
+ except ValueError:
52
+ return False
46
53
 
47
54
  # Handle Werkzeug/Flask FileStorage
48
55
  if hasattr(value, 'content_length'): # Flask/Werkzeug
@@ -66,8 +73,11 @@ class MaxRule(Rule):
66
73
  pass
67
74
 
68
75
  # Numeric validation
69
- if isinstance(value, (int, float)):
70
- return value <= max_val
76
+ try:
77
+ numeric_value = float(value)
78
+ return numeric_value <= max_val
79
+ except ValueError:
80
+ pass
71
81
 
72
82
  # String/collection length validation
73
83
  if isinstance(value, (str, list, dict, set, tuple)):