-
-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Perhaps I am abusing conversions for something that they are not intended to handle, but I encountered a behavior that I found suprising and which feels like a bug.
I was trying to support deserializing floats from both floats and strings. I registered a converter like this:
@apischema.deserializer
def to_float(value: str) -> float:
return float(value)And then tried this:
@dataclass
class Data:
a: float
b: float
result = apischema.deserialize(Data, {
"a": 1.23,
"b": "1.23",
})
print(result)The result was, ValidationError: [{'loc': ['a'], 'err': 'expected type string, found number'}], which is a little suprising, because it seems that adding a converter from string to float has made deserializing a float to itself invalid.
PS: I also tried adding a converter from float to float. That caused RecursionError: maximum recursion depth exceeded.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels