WPS115 violation forbids uppercase attributes for classes.
However, according to official documentation, enum.Enum attributes should be uppercased.
BTW, checker for enum.Enum attributes case can be a separate violation.
It's not only about style.
Enum members are instances of their Enum class, and are normally accessed as EnumClass.member. Under certain circumstances they can also be accessed as EnumClass.member.member, but you should never do this as that lookup may fail or, worse, return something besides the Enum member you are looking for (this is another good reason to use all-uppercase names for members):
Hm, I was actually using snake_case for enums for my whole life.
¯\_(ツ)_/¯
I think official Python documentation has value here. Enum isn't a regular class.
I agree. Let's do it!
Ok, I have tried several solutions, but we cannot statically tell that this class is enum or not.
We can only check for enum.Enum or Enum (and subtypes) in class bases. But, that's not enough. We cannot find custom Enum subtypes, aliases (import enum as en), etc.
So, we cannot make this rule reliable. The our philosophy - that's not how we define rules.
I have updated docs, that we will continue to use snake_case for enums.