Ethan Furman <[email protected]> added the comment:
For versions 3.6 and 3.7 the solution is to modify the shadow check at line 236
so only DynamicClassAttributes are /not/ shadowed (meaning the _convert method
would be shadowed by an _convert member).
For 3.8 we can move _convert to the metaclass: I wasn't originally supportive
of this idea, but I can see it being useful for other Enum mix-ins such as str.
However, I will want to include a check that such a mix-in is there --
probably by checking that the Enum type is a subclass of the first member's
type... something like:
if not issubclass(cls, members[0]):
raise TypeError(...)
While we're making that change we can also check that members is not empty and
issue a friendlier error message.
We can also rename _convert to _convert_ in 3.8, but we'll need to have
_convert also on the metaclass and have it trigger a warning that _convert_ is
now the right way, and _convert will go away in 3.9.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue34282>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com