mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
🎨 add wps linting
This commit is contained in:
parent
6af376e761
commit
6fd86dcad0
3 changed files with 205 additions and 7 deletions
55
.github/workflows/pr_linting.yml
vendored
Normal file
55
.github/workflows/pr_linting.yml
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
name: 📇 Code Linting
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number}}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
files_changed:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
changed_python: ${{ steps.changes.outputs.python }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3-4
|
||||
if: github.event_name == 'push'
|
||||
- uses: dorny/paths-filter@master
|
||||
id: changes
|
||||
with:
|
||||
filters: |
|
||||
python:
|
||||
- ["**/*.py"]
|
||||
linting:
|
||||
needs: files_changed
|
||||
if: ${{ needs.files_changed.outputs.changed_python == 'true' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
fetch-depth: 0
|
||||
- name: Get changed Python files
|
||||
id: py-changes
|
||||
run: |
|
||||
echo "py_files_list=$(git diff --name-only --diff-filter=ACMRT \
|
||||
${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} \
|
||||
| grep .py$ | xargs)" >> $GITHUB_OUTPUT
|
||||
- name: Code Check
|
||||
uses: wemake-services/wemake-python-styleguide@master
|
||||
with:
|
||||
reporter: 'github-pr-review'
|
||||
path: ${{ steps.py-changes.outputs.py_files_list }}
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.YNPUT_BOT_TOKEN }}"
|
||||
|
|
@ -29,6 +29,8 @@ pytest = "^8.0"
|
|||
pytest-print = "^1.0"
|
||||
ayon-python-api = "^1.0"
|
||||
arrow = "^1.3.0"
|
||||
wemake-python-styleguide = "*"
|
||||
isort="*"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
|
|
|
|||
155
setup.cfg
155
setup.cfg
|
|
@ -2,6 +2,7 @@
|
|||
# ignore = D203
|
||||
ignore = BLK100, W504, W503
|
||||
max-line-length = 79
|
||||
strictness = short
|
||||
exclude =
|
||||
.git,
|
||||
__pycache__,
|
||||
|
|
@ -9,6 +10,153 @@ exclude =
|
|||
|
||||
max-complexity = 30
|
||||
|
||||
ignore =
|
||||
# line break before binary operator
|
||||
W503,
|
||||
# line break occurred after a binary operator
|
||||
W504,
|
||||
# wemake-python-styleguide warnings
|
||||
# See https://wemake-python-stylegui.de/en/latest/pages/usage/violations/index.html for doc
|
||||
# Found incorrect module name pattern
|
||||
WPS102,
|
||||
# Found wrong variable name
|
||||
WPS110,
|
||||
# Found too short name
|
||||
WPS111,
|
||||
# Found upper-case constant in a class
|
||||
WPS115,
|
||||
# Found module with too many imports
|
||||
WPS201,
|
||||
# Found too many module members
|
||||
WPS202,
|
||||
# Found overused expression
|
||||
WPS204,
|
||||
# Found too many local variables
|
||||
WPS210,
|
||||
# Found too many arguments
|
||||
WPS211,
|
||||
# Found too many return statements
|
||||
WPS212,
|
||||
# Found too many expressions
|
||||
WPS213,
|
||||
# Found too many methods
|
||||
WPS214,
|
||||
# Found too many await expressions
|
||||
WPS217,
|
||||
# Found line with high Jones Complexity
|
||||
WPS221,
|
||||
# Found too many `elif` branches
|
||||
WPS223,
|
||||
# Found string constant over-use
|
||||
WPS226,
|
||||
# Found too long try body length
|
||||
WPS229,
|
||||
# Found too many public instance attributes
|
||||
WPS230,
|
||||
# Found function with too much cognitive complexity
|
||||
WPS231,
|
||||
# Found module cognitive complexity that is too high
|
||||
WPS232,
|
||||
# Found too many imported names from a module
|
||||
WPS235,
|
||||
# Found too many raises in a function
|
||||
WPS238,
|
||||
# Found too deep nesting
|
||||
WPS220,
|
||||
# Found `f` string
|
||||
WPS305,
|
||||
# Found incorrect multi-line parameters
|
||||
WPS317,
|
||||
# Found extra indentation
|
||||
WPS318,
|
||||
# Found bracket in wrong position
|
||||
WPS319,
|
||||
# Found percent string formatting
|
||||
WPS323,
|
||||
# Found implicit string concatenation
|
||||
WPS326,
|
||||
# Found variables that are only used for `return`
|
||||
WPS331,
|
||||
# Found explicit string concatenation
|
||||
WPS336,
|
||||
# Found multiline conditions
|
||||
WPS337,
|
||||
# Found incorrect order of methods in a class
|
||||
WPS338,
|
||||
# Found line starting with a dot
|
||||
WPS348,
|
||||
# Found multiline loop
|
||||
WPS352,
|
||||
# Found incorrect unpacking target
|
||||
WPS414,
|
||||
# Found wrong keyword
|
||||
WPS420,
|
||||
# Found wrong function
|
||||
WPS421,
|
||||
# Found statement that has no effect
|
||||
WPS428,
|
||||
# Found nested function
|
||||
WPS430,
|
||||
# Found magic number
|
||||
WPS432,
|
||||
# Found protected attribute usage
|
||||
WPS437,
|
||||
# Found block variables overlap
|
||||
WPS440,
|
||||
# Found an infinite while loop
|
||||
WPS457,
|
||||
# Found a getter without a return value
|
||||
WPS463,
|
||||
# Found negated condition
|
||||
WPS504,
|
||||
# flake8-quotes warnings
|
||||
# Remove bad quotes
|
||||
Q000,
|
||||
# Remove bad quotes from multiline string
|
||||
Q001,
|
||||
# Darglint warnings
|
||||
# Incorrect indentation
|
||||
DAR003,
|
||||
# Excess parameter(s) in Docstring
|
||||
DAR102,
|
||||
# Excess exception(s) in Raises section
|
||||
DAR402,
|
||||
# pydocstyle warnings
|
||||
# Missing docstring in __init_
|
||||
D107,
|
||||
# White space formatting for doc strings
|
||||
D2,
|
||||
# First line should end with a period
|
||||
D400,
|
||||
# Others
|
||||
# function name
|
||||
N802,
|
||||
# Found backslash that is used for line breaking
|
||||
N400,
|
||||
E501,
|
||||
S105,
|
||||
RST,
|
||||
# Black would make changes error
|
||||
BLK100,
|
||||
# Imperative mood of the first line on docstrings
|
||||
D401,
|
||||
# Found using `@staticmethod`
|
||||
WPS602,
|
||||
|
||||
[isort]
|
||||
profile=wemake
|
||||
src_paths=isort,test
|
||||
# isort configuration:
|
||||
# https://github.com/timothycrosley/isort/wiki/isort-Settings
|
||||
include_trailing_comma = true
|
||||
use_parentheses = true
|
||||
# See https://github.com/timothycrosley/isort#multi-line-output-modes
|
||||
multi_line_output = 3
|
||||
# Is the same as 80 in flake8:
|
||||
line_length = 79
|
||||
force_grid_wrap = 0
|
||||
combine_as_imports = True
|
||||
|
||||
[pylint.'MESSAGES CONTROL']
|
||||
disable = no-member
|
||||
|
||||
|
|
@ -18,10 +166,3 @@ omit = /tests
|
|||
|
||||
[coverage:html]
|
||||
directory = ./coverage
|
||||
|
||||
[isort]
|
||||
line_length = 79
|
||||
multi_line_output = 3
|
||||
include_trailing_comma = True
|
||||
force_grid_wrap = 0
|
||||
combine_as_imports = True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue