🗑️ 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