safeshield 1.4.5__py3-none-any.whl → 1.4.7__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.1
2
2
  Name: safeshield
3
- Version: 1.4.5
3
+ Version: 1.4.7
4
4
  Summary: Library for Help Validation Control
5
5
  Home-page: https://github.com/WunsunTarniho/py-guard
6
6
  Author: Wunsun Tarniho
@@ -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=ns52WbIMTt6Gs85y9kwbTfBjhmX4cfNPwA5Uw6mTaT0,11924
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.5.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
- safeshield-1.4.5.dist-info/METADATA,sha256=57CDuVbaonpjdkkMIPsptAWIxn5_TKP7zCWzJM8bBiU,2313
29
- safeshield-1.4.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
- safeshield-1.4.5.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
- safeshield-1.4.5.dist-info/RECORD,,
27
+ safeshield-1.4.7.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
+ safeshield-1.4.7.dist-info/METADATA,sha256=teKjp7LMG9Hn6ooQE6gnIHG3ZDK6TypQjmhtdtj_npU,2313
29
+ safeshield-1.4.7.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
+ safeshield-1.4.7.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
+ safeshield-1.4.7.dist-info/RECORD,,
@@ -283,12 +283,19 @@ class ExcludeIfRule(ExcludeRule):
283
283
 
284
284
  class ExcludeUnlessRule(ExcludeRule):
285
285
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
286
- conditions = [(f.strip(), v.strip()) for f, v in zip(params[::2], params[1::2])]
286
+ all_conditions_met = False
287
287
 
288
- all_conditions_met = all(
289
- self.get_field_value(f) == v
290
- for f, v in conditions
291
- )
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
+ )
292
299
 
293
300
  if not all_conditions_met:
294
301
  return super().validate(field, value, params)