Ethan Furman <et...@stoneleaf.us> added the comment:
Python-Dev thread [0], summary below: > As you may have noticed, Enums are starting to pop up all > over the stdlib [1]. > > To facilitate transforming existing module constants to > IntEnums there is `IntEnum._convert_`. In Issue36548 [2] > Serhiy modified the __repr__ of RegexFlag: > > >>> import re > >>> re.I > re.IGNORECASE > > I think for converted constants that that looks nice. > For anyone that wants the actual value, it is of course > available as the `.value` attribute: > > >>> re.I.value > 2 > > I'm looking for arguments relating to: > > - should _convert_ make the default __repr__ be > module_name.member_name? > > - should _convert_ make the default __str__ be the same, > or be the numeric value? After discussions with Guido I made a (largely done) PR [3] which: for stdlib global constants (such as RE) - repr() -> uses `module.member_name` - str() -> uses `member_name` for stdlib non-global constants, and enums in general - repr() -> uses `class.member_name` - str() -> uses `member_name` The questions I would most appreciate an answer to at this point: - do you think the change has merit? - why /shouldn't/ we make the change? As a reminder, the underlying issue is trying to keep at least the stdlib Enum representations the same for those that are replacing preexisting constants. [0] https://mail.python.org/archives/list/python-...@python.org/message/CHQW6THTDYNPPFWQ2KDDTUYSAJDCZFNP/ [1] I'm working on making their creation faster. If anyone wanted to convert EnumMeta to C I would be grateful. [2] https://bugs.python.org/issue36548 [3] https://github.com/python/cpython/pull/22392 ---------- nosy: +rhettinger _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40066> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com