I am doing a series of videos (spanish only!) about "modern Python", showing the modern replacements
for things that are ... dense in their original forms.
So, I showed Poetry as an alternative to writing your setup.py and Click as a way to do things easier
than argparse, and Pathlib instead of os.path and then I wanted to show Enums. Which are not so new since they have been there since Python 3.4 but I feel they are not used widely enough.
And then I noticed that they help do a "safer" version of the classical Python version of C's switch / case where you can be sure of not leaving any values unhandled.
So, I wrote a little thing and pushed it to PyPI: https://pypi.org/project/enum-switch/
It's a tiny project, but here's an example of how you use it.
from enum import Enum
from enum_switch import Switch
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
class MySwitch(Switch):
def RED(self):
return "Apple"
def GREEN(self):
return "Kiwi"
def BLUE(self):
return "Sky"
switch = MySwitch(Color)
print(switch(Color.RED))
Apple
If MySwitch was missing one of those "handlers" for the Enum values? That's an exception.
If you don't want to define them all? Do a default() there.
I like this solution, but am very interested to know if someone has come up with a better one?
Comments are enabled, feel free to tell me :-)