adaptix icon indicating copy to clipboard operation
adaptix copied to clipboard

Not possible to parse Literal with enum value

Open Tishka17 opened this issue 3 years ago • 0 comments

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

Tishka17 avatar Apr 14 '22 14:04 Tishka17