From dacc38698b42510dd9e66b572e5faa02fc646769 Mon Sep 17 00:00:00 2001 From: John Davis Date: Wed, 29 Mar 2023 23:34:14 -0400 Subject: [PATCH] Add utility function for enum member values + test --- lib/galaxy/util/__init__.py | 8 ++++++++ test/unit/util/test_utils.py | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/galaxy/util/__init__.py b/lib/galaxy/util/__init__.py index 59e1ce1d22b..cee4a720a74 100644 --- a/lib/galaxy/util/__init__.py +++ b/lib/galaxy/util/__init__.py @@ -1905,3 +1905,11 @@ class StructuredExecutionTimer: @property def elapsed(self): return time.time() - self.begin + + +def enum_values(enum_class): + """ + Return a list of member values of enumeration enum_class. + Values are in member definition order. + """ + return [item.value for key, item in enum_class.__members__.items()] diff --git a/test/unit/util/test_utils.py b/test/unit/util/test_utils.py index 828ae610af7..34d7cb95093 100644 --- a/test/unit/util/test_utils.py +++ b/test/unit/util/test_utils.py @@ -1,6 +1,7 @@ import errno import os import tempfile +from enum import Enum from io import StringIO from typing import Dict @@ -139,3 +140,12 @@ def test_listify() -> None: assert util.listify(d) == [d] o = object() assert util.listify(o) == [o] + + +def test_enum_values(): + class Stuff(str, Enum): + A = "a" + C = "c" + B = "b" + + assert util.enum_values(Stuff) == ["a", "c", "b"]