And a lot of the rationale is very weak tea.
For example, don't assign a lambda to an identifier, because a function will show up in a stack trace. But it's OK to use the lambda directly. (huh. What happened to the necessity for the stack trace?)
(FWIW, I think that in some cases assigning lambdas to identifiers is peachy-keen fine. Visually, I immediately know I'm looking at something that doesn't itself produce any side-effects.)
"Using single letter variable names." Uh, yeah, when to do this isn't Python-specific, and includes some cases when it's actually better.
"Not using defaultdict()" Sure, sure, having keys automagically populate is goodness. But then, "Dynamically creating variable/method/function names" is an anti-pattern. Schizophrenic much?
And then, we have the outright lies, such as:
"When a method is not preceded by the @staticmethod or @classmethod decorators and does not contain any references to the class or instance (via keywords like cls or self), Python raises the Method could be a function error. This is not a critical error, but you should check the code in question in order to determine if this section of code really needs to be defined as a method of this class."
Nobody should take advice from a third-grader who can't discern the difference between the interpreter and his preferred lint-like substance.