🗑️ Deprecate `min_items` and `max_items` parameters of `Field` by YuriiMotov · Pull Request #1731 · fastapi/sqlmodel
min_items and max_items parameters of Field are deprecated in Pydantyc V2
This PR reflects this in sqlmodel's Field.
It will still work, but emit a deprecation warning.
Actually, these parameters don't currently work master. This PR also fixes this the same way it's done in Pydantic's Field (min_length = min_items)
Code example and its output in the details:
Details
from pydantic import ValidationError from sqlmodel import Field, SQLModel class Model(SQLModel): value: list[int] = Field(min_items=2, max_items=4) # DeprecationWarning: `min_items` is deprecated and will be removed, use `min_length` instead # value: list[int] = Field(min_items=2, max_items=4) # DeprecationWarning: `max_items` is deprecated and will be removed, use `max_length` instead # value: list[int] = Field(min_items=2, max_items=4) try: a = Model(value=[1]) except ValidationError as e: print(e) # 1 validation error for Model # value # List should have at least 2 items after validation, not 1 [type=too_short, input_value=[1], input_type=list] # For further information visit https://errors.pydantic.dev/2.12/v/too_short try: b = Model(value=[1, 2, 3, 4, 5]) except ValidationError as e: print(e) # 1 validation error for Model # value # List should have at most 4 items after validation, not 5 [type=too_long, input_value=[1, 2, 3, 4, 5], input_type=list] # For further information visit https://errors.pydantic.dev/2.12/v/too_long