У меня есть мои блоки данных 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