-
Notifications
You must be signed in to change notification settings - Fork 18
Closed
Description
Is your feature request related to a problem? Please describe.
I was surprised to learn that deepfreeze(Enum.VALUE) produced a frozendict(Enum.VALUE.__dict__). I expected it to return the enum. E.g.:
>>> from enum import Enum
>>> from frozendict import deepfreeze
>>> Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
>>> deepfreeze(Color.RED)
frozendict.frozendict({'_value_': 1, '_name_': 'RED', '__objclass__': <enum 'Color'>})Describe the solution you'd like
Consider making Enum.VALUE an immutable scalar by default.
Describe alternatives you've considered
I know I can register a custom conversion:
>>> from enum import Enum
>>> from frozendict import deepfreeze
>>> Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
>>> deepfreeze(Color.RED, custom_converters={Enum: lambda x: x})
Color.REDor
>>> from enum import Enum
>>> from frozendict import deepfreeze, register
>>> Color = Enum('Color', ['RED', 'GREEN', 'BLUE'])
>>> register(Enum, lambda x: x)
>>> deepfreeze(Color.RED)
Color.REDAdditional context
While I understand this can be easily configured on my end via the register function I'm wondering if it makes more sense to treat enums as immutable scalars by default.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels