Is it possible to specify the length of a list in the schema of the request body (or response)? There is support for validating the length of a string passed in the url with the Query function, but I see nothing for lists.
Possible use case would be sending list of floats of fixed size to feed to a ML model.
You can either use the Field
function with min_length
and max_length
:
from pydantic import Field
class Foo(BaseModel):
fixed_size_list_parameter: list[float] = Field(..., min_length=4, max_length=4)
.. or you can use the conlist
(constrained list) type from pydantic:
from pydantic import conlist
class Foo(BaseModel):
# these were named min_length and max_length in Pydantic v1.10
fixed_size_list_parameter: conlist(float, min_length=4, max_length=4)
This limits the list to exactly four entries of the float
type.