cclauss commented on issue #9953:
URL: https://github.com/apache/superset/issues/9953#issuecomment-918561133


   I concur with the sentiment stated above that pylint requires so many linter 
directives that it is sometimes perceived as unusable.  Black and isort have 
their place but are not really focused on runtime safety and program 
correctness.
   
   This repo currently has two _undefined names_ in Python code that none of 
the tools above would find.  These appeared without being detected since #3264
   
   I would encourage the use of the following command as part of the linting 
arsenal…
   
   $ `flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics`
   
   https://flake8.pycqa.org/en/latest/user/error-codes.html
   
   This flake8 test selection does  _not_ focus on "_style violations_" (the 
majority of flake8 error codes that 
[__psf/black__](https://github.com/psf/black) can autocorrect).  Instead, these 
tests focus on runtime safety and correctness:
   * __E9__ tests are about Python syntax errors usually raised because flake8 
can not build an Abstract Syntax Tree (AST).  Often these issues are a sign of 
unused code or code that has not been ported to Python 3.  These would be 
compile-time errors in a compiled language but in a dynamic language like 
Python, they result in the script halting/crashing on the user.
   * __F63__ tests are usually about the confusion between identity and 
equality in Python.  Use ==/!= to compare str, bytes, and int literals is the 
classic case.  These are areas where __a == b__ is True but __a is b__ is False 
(or vice versa).  Python >= 3.8 will raise SyntaxWarnings on these instances.
   * __F7__ tests logic errors and syntax errors in type hints
   * __F82__ tests are almost always _undefined names_ which are usually a sign 
of a typo, missing imports, or code that has not been ported to Python 3.  
These also would be compile-time errors in a compiled language but in Python, a 
__NameError__ is raised which will halt/crash the script on the user.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to