Как использовать схему Зефира в качестве одного из проверенных веб-арг?
Я экспериментирую с API во Flask (flask-restful) и использую веб-арги и зефир для сериализации аргументов из запроса POST. Арги выглядят так:
from webargs import fields, ValidationError
from app.core.utilities.helper_functions import raise_
from webargs.flaskparser import use_args
from marshmallow import Schema
comparators = ['not_exactly', 'exactly', '>=', '<=']
class ConfigSchema(Schema):
comparator = fields.Str(required=True, validate=lambda x: True if x in comparators else
"Invalid comparator: {}. Allowed values: {}".format(x, comparators))
value = fields.Str(required=True)
# config_schema = ConfigSchema()
bond_screen_args = {'config': fields.Dict(keys=fields.Str(validate=lambda x: True if len(x) > 0 else
raise_(ValidationError("Invalid factor name {}. Should be a non-zero length string.".format(x)))),
values=fields.List(ConfigSchema, validate=lambda list_: True if
(len(list_) >= 1 and len(list_) <= 2) else "Invalid number of screen "
"options: {}. For floats, give two options at max, for string screen, "
"give only one option.".format(list_)),
required=True)}
Проблемной частью является ConfigSchema в valued=fields.List(ConfigSchema)
часть кода. Так как этот класс не имеет типа marshmallow.type.FieldsABC
Я получаю ошибку. Как правильно использовать схемы в этом случае? Или я их не правильно использую?