Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please use built-in enums #642

Open
andrewvaughan opened this issue Feb 27, 2024 · 1 comment
Open

Please use built-in enums #642

andrewvaughan opened this issue Feb 27, 2024 · 1 comment

Comments

@andrewvaughan
Copy link

andrewvaughan commented Feb 27, 2024

This is a very unusable implementation - namely because it requires a match/case or similar anti-pattern to be implemented as you've created a fairly whacky method of returning a string representation.

For example, if I simply want to record that the bit-rate mode of an MP3 was CBR - there's no easy way for me to just get CBR as you've forced the string representation to be BitrateMode.CBR. I have no idea why anyone would ever want the Enum class in their string representation and is very non-standard.

Either this, or please implement the standard .name and .value properties in normal Python enum to make this possible.

https://docs.python.org/3/library/enum.html#enum.Enum

@phw
Copy link
Collaborator

phw commented Feb 29, 2024

The implementation comes from a time before there was enum in the standard library. Switching to the built-in enum might be a breaking change in some way. But implementing the name and value properties makes sense to me.

there's no easy way for me to just get CBR as you've forced the string representation to be BitrateMode.CBR. I have no idea why anyone would ever want the Enum class in their string representation and is very non-standard.

I wouldn't call it "very non-standard". It is exactly what Python's enum.__str__ does as well:

from enum import Enum
Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
str(Color.RED)  # This is "Color.RED"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants