sting to list of enums
Josef Kleber
josef.kleber at nurfuerspam.de
Sat Aug 21 08:21:29 EDT 2021
Hi,
I need to configure a script with a command line switch and/or
environment variable (-> string) to a list of enums. I found the
following to work:
from enum import Enum
class Provider(Enum):
NONE = 0, ''
Amazon = 40, 'Amazon'
Netflix = 42, 'Netflix'
SkyTicket = 104, 'Sky Ticket'
AmazonChannels = 140, 'Amazon Channels'
Disney = 176, 'Disney+'
def __new__(cls, value, name):
member = object.__new__(cls)
member._value_ = value
member.fullname = name
return member
def __int__(self):
return self.value
def __str__(self):
return self.fullname
providers = []
test = "Amazon, AmazonChannels, Netflix, Disney, SkyTicket"
for t in test.split(','):
providers.append(Provider[t.strip()])
print(providers)
I would prefer a more direct input string like "Provider.Amazon,
Provider.Netfilx" Any idea?
Or even a better way from cli option to enum list?
Josef
More information about the Python-list
mailing list