Speed-up building enums by value, e.g. http.HTTPStatus(200) (#11318)
bpo-35585: Speed up enum by-value lookup
This commit is contained in:
parent
3a81076bbf
commit
34ae04f74d
|
@ -563,8 +563,10 @@ class Enum(metaclass=EnumMeta):
|
|||
# by-value search for a matching enum member
|
||||
# see if it's in the reverse mapping (for hashable values)
|
||||
try:
|
||||
if value in cls._value2member_map_:
|
||||
return cls._value2member_map_[value]
|
||||
return cls._value2member_map_[value]
|
||||
except KeyError:
|
||||
# Not found, no need to do long O(n) search
|
||||
pass
|
||||
except TypeError:
|
||||
# not there, now do long search -- O(n) behavior
|
||||
for member in cls._member_map_.values():
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Speed-up building enums by value, e.g. http.HTTPStatus(200).
|
Loading…
Reference in New Issue