We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
typing.Mapping
str
from __future__ import annotations from dataclasses import dataclass from typing import Annotated from databind.json import JsonConverter, load @dataclass(frozen=True) class Inner: one: str two: str def __str__(self) -> str: f"{self.one}.{self.two}" @classmethod def from_string(cls, val: str) -> Inner: vals = val.split(".") return Inner(one=vals[0], two=vals[1]) @dataclass(frozen=True) class Outer: number: int inner: Annotated[ Inner, JsonConverter.using_classmethods( Inner, serialize="__str__", deserialize="from_string" ), ] dict = {"number": 3, "inner": "hello.world"} loaded = load(dict, Outer) print(loaded)
Inner struct is parsed using from_string class method and print out:
from_string
MyClass(number=3, inner=Inner(one='hello', two='world'))
databind.core.converter.ConversionError: expected typing.Mapping, got str instead Trace: $: TypeHint(__main__.Outer) .inner: TypeHint(typing.Annotated[__main__.Inner, <databind.json.settings.JsonConverter object at 0x1034aec50>])
The text was updated successfully, but these errors were encountered:
NiklasRosenstein
No branches or pull requests
Expected Behaviour
Inner struct is parsed using
from_string
class method and print out:Actual Behaviour
The text was updated successfully, but these errors were encountered: