Skip to content

Commit 049965d

Browse files
committed
tweak __pretty__
1 parent 7dcb0d5 commit 049965d

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

devtools/prettier.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,19 @@ def _format(self, value: Any, indent_current: int, indent_first: bool):
8989
if indent_first:
9090
self._stream.write(indent_current * self._c)
9191

92-
pretty_func = getattr(value, '__pretty__', None)
93-
if pretty_func and callable(pretty_func) and not isinstance(value, MockCall):
94-
try:
95-
gen = pretty_func(fmt=fmt, skip_exc=SkipPretty)
96-
self._render_pretty(gen, indent_current)
97-
except TypeError as e:
98-
if e.args != ("__pretty__() missing 1 required positional argument: 'self'",):
99-
raise
100-
except SkipPretty:
101-
pass
102-
else:
103-
return
92+
try:
93+
pretty_func = getattr(value, '__pretty__')
94+
except AttributeError:
95+
pass
96+
else:
97+
if hasattr(pretty_func, '__self__') and not isinstance(value, MockCall):
98+
try:
99+
gen = pretty_func(fmt=fmt, skip_exc=SkipPretty)
100+
self._render_pretty(gen, indent_current)
101+
except SkipPretty:
102+
pass
103+
else:
104+
return
104105

105106
value_repr = repr(value)
106107
if len(value_repr) <= self._simple_cutoff and not isinstance(value, Generator):

0 commit comments

Comments
 (0)