sourcecode/scoring/enums.py (23 lines of code) (raw):
from enum import Enum, auto
from typing import Set
class Scorers(Enum):
"""Exhaustive list of all scorers to simplify setting enabled/disabled scorers."""
MFCoreScorer = auto()
MFExpansionScorer = auto()
# Note that the MFGroupScorer value controls whether *all* group scorers are instantiated,
# not just a single MFGroupScorer instance.
MFGroupScorer = auto()
MFExpansionPlusScorer = auto()
ReputationScorer = auto()
MFTopicScorer = auto()
MFMultiGroupScorer = auto()
class Topics(Enum):
"""Range of the note topic model."""
Unassigned = 0
UkraineConflict = 1
GazaConflict = 2
MessiRonaldo = 3
def scorers_from_csv(csv: str) -> Set[Scorers]:
"""Converts a CSV of enums to an actual set of Enum values.
Args:
csv: CSV string of Scorer names.
Returns:
Set containing Scorers.
Raises:
ValueError if csv contains a token which is not a valid Scorer.
"""
values = []
for value in csv.split(","):
try:
values.append(Scorers[value])
except KeyError:
raise ValueError(f"Unknown value {value}")
return set(values)