MCPcopy
hub / github.com/leslievan/semi-utils / getenum

Method getenum

processor/core.py:36–65  ·  view source on GitHub ↗
(self, key: str, default: Any = None, enum: Type[Enum] = None)

Source from the content-addressed store, hash-verified

34 return int(self.get(key, default))
35
36 def getenum(self, key: str, default: Any = None, enum: Type[Enum] = None) -> Any:
37 value = self.get(key, default)
38
39 # 未指定枚举类型,直接返回原值
40 if enum is None:
41 return value
42
43 # 已经是目标枚举类型,直接返回
44 if isinstance(value, enum):
45 return value
46
47 # 尝试通过 name 查找 (如 "RED" -> Color.RED)
48 if isinstance(value, str):
49 try:
50 return enum[value]
51 except KeyError:
52 pass
53 try:
54 return enum[value.upper()]
55 except KeyError:
56 pass
57
58 # 尝试通过 value 查找 (如 1 -> Color.RED)
59 try:
60 return enum(value)
61 except ValueError:
62 pass
63
64 # 都找不到,返回默认值
65 return default
66
67 def get_processor_name(self):
68 return self.get("processor_name")

Callers 4

processMethod · 0.80
processMethod · 0.80
processMethod · 0.80
processMethod · 0.80

Calls 1

getMethod · 0.95

Tested by

no test coverage detected