PY-ENUM0001 · redundant_enum_value
Detect explicit enum values that standard auto() would preserve.
This is a deterministic rule for python. Read its implementation.
Definition
Section titled “Definition”Inspect direct subclasses of Enum, IntEnum, StrEnum, Flag, and IntFlag.
A literal is redundant when it equals the next value generated by the standard
enum implementation. Classes that override _generate_next_value_ are excluded.
String values in a plain Enum remain explicit because its auto() value is an
increasing integer.
Evidence
Section titled “Evidence”Every finding identifies one assignment whose runtime value is preserved by auto().
Exceptions
Section titled “Exceptions”Keep explicit protocol values, aliases, compatibility values, mixed value types, custom generation, and spelling whose public meaning differs from the member name.
Examples
Section titled “Examples”FAST = "fast" in a StrEnum, FIRST = 1 in an Enum, and READ = 1 in
a Flag are replaceable by auto(). HTTP_OK = 200 and PUBLIC = "public-name"
remain explicit.
References
Section titled “References”- Cites “The Python Standard Library”, enum documentation for
autoand_generate_next_value_