10000 Improve `TypeAdapter` instance repr (#10872) · pydantic/pydantic@2e45403 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2e45403

Browse files
Improve TypeAdapter instance repr (#10872)
1 parent 372d4e2 commit 2e45403

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

pydantic/type_adapter.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from pydantic.errors import PydanticUserError
2222
from pydantic.main import BaseModel, IncEx
2323

24-
from ._internal import _config, _generate_schema, _mock_val_ser, _namespace_utils, _typing_extra, _utils
24+
from ._internal import _config, _generate_schema, _mock_val_ser, _namespace_utils, _repr, _typing_extra, _utils
2525
from .config import ConfigDict
2626
from .errors import PydanticUndefinedAnnotation
2727
from .json_schema import (
@@ -313,6 +313,9 @@ def _model_config(self) -> ConfigDict | None:
313313
return type_.model_config
314314
return getattr(type_, '__pydantic_config__', None)
315315

316+
def __repr__(self) -> str:
317+
return f'TypeAdapter[{_repr.display_as_type(self._type)}]'
318+
316319
def rebuild(
317320
self,
318321
*,

tests/test_type_adapter.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,3 +581,14 @@ def test_defer_build_raise_errors() -> None:
581581

582582
ta.rebuild(raise_errors=True)
583583
assert not isinstance(ta.core_schema, _mock_val_ser.MockCoreSchema)
584+
585+
586+
@dataclass
587+
class SimpleDataclass:
588+
x: int
589+
590+
591+
@pytest.mark.parametrize('type_,repr_', [(int, 'int'), (List[int], 'List[int]'), (SimpleDataclass, 'SimpleDataclass')])
592+
def test_ta_repr(type_: Any, repr_: str) -> None:
593+
ta = TypeAdapter(type_)
594+
assert repr(ta) == f'TypeAdapter[{repr_}]'

0 commit comments

Comments
 (0)
0