safeshield 1.4.6__py3-none-any.whl → 1.4.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.

Potentially problematic release.


This version of safeshield might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: safeshield
3
- Version: 1.4.6
3
+ Version: 1.4.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,6 +1,6 @@
1
1
  validator/__init__.py,sha256=udxDzUicPfxBOAQvzsnl3pHur9VUppKbWMgg35hpiww,244
2
2
  validator/exceptions.py,sha256=y2v7CaXmeGFHWcnigtLl4U-sFta_jMiXkGKXWIIVglY,366
3
- validator/factory.py,sha256=JruOF0Mumk5PPqendNsO5TN4ZmPEGBNS7Nivly4_oUc,772
3
+ validator/factory.py,sha256=lrbgjwvP0Ao8B16FYrybY21Zni-PD240-A19KcppFKI,1129
4
4
  validator/core/__init__.py,sha256=ZcqlXJSk03i_CVzmIN-nVe1UOyvwwO5jhbEj7f62Y_o,59
5
5
  validator/core/validator.py,sha256=la-kzp82iCii2bq4hV76F-7datWPb27vmyHvpg2itR0,12726
6
6
  validator/database/__init__.py,sha256=O-cB6-MhNapJ3iwe5jvifbMfr1dPjXLtEdfNTKIu0hc,171
@@ -17,15 +17,15 @@ validator/rules/files.py,sha256=c7deO8fEiFNCx4jq1B2sJXhxTqGzTVq4kK2EscSNhKI,1094
17
17
  validator/rules/format.py,sha256=Medw57PJwfElxA-DgxiZ5GHqvqPhUCQPFMGCGTDne8w,7070
18
18
  validator/rules/numeric.py,sha256=nkYVc8VtrWJ3Kt7JDLPsbg7ZaN3F0zJMnbf8Y5gxNsk,6824
19
19
  validator/rules/string.py,sha256=p8ZQfd0XaWIjksg_8ta3f6PEnXlxjRzlSJx1GohZ7yk,5237
20
- validator/rules/utilities.py,sha256=x6ZgCuJ7Ywf6jxqp3rwxwgouGe0d6M66UM-GnIvsy6w,12603
20
+ validator/rules/utilities.py,sha256=dLbmSvaTdC2kK7_6V1MrPmtXr5u6YvJKnHMJSByslKk,12236
21
21
  validator/services/__init__.py,sha256=zzKTmqL7v4niFGWHJBfWLqgJ0iTaW_69OzYZN8uInzQ,210
22
22
  validator/services/rule_conflict.py,sha256=T3IhWLmZsRUccJ4oFO-OKRjrc5Xt7r71kktxjjj2IA8,9505
23
23
  validator/services/rule_error_handler.py,sha256=K6vq-pdVd5e4Xw7cpTguORy3VPWUJQa3PoeZZcDwTY8,10643
24
24
  validator/services/rule_preparer.py,sha256=4khRjdely_0Z5mxFwf1bKIid076_xDuNh2XBO_fGerE,4706
25
25
  validator/utils/__init__.py,sha256=Yzo-xv285Be-a233M4duDdYtscuHiuBbPSX_C8yViJI,20
26
26
  validator/utils/string.py,sha256=0YACzeEaWNEOR9_7O9A8D1ItIbtWfOJ8IfrzcB8VMYA,515
27
- safeshield-1.4.6.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
- safeshield-1.4.6.dist-info/METADATA,sha256=3CXu9WPr8LMva7FxwelctlWpw7hPZce0uTweNGrnGz8,2313
29
- safeshield-1.4.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
- safeshield-1.4.6.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
- safeshield-1.4.6.dist-info/RECORD,,
27
+ safeshield-1.4.8.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
+ safeshield-1.4.8.dist-info/METADATA,sha256=AHQH2beR_iP4UKchFmWZOyjrZJ_WPz7kjFNLGDMxU9c,2313
29
+ safeshield-1.4.8.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
+ safeshield-1.4.8.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
+ safeshield-1.4.8.dist-info/RECORD,,
validator/factory.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # factory.py
2
- from typing import Type, Dict, List
2
+ from typing import Type, Dict, List, Any
3
3
  from validator.rules import all_rules
4
4
  from validator.rules.base import Rule
5
5
 
@@ -14,8 +14,17 @@ class RuleFactory:
14
14
  raise ValueError(f"Unknown validation rule: {rule_name}")
15
15
 
16
16
  @classmethod
17
- def register_rule(cls, name: str, rule_class: Type[Rule]):
18
- cls._rules[name] = rule_class
17
+ def register_rule(cls, name: str, validate_func: callable, message_func: callable):
18
+ class NewRule(Rule):
19
+ _name = name
20
+
21
+ def validate(self, field: str, value: Any, params: List[str]) -> bool:
22
+ return validate_func(field, value, params)
23
+
24
+ def message(self, field: str) -> str:
25
+ return message_func(field, self.params)
26
+
27
+ cls._rules[name] = NewRule
19
28
 
20
29
  @classmethod
21
30
  def has_rule(cls, rule_name: str) -> bool:
@@ -264,23 +264,6 @@ class MissingWithAllRule(MissingRule):
264
264
 
265
265
  return True
266
266
 
267
- class IncludeIfRule(ExcludeRule):
268
- def validate(self, field: str, value: Any, params: List[str]) -> bool:
269
- if len(params) == 1 and callable(params[0]):
270
- condition_met = params[0](self.validator.data)
271
- elif len(params) == 1 and isinstance(params[0], bool):
272
- condition_met = params[0]
273
- else:
274
- conditions = list(zip(params[::2], params[1::2]))
275
- condition_met = all(
276
- str(self.get_field_value(f)) == str(v)
277
- for f, v in conditions
278
- )
279
-
280
- if not condition_met:
281
- return super().validate(field, value, params)
282
- return True
283
-
284
267
  class ExcludeIfRule(ExcludeRule):
285
268
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
286
269
  if len(params) == 1 and callable(params[0]):
@@ -300,12 +283,19 @@ class ExcludeIfRule(ExcludeRule):
300
283
 
301
284
  class ExcludeUnlessRule(ExcludeRule):
302
285
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
303
- conditions = [(f.strip(), v.strip()) for f, v in zip(params[::2], params[1::2])]
286
+ all_conditions_met = False
304
287
 
305
- all_conditions_met = all(
306
- self.get_field_value(f) == v
307
- for f, v in conditions
308
- )
288
+ if len(params) == 1 and callable(params[0]):
289
+ all_conditions_met = params[0](self.validator.data)
290
+ elif len(params) == 1 and isinstance(params[0], bool):
291
+ all_conditions_met = params[0]
292
+ else:
293
+ conditions = [(f.strip(), v.strip()) for f, v in zip(params[::2], params[1::2])]
294
+
295
+ all_conditions_met = all(
296
+ self.get_field_value(f) == v
297
+ for f, v in conditions
298
+ )
309
299
 
310
300
  if not all_conditions_met:
311
301
  return super().validate(field, value, params)