|
4 | 4 | # |
5 | 5 |
|
6 | 6 | from enum import EnumMeta, IntEnum |
7 | | -from typing import Mapping |
| 7 | +from typing import Mapping, TypeVar |
8 | 8 |
|
9 | 9 | class QL_ENDIAN(IntEnum): |
10 | 10 | EL = 1 |
@@ -64,16 +64,18 @@ class QL_INTERCEPT(IntEnum): |
64 | 64 | QL_HOOK_BLOCK = 0b0001 |
65 | 65 | QL_CALL_BLOCK = 0b0010 |
66 | 66 |
|
67 | | -def __reverse_enum(e: EnumMeta) -> Mapping[str, int]: |
| 67 | +__QL_CE = TypeVar('__QL_CE', QL_DEBUGGER, QL_ARCH, QL_OS, QL_VERBOSE) |
| 68 | + |
| 69 | +def __reverse_enum(e: EnumMeta) -> Mapping[str, __QL_CE]: |
68 | 70 | '''Create a reverse mapping for an enum. |
69 | 71 | ''' |
70 | 72 |
|
71 | | - return dict((k.lower(), v.value) for k, v in e.__members__.items()) |
| 73 | + return dict((v.name.lower(), v.value) for v in e.__members__.values()) |
72 | 74 |
|
73 | | -debugger_map = __reverse_enum(QL_DEBUGGER) |
74 | | -arch_map = __reverse_enum(QL_ARCH) |
75 | | -os_map = __reverse_enum(QL_OS) |
76 | | -verbose_map = __reverse_enum(QL_VERBOSE) |
| 75 | +debugger_map: Mapping[str, QL_DEBUGGER] = __reverse_enum(QL_DEBUGGER) |
| 76 | +arch_map : Mapping[str, QL_ARCH] = __reverse_enum(QL_ARCH) |
| 77 | +os_map : Mapping[str, QL_OS] = __reverse_enum(QL_OS) |
| 78 | +verbose_map : Mapping[str, QL_VERBOSE] = __reverse_enum(QL_VERBOSE) |
77 | 79 |
|
78 | 80 | loader_map = { |
79 | 81 | QL_OS.LINUX : "ELF", |
|
0 commit comments