-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
The problem is here. Since an Enum doesn't have an instance of self, when __reduce_ex__(4) is called, you will get an error telling you that you are missing one required positional argument. In order to call __reduce_ex__(4) on an Enum, you'd have to use one of the concrete enum values. For example:
>>> from enum import Enum
>>> class Test(Enum):
2 FOO = 1
>>> Test.__reduce_ex__(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __reduce_ex__() missing 1 required positional argument: 'proto'
__reduce_ex__() missing 1 required positional argument: 'proto'
>>> Test.FOO.__reduce_ex__(4)
(<enum 'Test'>, (1,))
>>>I'm still digging into the code to fully understand what's going on here, so I'm don't have enough context to give a good recommendation. It is perhaps the case that you'd have to iterate over each of the enum values to call __reduce_ex__(4) on them one-by-one. Or perhaps it is the case that Enums are not able to be used by this method.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels