Skip to content

Commit 1591e92

Browse files
authored
Fix handling of pydantic_core.Url and pydantic.AnyUrl when building logfire JSON schemas (#1130)
1 parent 8a64427 commit 1591e92

File tree

3 files changed

+4
-0
lines changed

3 files changed

+4
-0
lines changed

logfire/_internal/json_encoder.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,12 @@ def encoder_by_type() -> dict[type[Any], EncoderFunction]:
213213
}
214214
with contextlib.suppress(ModuleNotFoundError):
215215
import pydantic
216+
import pydantic_core
216217

217218
lookup.update(
218219
{
219220
pydantic.AnyUrl: _to_str,
221+
pydantic_core.Url: _to_str,
220222
pydantic.NameEmail: _to_str,
221223
pydantic.SecretBytes: _to_str,
222224
pydantic.SecretStr: _to_str,

logfire/_internal/json_formatter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def __init__(self, *, indent: int):
3636
'timedelta': self._format_timedelta,
3737
'Enum': partial(self._write, '(', ')', True),
3838
'IPv4Address': partial(self._write, 'IPv4Address(', ')', True),
39+
'AnyUrl': partial(self._write, 'AnyUrl(', ')', True),
3940
'Url': partial(self._write, 'Url(', ')', True),
4041
'IPv4Interface': partial(self._write, 'IPv4Interface(', ')', True),
4142
'IPv4Network': partial(self._write, 'IPv4Network(', ')', True),

logfire/_internal/json_types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
'Exception',
4141
# pydantic types
4242
'PydanticModel',
43+
'AnyUrl',
4344
'Url',
4445
'NameEmail',
4546
'SecretBytes',

0 commit comments

Comments
 (0)