adaptix
adaptix copied to clipboard
Not possible to parse Literal with enum value
This code not working:
from dataclasses import dataclass
from enum import Enum
from typing import Literal
from dataclass_factory import Factory
class MyType(Enum):
A = "a"
@dataclass
class Data:
type: Literal[MyType.A]
f = Factory()
f.load({"type": "a"}, Data)
It raises error:
Traceback (most recent call last):
File "tmp/enmlit.py", line 18, in <module>
f.load({"type": "a"}, Data)
File "/home/tishka17/src/dataclass_factory/dataclass_factory/factory.py", line 218, in load
return self.parser(class_)(data)
File "/home/tishka17/src/dataclass_factory/dataclass_factory/parsers.py", line 223, in complex_parser
result = parser(data[item_name])
File "/home/tishka17/src/dataclass_factory/dataclass_factory/parsers.py", line 307, in literal_parser
raise ValueError("Invalid literal data")
ValueError: Invalid literal data