|
@@ -169,4 +169,24 @@ class validator:
|
|
|
if not isinstance(value, Number):
|
|
|
raise argument_exception(f"Аргумент не является числом (type={type(value)})")
|
|
|
|
|
|
+ return True
|
|
|
+
|
|
|
+ def check_collection_all(self, value, method):
|
|
|
+ """
|
|
|
+ Валидация коллекции по соответствию лямбде
|
|
|
+ Args:
|
|
|
+ value: Передаваемая коллекция
|
|
|
+ method: Лямбда-функция валидации
|
|
|
+ Raises:
|
|
|
+ argument_exception: Один из членов коллекции не прошел валидацию
|
|
|
+ """
|
|
|
+
|
|
|
+ for num, val in enumerate(value):
|
|
|
+ try:
|
|
|
+ if not method(val):
|
|
|
+ raise argument_exception("Член коллекции не прошел валидацию")
|
|
|
+ except argument_exception as exc:
|
|
|
+ raise argument_exception(f"Один из членов коллекции не прошел валидацию \
|
|
|
+ ({exc.error.error_text} on item #{num})")
|
|
|
+
|
|
|
return True
|