gh-103056: [Enum] ensure final _generate_next_value_ is a staticmethod (GH-103062)

This commit is contained in:
Ethan Furman 2023-03-27 16:25:19 -07:00 committed by GitHub
parent 56d055a0d8
commit b838d80085
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 0 deletions

View file

@ -518,8 +518,13 @@ class EnumType(type):
#
# adjust the sunders
_order_ = classdict.pop('_order_', None)
_gnv = classdict.get('_generate_next_value_')
if _gnv is not None and type(_gnv) is not staticmethod:
_gnv = staticmethod(_gnv)
# convert to normal dict
classdict = dict(classdict.items())
if _gnv is not None:
classdict['_generate_next_value_'] = _gnv
#
# data type of member and the controlling Enum class
member_type, first_enum = metacls._get_mixins_(cls, bases)