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.10

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.10
File Size Uploaded
flake8-pydantic-fields-0.1.10.tar.gz 4.1 kB Details

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

Download URL flake8-pydantic-fields-0.1.10.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d89d39fe9b03c1d8314df25f93bf55c490b3ae145356d2e3f25e5f85675656fd
BLAKE2b-256 checksum
How to use checksums
096d121cfbf7f01264adf560ceb941bd189a0c327c81d667237868e8b18626a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.4

Release history Release notifications | RSS feed

0.1.11

1 release file

This release

0.1.10 This release

1 release file

0.1.9

1 release file

0.1.8

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