Commit bd17baa2 by Christian Clauss Committed by Tianqi Chen

GitHub Action lint Python code for syntax errors (#4688)

* GitHub Action lint Python code for syntax errors

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__](https://github.com/psf/black) can autocorrect).  Instead these tests are 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.

* Force a retest

* Rename start_rpc_server_to_tracker.py to start_rpc_server_to_tracker.sh

This is a bash file, not a Python file.
parent 35099e6a
......@@ -16,7 +16,7 @@
# under the License.
# GH actions.
# We use it to cover windows and mac build
# We use it to cover windows and mac builds
# Jenkins is still the primary CI
name: WinMacBuild
......@@ -40,6 +40,12 @@ jobs:
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v1
- name: Lint Python
if: matrix.os == 'macOS-latest'
run: |
pip install flake8
flake8 . --count --select=E9,F63,F7 --show-source --statistics
- name: Initialize submodules
run: git submodule update --recursive --init
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment