def CreateModelVariableEnum(enum_name, enum_desc, member_data): def getDesc(self): return self._enum_desc def getMemberDesc(self, name): return self._member_desc[name] values = OrderedDict() descriptions = OrderedDict() for name, value, desc in member_data: values[name] = value descriptions[name] = desc obj = IntEnum(enum_name, values) obj._enum_desc = enum_desc obj._member_desc = descriptions obj.getDesc = types.MethodType(getDesc, obj) obj.getMemberDesc = types.MethodType(getMemberDesc, obj) return obj