Browse code

Change enum to be number format agnostic

Robert Cranston authored on 16/09/2023 17:40:57
Showing 1 changed files

... ...
@@ -418,7 +418,14 @@ def value(xml, enum):
418 418
 
419 419
 ### `enum`
420 420
 def enum(xml, value):
421
-    enum = xml.xpath(f"{ENUMS}/enum[@value='{value}']/@name")
421
+    def conv(s):
422
+        return int(s, 16 if s.startswith('0x') else 10)
423
+    value = conv(value)
424
+    enum = (
425
+        enum.get('name')
426
+        for enum in xml.xpath(f"{ENUMS}/enum")
427
+        if conv(enum.get('value')) == value
428
+    )
422 429
     return sorted(enum, key=key)
423 430
 
424 431