From 6afa9673b2841fe8b1e1ab5ab414b179d77ccc25 Mon Sep 17 00:00:00 2001 From: stickm4n Date: Sun, 1 Dec 2024 22:20:48 +0100 Subject: [PATCH] Add compatibility for Pydantic V2 regex (renamed param from regex to param) --- sqlmodel/main.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 3532e81a8e..b263e43491 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -240,6 +240,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -285,6 +286,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -339,6 +341,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore @@ -374,6 +377,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -389,6 +393,12 @@ def Field( schema_extra: Optional[Dict[str, Any]] = None, ) -> Any: current_schema_extra = schema_extra or {} + + if IS_PYDANTIC_V2: + current_schema_extra.update(pattern=pattern or regex) + else: + current_schema_extra.update(regex=regex or pattern) + field_info = FieldInfo( default, default_factory=default_factory, @@ -411,7 +421,6 @@ def Field( min_length=min_length, max_length=max_length, allow_mutation=allow_mutation, - regex=regex, discriminator=discriminator, repr=repr, primary_key=primary_key,