-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
Thank you for bringing types into python -- it makes daily life so much easier :)
However, I think there's a pretty serious bug with the bool validator.
Minimal working example:
from pydantic import BaseModel
class Model(BaseModel):
a: bool
Model(a=1) # should cause exception
Model(a="snap") # should cause exception
a should be a bool and only a bool. If a user provides any other value to the endpoint (using fastapi), the database throws because it's the wrong type.
I cannot think of a single type that can be passed to bool(X) that won't return a boolean, and yet bool_validator returns that coercion. e.g. bool({"moo": 1}) == True. This makes the validator completely useless :(
Is there a reason behind this? And if it needs to stay as is, do you think adding a strict mode to the validator is an option?
Also, as an aside, there are no unit tests for the function.
I'm very happy to make a PR (adding some unit tests as well!) because it shouldn't take long, but I need to understand if there's a reason for this first.
Thanks!