There is a surprising hole in Python's checkers: Ruff, Mypy, Pylint, and
Pyflakes.
*The test file*
Consider the following file:
class Test:
__slots__ = ('good',)
def main():
t = Test()
print(t.bad)
main()
When executing this file, Python throws an *AttributeError* as expected:
the instance t of the Test class has no "bad" attribute. But *none* of the
checkers listed above detect this error!
Iirc Pylint used to discover at least some of these errors, but it no
longer does.
*Summary*
I have filed Ruff issue #10833
<https://github.com/astral-sh/ruff/issues/10833> on this topic. All the
checkers fail with or without the __slots__ statement.
Leo issue #3852 <https://github.com/leo-editor/leo-editor/issues/3852>
suggests creating a tool to find such errors.
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/leo-editor/a2bcdf3a-9962-447a-a312-a0554d5d48afn%40googlegroups.com.