safeshield 1.4.5__py3-none-any.whl → 1.4.6__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.6
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=x6ZgCuJ7Ywf6jxqp3rwxwgouGe0d6M66UM-GnIvsy6w,12603
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.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,,
@@ -264,6 +264,23 @@ 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
+
267
284
  class ExcludeIfRule(ExcludeRule):
268
285
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
269
286
  if len(params) == 1 and callable(params[0]):