Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Pound for pound, the amoeba is the most vicious animal on earth.


devel / comp.lang.python / sting to list of enums

SubjectAuthor
o sting to list of enumsJosef Kleber

1
sting to list of enums

<sfqr4b$ven$1@kleberj.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=14693&group=comp.lang.python#14693

  copy link   Newsgroups: comp.lang.python
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!kleberj.eternal-september.org!.POSTED!not-for-mail
From: josef.kl...@nurfuerspam.de (Josef Kleber)
Newsgroups: comp.lang.python
Subject: sting to list of enums
Date: Sat, 21 Aug 2021 14:21:29 +0200
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <sfqr4b$ven$1@kleberj.eternal-september.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 21 Aug 2021 12:21:31 -0000 (UTC)
Injection-Info: kleberj.eternal-september.org; posting-host="4b2e0e45fa8a2e6a74f1eedcefb6618e";
logging-data="32215"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QavpdS4z7vek97igyJKvz"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Cancel-Lock: sha1:EPFZP4cUl7gzcoewJQHRzA7HFUI=
X-Antivirus-Status: Clean
X-Antivirus: Avast (VPS 210821-0, 21.8.2021), Outbound message
X-Mozilla-News-Host: snews://news.eternal-september.org:563
 by: Josef Kleber - Sat, 21 Aug 2021 12:21 UTC

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

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor