Stefan Behnel <[email protected]> added the comment:
> why /shouldn't/ we make the change?
It breaks doctests, and probably some other unit tests, too, e.g. for output
formatting.
What should we suggest users to do? Replace
>>> get_flag(…)
<app_enums.TrickyFlag: 1>
by
>>> get_flag(…) == app_enums.TrickyFlag or get_flag(…) # (also show
result on failure)
True
and
assertEqual(
"You caught the %s flag!" % result,
"You caught the app_enums.TrickyFlag flag!")
by
assertEqual(
("You caught the %s flag!" % result).replace("app_enums.", ""),
"You caught the TrickyFlag flag!")
?
Note that using "%r" does not help, since it's also backwards incompatible.
For their own enums, users can probably backport (or forward-port) "__str__()"
and "__repr__()" themselves in order to work around this difference. But it's
something they would have to do.
I certainly understand the reasoning, and it also makes new Py3.10-only
doctests nicer, actually, but IMHO it counts as deliberate breakage.
----------
nosy: +scoder
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40066>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com