Skip to content

Commit f7d4f18

Browse files
🎨 Auto format
1 parent d0e4081 commit f7d4f18

2 files changed

Lines changed: 15 additions & 17 deletions

File tree

sqlmodel/main.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -582,12 +582,12 @@ def __new__(
582582
# Also check model_config in class_dict
583583
config_dict = class_dict.get("model_config", {})
584584
if isinstance(config_dict, dict):
585-
model_fields_optional = config_dict.get(
586-
"model_fields_optional", None
587-
)
585+
model_fields_optional = config_dict.get("model_fields_optional", None)
588586
if model_fields_optional == "all":
589587
for base in bases:
590-
base_fields = get_model_fields(base) if hasattr(base, "model_fields") else {}
588+
base_fields = (
589+
get_model_fields(base) if hasattr(base, "model_fields") else {}
590+
)
591591
for field_name, field_info in base_fields.items():
592592
# Only modify fields not explicitly redefined in this class
593593
if field_name not in pydantic_annotations:

tests/test_model_fields_optional.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
import pytest
42
from pydantic import ValidationError
53
from sqlmodel import Field, SQLModel
@@ -13,7 +11,7 @@ def test_model_fields_optional_basic(clear_sqlmodel):
1311
class HeroBase(SQLModel):
1412
name: str
1513
secret_name: str
16-
age: Optional[int] = None
14+
age: int | None = None
1715

1816
class HeroUpdate(HeroBase, model_fields_optional="all"):
1917
pass
@@ -35,7 +33,7 @@ def test_model_fields_optional_partial_data(clear_sqlmodel):
3533
class HeroBase(SQLModel):
3634
name: str
3735
secret_name: str
38-
age: Optional[int] = None
36+
age: int | None = None
3937

4038
class HeroUpdate(HeroBase, model_fields_optional="all"):
4139
pass
@@ -53,7 +51,7 @@ def test_model_fields_optional_exclude_unset(clear_sqlmodel):
5351
class HeroBase(SQLModel):
5452
name: str
5553
secret_name: str
56-
age: Optional[int] = None
54+
age: int | None = None
5755

5856
class HeroUpdate(HeroBase, model_fields_optional="all"):
5957
pass
@@ -70,7 +68,7 @@ def test_model_fields_optional_override_field(clear_sqlmodel):
7068
class HeroBase(SQLModel):
7169
name: str
7270
secret_name: str
73-
age: Optional[int] = None
71+
age: int | None = None
7472

7573
class HeroUpdate(HeroBase, model_fields_optional="all"):
7674
name: str # Keep name required
@@ -95,7 +93,7 @@ def test_model_fields_optional_preserves_constraints(clear_sqlmodel):
9593

9694
class HeroBase(SQLModel):
9795
name: str = Field(min_length=1)
98-
age: Optional[int] = Field(default=None, ge=0)
96+
age: int | None = Field(default=None, ge=0)
9997

10098
class HeroUpdate(HeroBase, model_fields_optional="all"):
10199
pass
@@ -149,7 +147,7 @@ def test_model_fields_optional_via_model_config(clear_sqlmodel):
149147
class HeroBase(SQLModel):
150148
name: str
151149
secret_name: str
152-
age: Optional[int] = None
150+
age: int | None = None
153151

154152
class HeroUpdate(HeroBase):
155153
model_config = SQLModelConfig(model_fields_optional="all")
@@ -170,10 +168,10 @@ def test_model_fields_optional_with_table_base(clear_sqlmodel):
170168
class HeroBase(SQLModel):
171169
name: str
172170
secret_name: str
173-
age: Optional[int] = None
171+
age: int | None = None
174172

175173
class Hero(HeroBase, table=True):
176-
id: Optional[int] = Field(default=None, primary_key=True)
174+
id: int | None = Field(default=None, primary_key=True)
177175

178176
class HeroUpdate(HeroBase, model_fields_optional="all"):
179177
pass
@@ -194,8 +192,8 @@ def test_model_fields_optional_already_optional_fields(clear_sqlmodel):
194192

195193
class HeroBase(SQLModel):
196194
name: str
197-
nickname: Optional[str] = "Unknown"
198-
age: Optional[int] = None
195+
nickname: str | None = "Unknown"
196+
age: int | None = None
199197

200198
class HeroUpdate(HeroBase, model_fields_optional="all"):
201199
pass
@@ -215,7 +213,7 @@ def test_model_fields_optional_model_validate(clear_sqlmodel):
215213
class HeroBase(SQLModel):
216214
name: str
217215
secret_name: str
218-
age: Optional[int] = None
216+
age: int | None = None
219217

220218
class HeroUpdate(HeroBase, model_fields_optional="all"):
221219
pass

0 commit comments

Comments
 (0)