dataclasses-json
dataclasses-json copied to clipboard
named tuple support
using NamedTuple
from the typing
module don't seem to be supported. I also tried collections.namedtuple
variant, but running into the same issue.
dataclasses-json version: 0.5.5
example:
from collections import namedtuple
from dataclasses import dataclass
from typing import List, Optional, NamedTuple
from dataclasses_json import DataClassJsonMixin
@dataclass
class MyClass(DataClassJsonMixin):
my_str: str
people: List['Person']
@dataclass
class Person:
name: 'Name'
class Name(NamedTuple):
"""A person's name"""
first: str
last: str
salutation: Optional[str] = 'Mr.'
# also tried with `collections.namedtuple`, with same error
# Name = namedtuple('Name', ['first', 'last'])
data = {
'my_str': 'string',
'people': [{'name': ('John', 'Smith')},
{'name': ('Jane', 'Doe', 'Dr.')}]
}
c = MyClass.from_dict(data)
print(c)
err message:
TypeError: Type List cannot be instantiated; use list() instead