Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/openai/_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ def model_dump(
exclude_defaults=exclude_defaults,
# warnings are not supported in Pydantic v1
warnings=True if PYDANTIC_V1 else warnings,
by_alias=by_alias,
by_alias=bool(by_alias) if by_alias is not None else False,
)
return cast(
"dict[str, Any]",
Expand Down
23 changes: 23 additions & 0 deletions tests/compat/test_model_dump.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import pydantic

from openai._compat import model_dump


class SimpleModel(pydantic.BaseModel):
foo: str = "bar"


def test_model_dump_by_alias_none() -> None:
"""Regression test for #2921: by_alias=None should not raise TypeError."""
result = model_dump(SimpleModel(), by_alias=None)
assert result == {"foo": "bar"}


def test_model_dump_by_alias_true() -> None:
result = model_dump(SimpleModel(), by_alias=True)
assert result == {"foo": "bar"}


def test_model_dump_by_alias_false() -> None:
result = model_dump(SimpleModel(), by_alias=False)
assert result == {"foo": "bar"}