mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
11d8589423
* Teach mypy plugin that validator methods are classmethods For your consideration: a patch which implements the suggestion I made here: https://github.com/samuelcolvin/pydantic/discussions/4101 Briefly: pydantic automatically wraps validator methods using `@classmethod`. Hence the first argument to a user-provided validator should be `cls`. But mypy doesn't know this: it analyses validator methods like any other regular method, believing the first parameter `cls` to be a model instance (usually denoted self). This means that if one annotates `cls` as `Type[...]` then mypy believes raises an error: error: The erased type of self "Type[temp.Model]" is not a supertype of its class "temp.Model" I concede that this is an extremely niche thing. The only tangible end-user benefit I can think of is that it'll stop you from calling instance methods in a validator. ---- I haven't written a mypy plugin before, so this is a bit of a hack-until-it-works. But it was more straightforward than I expected to get something working! * changelog * Add failure test
Pending Changes
This directory contains files describing changes to pydantic since the last release.
If you're creating a pull request, please add a new file to this directory called
<pull request or issue id>-<github username>.md. It should be formatted as a single paragraph of markdown
The contents of this file will be used to update HISTORY.md before the next release.