I have an enum
to represent distinct subsets of a dataset, and combinations of those subsets:
from enum import Flag, auto
class DataSubset(Flag):
TRAIN = auto()
TEST = auto()
VALIDATION = auto()
EXCLUDED = auto()
TRAIN_TEST = TRAIN | TEST
ALL_INCLUDED = TRAIN_TEST | VALIDATION
ALL = ALL_INCLUDED | EXCLUDED
Is there a way to iterate through just the distinct flags, but not the named combinations? i.e.:
[DataSubset.TRAIN, DataSubset.TEST, DataSubset.VALIDATION, DataSubset.EXCLUDED]
The goal is to be able to do something like this:
def get_subsets(subset):
return [sub for sub in DataSubset.distinct_flags if sub in subset]
and then:
>>> get_subsets(DataSubset.TRAIN)
[DataSubset.TRAIN]
>>> get_subsets(DataSubset.TRAIN_TEST)
[DataSubset.TRAIN, DataSubset.TEST]
>>> get_subsets(DataSubset.ALL)
[DataSubset.TRAIN, DataSubset.TEST, DataSubset.VALIDATION, DataSubset.EXCLUDED]