Skip to content

Commit 1d31fca

Browse files
authored
fix: Make FileUrl.media_type work correctly with inline-snapshot (#2693)
1 parent a7a27ec commit 1d31fca

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

pydantic_ai_slim/pydantic_ai/messages.py

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class FileUrl(ABC):
111111
"""
112112

113113
_media_type: Annotated[str | None, pydantic.Field(alias='media_type', default=None, exclude=True)] = field(
114-
compare=False
114+
compare=False, default=None
115115
)
116116

117117
def __init__(
@@ -163,8 +163,16 @@ def __init__(
163163
vendor_metadata: dict[str, Any] | None = None,
164164
media_type: str | None = None,
165165
kind: Literal['video-url'] = 'video-url',
166+
*,
167+
# Required for inline-snapshot which expects all dataclass `__init__` methods to take all field names as kwargs.
168+
_media_type: str | None = None,
166169
) -> None:
167-
super().__init__(url=url, force_download=force_download, vendor_metadata=vendor_metadata, media_type=media_type)
170+
super().__init__(
171+
url=url,
172+
force_download=force_download,
173+
vendor_metadata=vendor_metadata,
174+
media_type=media_type or _media_type,
175+
)
168176
self.kind = kind
169177

170178
def _infer_media_type(self) -> VideoMediaType:
@@ -226,8 +234,16 @@ def __init__(
226234
vendor_metadata: dict[str, Any] | None = None,
227235
media_type: str | None = None,
228236
kind: Literal['audio-url'] = 'audio-url',
237+
*,
238+
# Required for inline-snapshot which expects all dataclass `__init__` methods to take all field names as kwargs.
239+
_media_type: str | None = None,
229240
) -> None:
230-
super().__init__(url=url, force_download=force_download, vendor_metadata=vendor_metadata, media_type=media_type)
241+
super().__init__(
242+
url=url,
243+
force_download=force_download,
244+
vendor_metadata=vendor_metadata,
245+
media_type=media_type or _media_type,
246+
)
231247
self.kind = kind
232248

233249
def _infer_media_type(self) -> AudioMediaType:
@@ -276,8 +292,16 @@ def __init__(
276292
vendor_metadata: dict[str, Any] | None = None,
277293
media_type: str | None = None,
278294
kind: Literal['image-url'] = 'image-url',
295+
*,
296+
# Required for inline-snapshot which expects all dataclass `__init__` methods to take all field names as kwargs.
297+
_media_type: str | None = None,
279298
) -> None:
280-
super().__init__(url=url, force_download=force_download, vendor_metadata=vendor_metadata, media_type=media_type)
299+
super().__init__(
300+
url=url,
301+
force_download=force_download,
302+
vendor_metadata=vendor_metadata,
303+
media_type=media_type or _media_type,
304+
)
281305
self.kind = kind
282306

283307
def _infer_media_type(self) -> ImageMediaType:
@@ -321,8 +345,16 @@ def __init__(
321345
vendor_metadata: dict[str, Any] | None = None,
322346
media_type: str | None = None,
323347
kind: Literal['document-url'] = 'document-url',
348+
*,
349+
# Required for inline-snapshot which expects all dataclass `__init__` methods to take all field names as kwargs.
350+
_media_type: str | None = None,
324351
) -> None:
325-
super().__init__(url=url, force_download=force_download, vendor_metadata=vendor_metadata, media_type=media_type)
352+
super().__init__(
353+
url=url,
354+
force_download=force_download,
355+
vendor_metadata=vendor_metadata,
356+
media_type=media_type or _media_type,
357+
)
326358
self.kind = kind
327359

328360
def _infer_media_type(self) -> str:

0 commit comments

Comments
 (0)