flake8 linting для блоков данных python код в github с использованием рабочих процессов - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть мои блоки данных python код в github. Я настроил базовый рабочий процесс c, чтобы связать код python с помощью flake8. Это терпит неудачу, потому что имена, которые неявно доступны для моего сценария (например, spark, sc, dbutils, getArgument et c), когда он выполняется на кирпичах данных, недоступны, когда flake8 выводит его за пределы блоков данных. (в github ubuntu vm).

Как я могу линтовать блокноты базы данных в github, используя flake8?

Например, я получаю ошибки:

test.py:1:1: F821 undefined name 'dbutils'
test.py:3:11: F821 undefined name 'getArgument'
test.py:5:1: F821 undefined name 'dbutils'
test.py:7:11: F821 undefined name 'spark'

мой блокнот в github:

dbutils.widgets.text("my_jdbcurl", "default my_jdbcurl")

jdbcurl = getArgument("my_jdbcurl")

dbutils.fs.ls(".")

df_node = spark.read.format("jdbc")\
  .option("driver", "org.mariadb.jdbc.Driver")\
  .option("url", jdbcurl)\
  .option("dbtable", "my_table")\
  .option("user", "my_username")\
  .option("password", "my_pswd")\
  .load()

мой .github / workflows / lint.yml

on:
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-python@v1
      with:
        python-version: 3.8
    - run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Lint with flake8
      run: |
        pip install flake8
        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
...