Closed rteqs closed 6 hours ago
This functionality was added four years ago and the exact case has been tested since in test_enum.py. I run this now and get:
Python 3.11.10 (main, Sep 9 2024, 00:00:00) [GCC 14.2.1 20240905 (Red Hat 14.2.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from enum import Enum
>>> import orjson
>>> class Custom:
... def __init__(self, val):
... self.val = val
...
>>> def default(obj):
... if isinstance(obj, Custom):
... return obj.val
... raise TypeError
...
>>> class CustomEnum(Enum):
... ONE = Custom(1)
...
>>> print(orjson.dumps(CustomEnum.ONE, default=default))
b'1'
This is so odd you would need to engage with the tests and what package you have installed from where and so on to be worth looking at this more.
version: 3.10.10
I'm trying to override the default serialization of enums to use its name instead of val. However, it's calling the default encoder at all.
Additionally, the following snippet from the readme returns the incorrect result.
The correct result should be
b'1'
per the readme