Skip to main content

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 BaseModel or GenericModel.
  • The class contains only annotated assignments.
  • The class has at least one method decorated with @validator or @root_validator.
  • The class contains an inner Config class.
  • 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.

Metadata

Release files for flake8-pydantic-fields 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flake8-pydantic-fields 0.1.8
File Size Uploaded
flake8-pydantic-fields-0.1.8.tar.gz 4.0 kB Details

Release files / flake8-pydantic-fields-0.1.8.tar.gz

Download URL flake8-pydantic-fields-0.1.8.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f2254b475dfb8c254d296899a7413dc42428d7aa13c73cf81d6a317780e9f909
BLAKE2b-256 checksum
How to use checksums
b688e9d349194acdea05fb75a0047f074764a22e25bc28f49e677dc42192e50e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release history Release notifications | RSS feed

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

This release

0.1.8 This release

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page