safeshield 1.4.9__py3-none-any.whl → 1.4.11__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.9
3
+ Version: 1.4.11
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=RLcNBgGeNf9AUBzyGh9x7UigQBNXKgIJmp4Qsz9KTi8,1149
3
+ validator/factory.py,sha256=SJ2iJmTnFS-4ccH-gzZl_7CAW7Z6YJkZbMImu-po80w,1163
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
@@ -8,10 +8,10 @@ validator/database/detector.py,sha256=Vac7oVL26GjU6expGo01-6mgUtXqldr-jirzpYokZB
8
8
  validator/database/manager.py,sha256=XJM_I0WaWfZWV710duAc32p1gtiP2or-MAj75WPw1oM,6478
9
9
  validator/rules/__init__.py,sha256=z3Vk3R5CRgjeqyDWZxdofD2tBMTgdyYVuFmo1mKOTj4,830
10
10
  validator/rules/array.py,sha256=AqVoBR_chSqxPec14Av5KmR9NAByovXDNNu2oeId4-U,2528
11
- validator/rules/base.py,sha256=LWOSigqnn65wges6HjpHEpyoYyDJhbBSabm96t8CXEs,4388
11
+ validator/rules/base.py,sha256=PadT5Ko3Zs_yr5EPxOfTw-IdS7uJKhGpaekF1k4tvYk,4359
12
12
  validator/rules/basic.py,sha256=LWYs4fPCA6_lTtOmtTgvjGqjVxxSdklj9fsCgSAMy2Y,4918
13
13
  validator/rules/boolean.py,sha256=vy6huFJ5JidpsoJ0WSvcydiU7a8aYFj225UswggSGAE,5748
14
- validator/rules/comparison.py,sha256=xkQ0xoqBjVlDSfgwTvruOAnXUmKlNt9kDjTcG5r4cFM,13473
14
+ validator/rules/comparison.py,sha256=W22Gsafnu8zC0Ue-28PDB36fB8VDO3bMS5MDSg5VUHE,13368
15
15
  validator/rules/date.py,sha256=yolYaTIvQTN1LBje5SM8i7EmNzOxV_eUwnOokmqZrMs,5812
16
16
  validator/rules/files.py,sha256=c7deO8fEiFNCx4jq1B2sJXhxTqGzTVq4kK2EscSNhKI,10946
17
17
  validator/rules/format.py,sha256=Medw57PJwfElxA-DgxiZ5GHqvqPhUCQPFMGCGTDne8w,7070
@@ -20,12 +20,12 @@ validator/rules/string.py,sha256=p8ZQfd0XaWIjksg_8ta3f6PEnXlxjRzlSJx1GohZ7yk,523
20
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
- validator/services/rule_error_handler.py,sha256=K6vq-pdVd5e4Xw7cpTguORy3VPWUJQa3PoeZZcDwTY8,10643
23
+ validator/services/rule_error_handler.py,sha256=K6fx5ttkBAGUi-2UfO2V_G7aWhJsY6zBjWnRIJW8Sgo,10363
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.9.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
- safeshield-1.4.9.dist-info/METADATA,sha256=bXDUx3M5GfMVvaE4XxCXpmOabzjD3RUTHqvGFFDgLcM,2313
29
- safeshield-1.4.9.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
- safeshield-1.4.9.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
- safeshield-1.4.9.dist-info/RECORD,,
27
+ safeshield-1.4.11.dist-info/LICENSE,sha256=qugtRyKckyaks6hd2xyxOFSOYM6au1N80pMXuMTPvC4,1090
28
+ safeshield-1.4.11.dist-info/METADATA,sha256=UvpIGA-7Wq_JAG9c9PbQUHXZ9XG5Sk9YoTRBuoVY0vo,2314
29
+ safeshield-1.4.11.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
30
+ safeshield-1.4.11.dist-info/top_level.txt,sha256=iUtV3dlHOIiMfLuY4pruY00lFni8JzOkQ3Nh1II19OE,10
31
+ safeshield-1.4.11.dist-info/RECORD,,
validator/factory.py CHANGED
@@ -21,8 +21,8 @@ class RuleFactory:
21
21
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
22
22
  return validate_func(field, value, params)
23
23
 
24
- def message(self, field: str) -> str:
25
- return message_func(field, self.params)
24
+ def message(self, field: str, params: List[str]) -> str:
25
+ return message_func(field, params)
26
26
 
27
27
  cls._rules[name] = NewRule
28
28
 
validator/rules/base.py CHANGED
@@ -16,7 +16,6 @@ class Rule(ABC):
16
16
 
17
17
  def __init_subclass__(cls, name=None):
18
18
  cls.rule_name = cls.pascal_to_snake(cls.__name__) if not hasattr(cls, '_name') else cls._name
19
- print(cls.__name__)
20
19
  cls._register_rule_class()
21
20
  cls._generate_rule_methods()
22
21
 
@@ -27,7 +27,7 @@ class MinRule(Rule):
27
27
  return False
28
28
 
29
29
  def message(self, field: str, params: List[str]) -> str:
30
- return f"The :attribute must be at least {params[0]}."
30
+ return f"The :attribute must be at least :min."
31
31
 
32
32
  class MaxRule(Rule):
33
33
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
@@ -40,7 +40,6 @@ class MaxRule(Rule):
40
40
  # Handle Werkzeug/Flask FileStorage
41
41
  if hasattr(value, 'content_length'): # Flask/Werkzeug
42
42
  file_size = value.content_length
43
- print(f"File size (content_length): {file_size}")
44
43
  return file_size <= max_val
45
44
 
46
45
  # Handle generic file objects with size attribute
@@ -85,13 +84,13 @@ class MaxRule(Rule):
85
84
  def message(self, field: str, params: List[str]) -> str:
86
85
  value = self.get_field_value(field)
87
86
  if value is None:
88
- return f"The :attribute must not exceed {params[0]}"
87
+ return f"The :attribute must not exceed :max"
89
88
 
90
89
  # Check all possible file size attributes
91
90
  file_attrs = ['content_length', 'size', 'fileno']
92
91
  if any(hasattr(value, attr) for attr in file_attrs):
93
- return f"File :attribute must not exceed {params[0]} bytes"
94
- return f"The :attribute must not exceed {params[0]}"
92
+ return f"File :attribute must not exceed :max bytes"
93
+ return f"The :attribute must not exceed :max"
95
94
 
96
95
  class BetweenRule(Rule):
97
96
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
@@ -237,7 +236,7 @@ class SameRule(Rule):
237
236
  return value == self.get_field_value(params[0])
238
237
 
239
238
  def message(self, field: str, params: List[str]) -> str:
240
- return f"The :attribute and {params[0]} must match."
239
+ return f"The :attribute and :other must match."
241
240
 
242
241
  class DifferentRule(Rule):
243
242
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
@@ -247,7 +246,7 @@ class DifferentRule(Rule):
247
246
  return str(value) != self.get_field_value(params[0])
248
247
 
249
248
  def message(self, field: str, params: List[str]) -> str:
250
- return f"The :attribute and {params[0]} must be different."
249
+ return f"The :attribute and :other must be different."
251
250
 
252
251
  class InRule(Rule):
253
252
  def validate(self, field: str, value: Any, params: List[str]) -> bool:
@@ -105,7 +105,7 @@ class RuleErrorHandler:
105
105
  'required_if', 'required_unless',
106
106
  'exclude_if', 'exclude_unless',
107
107
  'missing_if', 'missing_unless',
108
- 'present_if', 'present_unless'
108
+ 'present_if', 'present_unless',
109
109
  }
110
110
 
111
111
  def _get_field_value_pairs(self) -> List[tuple]:
@@ -177,13 +177,6 @@ class RuleErrorHandler:
177
177
  }:
178
178
  return self._current_params
179
179
 
180
- # Single field rules
181
- if rule in {
182
- 'required_if_accepted', 'required_if_declined',
183
- 'prohibited_if_accepted', 'prohibited_if_declined'
184
- }:
185
- return [self._current_params[0]] if self._current_params else []
186
-
187
180
  return []
188
181
 
189
182
  def _get_min_param(self) -> Optional[str]: