name: Python API Checks on: workflow_dispatch: push: paths: - 'src/bindings/python/**' - 'samples/python/**' - '.github/workflows/py_checks.yml' branches: - 'master' - 'releases/**' pull_request: paths: - 'src/bindings/python/**' - 'samples/python/**' - '.github/workflows/py_checks.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: linters: runs-on: ubuntu-20.04 steps: - name: Code checkout uses: actions/checkout@v4 with: submodules: recursive - name: Setup Python uses: actions/setup-python@v4 with: python-version: '3.7' - name: Install dependencies run: python -m pip install -r src/bindings/python/requirements_test.txt # samples code-style - name: Run flake8 on samples run: python -m flake8 ./ --config=setup.cfg working-directory: samples/python - name: Create code style diff for samples if: failure() run: | python -m black -l 160 -S ./ git diff > samples_diff.diff working-directory: samples/python - uses: actions/upload-artifact@v3 if: failure() with: name: samples_diff path: samples_diff.diff # IE Python API Flake code-style - name: Run flake8 on IE Python API run: python -m flake8 ./ --config=setup.cfg working-directory: src/bindings/python/src/compatibility/openvino - name: Create code style diff for IE Python API if: failure() run: | python -m black -l 160 -S ./ git diff > ie_python_diff.diff working-directory: src/bindings/python/src/compatibility/openvino - uses: actions/upload-artifact@v3 if: failure() with: name: ie_python_diff path: ie_python_diff.diff # nGraph Python API Flake code-style - name: Run flake8 on nGraph Python API run: python -m flake8 ./src/compatibility/ngraph --config=setup.cfg working-directory: src/bindings/python - name: Create code style diff for nGraph Python API if: failure() run: | python -m black -l 160 -S ./ git diff > pyngraph_diff.diff working-directory: src/bindings/python/src/compatibility/ngraph - uses: actions/upload-artifact@v3 if: failure() with: name: pyngraph_diff path: pyngraph_diff.diff # Python API 2.0 Flake code-style - name: Run flake8 on Python API 2.0 run: python -m flake8 ./src/openvino --config=setup.cfg working-directory: src/bindings/python - name: Create code style diff for Python API 2.0 if: failure() run: | python -m black -l 160 -S ./ git diff > pyopenvino_diff.diff working-directory: src/bindings/python/src/openvino - uses: actions/upload-artifact@v3 if: failure() with: name: pyopenvino_diff path: pyopenvino_diff.diff # wheel Flake code-style - name: Run flake8 on wheel run: python -m flake8 ./ --config=../setup.cfg working-directory: src/bindings/python/wheel - name: Create code style diff for wheel if: failure() run: | python -m black -l 160 -S ./ git diff > wheel_diff.diff working-directory: src/bindings/python/wheel - uses: actions/upload-artifact@v3 if: failure() with: name: wheel_diff path: wheel_diff.diff # Python API 2.0 tests Flake code-style - name: Run flake8 on python tests # ignore lack of docs in tests run: python -m flake8 tests/ --config=setup.cfg working-directory: src/bindings/python # IE Python API mypy check - name: Run mypy on IE Python API run: python -m mypy ./ --config-file ./setup.cfg working-directory: src/bindings/python/src/compatibility/openvino # nGraph Python API mypy check - name: Run mypy on nGraph Python API run: python -m mypy ./src/compatibility/ngraph --config-file ./setup.cfg working-directory: src/bindings/python # Python API 2.0 mypy check - name: Run mypy on Python API 2.0 run: python -m mypy ./src/openvino --config-file ./setup.cfg working-directory: src/bindings/python - name: Run Bandit run: python -m bandit -r ./ -f screen working-directory: src/bindings/python/src/compatibility/openvino # layer_tests Flake code-style - name: Run flake8 on python tests in openvino/tests/layer_tests run: | modified_files=$(git diff --name-only) for file in $modified_files; do if [[ $file == "openvino/tests/layer_tests/"* ]]; then if [[ -f "$file" ]]; then python -m flake8 "$file" --config= ./setup.cfg fi fi done