Python flask_restx.fields.List() Examples

The following are 8 code examples of flask_restx.fields.List(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module flask_restx.fields , or try the search function .
Example #1
Source File: decorators.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
def _model_from_parser(model_name: str, parser: reqparse.RequestParser) -> Model:
    from flask_restx import fields

    base_type_map = {
        "integer": fields.Integer,
        "string": fields.String,
        "number": fields.Float,
    }
    type_factory = {
        "integer": lambda arg: base_type_map["integer"],
        "string": lambda arg: base_type_map["string"],
        "number": lambda arg: base_type_map["number"],
        "array": lambda arg: fields.List(base_type_map[arg["items"]["type"]]),
    }
    return Model(
        model_name,
        {arg["name"]: type_factory[arg["type"]](arg) for arg in parser.__schema__},
    ) 
Example #2
Source File: api.py    From Penny-Dreadful-Tools with GNU General Public License v3.0 5 votes vote down vote up
def guarantee_at_most_one_or_retire(decks: List[Deck]) -> Optional[Deck]:
    try:
        run = guarantee.at_most_one(decks)
    except TooManyItemsException:
        league.retire_deck(decks[0])
        run = decks[1]
    return run 
Example #3
Source File: utils_test.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
def test_unpack_list():
    app = Flask(__name__)
    api = Api(app)
    with patch("flask_accepts.utils.unpack_list", wraps=utils.unpack_list) as mock:
        result = utils.unpack_list(ma.List(ma.Integer()), api=api)

        assert isinstance(result, fr.List)
        assert mock.call_count == 1 
Example #4
Source File: utils_test.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
def test_unpack_list_of_list():
    app = Flask(__name__)
    api = Api(app)
    with patch(
        "flask_accepts.utils.unpack_list", wraps=utils.unpack_list
    ) as mock, patch.dict("flask_accepts.utils.type_map", {ma.List: mock}):

        result = utils.unpack_list(ma.List(ma.List(ma.Integer())), api=api)

        assert isinstance(result, fr.List)
        assert mock.call_count == 2 
Example #5
Source File: utils_test.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
def test_ma_field_to_reqparse_argument_list_values():
    result = utils.ma_field_to_reqparse_argument(ma.List(ma.Integer()))
    assert result["type"] is int
    assert result["required"] is False
    assert result["action"] == "append"
    assert "help" not in result

    result = utils.ma_field_to_reqparse_argument(ma.List(ma.String(), description="A description"))
    assert result["type"] is str
    assert result["required"] is False
    assert result["action"] == "append"
    assert result["help"] == "A description" 
Example #6
Source File: utils.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
def unpack_list(val, api, model_name: str = None, operation: str = "dump"):
    model_name = model_name or get_default_model_name()
    return fr.List(
        map_type(val.inner, api, model_name, operation), **_ma_field_to_fr_field(val)
    ) 
Example #7
Source File: utils.py    From flask_accepts with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
def is_list_field(field):
    """Returns `True` if the given field is a list type."""
    # Need to handle both flask_restx and marshmallow fields.
    return isinstance(field, ma.List) or isinstance(field, fr.List) 
Example #8
Source File: api.py    From indra with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def make_preassembly_model(func):
    """Create new Flask model with function arguments."""
    args = inspect.signature(func).parameters
    # We can reuse Staetments model if only stmts_in or stmts and **kwargs are
    # arguments of the function
    if ((len(args) == 1 and ('stmts_in' in args or 'stmts' in args)) or
            (len(args) == 2 and 'kwargs' in args and
                ('stmts_in' in args or 'stmts' in args))):
        return stmts_model
    # Inherit a model if there are other arguments
    model_fields = {}
    for arg in args:
        if arg != 'stmts_in' and arg != 'stmts' and arg != 'kwargs':
            default = None
            if args[arg].default is not inspect.Parameter.empty:
                default = args[arg].default
            # Need to use default for boolean and example for other types
            if arg in boolean_args:
                model_fields[arg] = fields.Boolean(default=default)
            elif arg in int_args:
                model_fields[arg] = fields.Integer(example=default)
            elif arg in float_args:
                model_fields[arg] = fields.Float(example=0.7)
            elif arg in list_args:
                if arg == 'curations':
                    model_fields[arg] = fields.List(
                        fields.Nested(dict_model),
                        example=[{'pa_hash': '1234', 'source_hash': '2345',
                                  'tag': 'wrong_relation'}])
                else:
                    model_fields[arg] = fields.List(
                        fields.String, example=default)
            elif arg in dict_args:
                model_fields[arg] = fields.Nested(dict_model)
            else:
                model_fields[arg] = fields.String(example=default)
    new_model = api.inherit(
        ('%s_input' % func.__name__), stmts_model, model_fields)
    return new_model