kopia lustrzana https://github.com/Shawn-Shan/fawkes
GitHub Action to lint Python code
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.pull/27/head
rodzic
edd7df5dc6
commit
902daf9780
|
@ -0,0 +1,30 @@
|
|||
name: lint_python
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
# branches: [master]
|
||||
jobs:
|
||||
lint_python:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest] # [ubuntu-latest, macos-latest, windows-latest]
|
||||
python-version: [3.8] # [2.7, 3.5, 3.6, 3.7, 3.8, pypy3]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- run: pip install black codespell flake8 isort pytest
|
||||
- run: black --check . || true
|
||||
# - run: black --diff . || true
|
||||
# - if: matrix.python-version >= 3.6
|
||||
# run: |
|
||||
# pip install black
|
||||
# black --check . || true
|
||||
- run: codespell --quiet-level=2 || true # --ignore-words-list="" --skip=""
|
||||
- run: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
- run: isort --profile black --recursive . || true
|
||||
- run: pip install -r requirements.txt || true
|
||||
- run: pytest . || true
|
Ładowanie…
Reference in New Issue