flake8-pydantic-fields
A flake8 plugin that checks that Pydantic models have default values which are Fields, and that those fields have descriptions. This encourages data documentation.
This package adds the following warnings:
PF001: A Pydantic field which has no default.PF002: A Pydantic field with a default that is not a Field.PF002: A Pydantic field which has a Field default with no description.
There are no configuration options at this time.
This package uses heuristics to determine whether a class is a Pydantic model. While this could be accomplished by running the code, that is not in the spirit of static analyzers, and it would be considerably slower.
The heuristics are:
It is not a Pydantic model if:
- The class has no base classes.
- The class is annotated with
@dataclass.
It is a Pydantic model if:
- The name of the base class is
BaseModelorGenericModel. - The class contains only annotated assignments.
- The class has at least one method decorated with
@validatoror@root_validator. - The class contains an inner
Configclass. - The class contains only methods with no arguments other than
self. These are assumed to be transformations on a data model. - The class contains an attribute annotated as a
ClassVar.
Release files for flake8-pydantic-fields 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flake8-pydantic-fields-0.1.11.tar.gz | 4.2 kB | Details |
Release files / flake8-pydantic-fields-0.1.11.tar.gz
| Download URL | flake8-pydantic-fields-0.1.11.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c3f1662f67af9cccccb46cd233d95bec43a0bd6e0a34ae0a6230813bbdbf1eb
|
|
BLAKE2b-256 checksum How to use checksums |
e1a4eab6745280e387badff127ddb003242cb06c0fb5e7515d9924f9811bf5ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.4
|