ALL-OVER0003 · evidence
This page continues ALL-OVER0003 directly from its source docstring. Read its implementation.
Evidence
Section titled “Evidence”Each finding names the subclass, the base, the member, and the parameter list each side states, with the defaults each one writes. The value is the number of overrides that withdrew at least one.
Exceptions
Section titled “Exceptions”A name that begins with two underscores is left alone, because Python either rewrites it into the class that wrote it or calls it itself. A setter is left alone too, since the assigned value reaches it as an argument the reader never wrote.
Any other departure takes the override out of this rule and into one of the other two, so an
override that also changed a name or a count is reported once as that instead. An override
ending in *args is left alone, because the tail keeps accepting the call that relied on the
default. A keyword-only default is not counted either, since withdrawing one changes the set
of arguments a caller must name and the differing-arguments rule owns that.
References
Section titled “References”- Generalizes Pylint W0222 signature-differs. Open reference
- Cites “A Behavioral Notion of Subtyping”, 1994
- Cites “Working Effectively with Legacy Code”, chapter 22, seams and signatures