Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Action to lint Python code #55

Closed
wants to merge 1 commit into from
Closed

Conversation

cclauss
Copy link

@cclauss cclauss commented Aug 29, 2021

Results: https://github.com/cclauss/VTK/actions

$ flake8 . --count --select=E9,F63,F7 --show-source --statistics

[ ... ]
15    E999 SyntaxError: invalid syntax
15

https://flake8.pycqa.org/en/latest/user/error-codes.html

On the flake8 test selection, this PR does not focus on "style violations" (the majority of flake8 error codes that 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.

Thanks for your interest in contributing to VTK! The GitHub repository
is a mirror provided for convenience, but VTK does not use GitHub pull
requests for contribution. Please see

https://gitlab.kitware.com/vtk/vtk/-/tree/master/CONTRIBUTING.md

for contribution instructions. GitHub OAuth may be used to sign in.

@banesullivan
Copy link
Contributor

FYI, this repository is a mirror of https://gitlab.kitware.com/vtk/vtk and PRs are not frequently checked here. I'd recommend reopening a PR on GitLab: https://gitlab.kitware.com/vtk/vtk

@cclauss cclauss closed this Mar 1, 2022
@cclauss cclauss deleted the patch-1 branch March 1, 2022 18:41
@cclauss
Copy link
Author

cclauss commented Mar 2, 2022

I have tried twice but the CI over there is so complex that it is impossible to get these simple tests to run.
https://gitlab.kitware.com/vtk/vtk/-/merge_requests?scope=all&author_username=cclauss

@banesullivan
Copy link
Contributor

I just found your https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8400

I'm going to add this to my list and see if I can help down the road... Might be a while though as the VTK python code may undergo bigger changes as proposed here: https://discourse.vtk.org/t/more-pythonic-interface-closer-to-numpy/7905

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants