Skip to content

Commit 53ee187

Browse files
authored
refactor: Simplify SchemaBase repr (#3472)
This is a relatively minor change, but I think the result is much easier to understand. There is no observable difference otherwise, confirmed by the tests: - test_expression_function_expr - test_expression_function_string - [doctest] altair.vegalite.v5.api.TopLevelMixin.transform_bin - [doctest] altair.vegalite.v5.api.TopLevelMixin.transform_calculate - [doctest] altair.vegalite.v5.api.TopLevelMixin.transform_timeunit - [doctest] altair.vegalite.v5.api.TopLevelMixin.transform_window The above were all failing before I figured out what the brace escaping in the original was up to
1 parent 40a0b44 commit 53ee187

File tree

2 files changed

+14
-22
lines changed

2 files changed

+14
-22
lines changed

altair/utils/schemapi.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -909,18 +909,14 @@ def __setitem__(self, item, val) -> None:
909909
self._kwds[item] = val
910910

911911
def __repr__(self) -> str:
912-
if self._kwds:
913-
it = (
914-
f"{key}: {val!r}"
915-
for key, val in sorted(self._kwds.items())
916-
if val is not Undefined
917-
)
918-
args = "\n" + ",\n".join(it)
919-
return "{}({{{}\n}})".format(
920-
self.__class__.__name__, args.replace("\n", "\n ")
921-
)
912+
name = type(self).__name__
913+
if kwds := self._kwds:
914+
it = (f"{k}: {v!r}" for k, v in sorted(kwds.items()) if v is not Undefined)
915+
args = ",\n".join(it).replace("\n", "\n ")
916+
LB, RB = "{", "}"
917+
return f"{name}({LB}\n {args}\n{RB})"
922918
else:
923-
return f"{self.__class__.__name__}({self._args[0]!r})"
919+
return f"{name}({self._args[0]!r})"
924920

925921
def __eq__(self, other: Any) -> bool:
926922
return (

tools/schemapi/schemapi.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -907,18 +907,14 @@ def __setitem__(self, item, val) -> None:
907907
self._kwds[item] = val
908908

909909
def __repr__(self) -> str:
910-
if self._kwds:
911-
it = (
912-
f"{key}: {val!r}"
913-
for key, val in sorted(self._kwds.items())
914-
if val is not Undefined
915-
)
916-
args = "\n" + ",\n".join(it)
917-
return "{}({{{}\n}})".format(
918-
self.__class__.__name__, args.replace("\n", "\n ")
919-
)
910+
name = type(self).__name__
911+
if kwds := self._kwds:
912+
it = (f"{k}: {v!r}" for k, v in sorted(kwds.items()) if v is not Undefined)
913+
args = ",\n".join(it).replace("\n", "\n ")
914+
LB, RB = "{", "}"
915+
return f"{name}({LB}\n {args}\n{RB})"
920916
else:
921-
return f"{self.__class__.__name__}({self._args[0]!r})"
917+
return f"{name}({self._args[0]!r})"
922918

923919
def __eq__(self, other: Any) -> bool:
924920
return (

0 commit comments

Comments
 (0)