Alex Waygood <alex.wayg...@gmail.com> added the comment:

Thanks, Nikita! My bad for not adding tests for __new__ in PR 29316.

To confirm: yes, my idea in PR 29316 was that "__new__" (along with most enum 
dunders) should not show up in the output of dir(Enum), but should show up in 
dir(EnumSubclass) if and only if __new__ has been overridden outside of 
enum.py. That's because, unlike with most Python classes, the fact that 
enum.Enum has a __new__ method or a __format__ method doesn't really tell you 
very much about enum.Enum's behaviour, due to how magical enums are. But if 
it's been overridden in a custom Enum subclass, that does tell you that the 
enum class has special behaviour in some way — the HTTPStatus enum at 
Lib/http/__init__.py:6 is a really good example of that.

But you're right: the existing code doesn't work as expected, at all:

```
>>> from http import HTTPStatus
>>> '__new__' in dir(HTTPStatus)
False
```

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue46269>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to