feat: Add nbqa linter for Jupyter Notebooks

This commit is contained in:
Holt Skinner 2024-11-13 10:49:15 -06:00
parent b2d0953bfc
commit 360da21750
29 changed files with 461 additions and 3 deletions

View file

@ -410,6 +410,7 @@ ENV PATH="${PATH}:/venvs/black/bin"
ENV PATH="${PATH}:/venvs/checkov/bin" ENV PATH="${PATH}:/venvs/checkov/bin"
ENV PATH="${PATH}:/venvs/cfn-lint/bin" ENV PATH="${PATH}:/venvs/cfn-lint/bin"
ENV PATH="${PATH}:/venvs/cpplint/bin" ENV PATH="${PATH}:/venvs/cpplint/bin"
ENV PATH="${PATH}:/venvs/nbqa/bin"
ENV PATH="${PATH}:/venvs/flake8/bin" ENV PATH="${PATH}:/venvs/flake8/bin"
ENV PATH="${PATH}:/venvs/isort/bin" ENV PATH="${PATH}:/venvs/isort/bin"
ENV PATH="${PATH}:/venvs/mypy/bin" ENV PATH="${PATH}:/venvs/mypy/bin"

View file

@ -85,6 +85,7 @@ Super-linter supports the following tools:
| **JSON** | [eslint-plugin-jsonc (configured for JSON)](https://www.npmjs.com/package/eslint-plugin-jsonc) (default), [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | [Prettier](https://prettier.io/) | | **JSON** | [eslint-plugin-jsonc (configured for JSON)](https://www.npmjs.com/package/eslint-plugin-jsonc) (default), [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | [Prettier](https://prettier.io/) |
| **JSONC**, **JSON5** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | [Prettier](https://prettier.io/) | | **JSONC**, **JSON5** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | [Prettier](https://prettier.io/) |
| **JSX**, **TSX** | [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | [Prettier](https://prettier.io/) | | **JSX**, **TSX** | [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | [Prettier](https://prettier.io/) |
| **Jupyter Notebook** | [nbqa](https://nbqa.readthedocs.io/en/latest/index.html) | [nbqa](https://nbqa.readthedocs.io/en/latest/index.html) |
| **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform), [Checkov](https://www.checkov.io/) | See YAML formatters | | **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform), [Checkov](https://www.checkov.io/) | See YAML formatters |
| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | | | **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | |
| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | | | **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | |
@ -249,6 +250,9 @@ You can configure Super-linter using the following environment variables:
| **FIX_JSONC_PRETTIER** | `true` | Flag to enable or disable the formatting of JSONC and JSON5 files with Prettier. | | **FIX_JSONC_PRETTIER** | `true` | Flag to enable or disable the formatting of JSONC and JSON5 files with Prettier. |
| **FIX_JSX_PRETTIER** | `true` | Flag to enable or disable the formatting of JSX files with Prettier. | | **FIX_JSX_PRETTIER** | `true` | Flag to enable or disable the formatting of JSX files with Prettier. |
| **FIX_JSX** | `false` | Option to enable fix mode for `JSX`. | | **FIX_JSX** | `false` | Option to enable fix mode for `JSX`. |
| **FIX_JUPYTER_NBQA_BLACK** | `false` | Option to enable fix mode for `NBQA_BLACK`. |
| **FIX_JUPYTER_NBQA_ISORT** | `false` | Option to enable fix mode for `NBQA_ISORT`. |
| **FIX_JUPYTER_NBQA_RUFF** | `false` | Option to enable fix mode for `NBQA_RUFF`. |
| **FIX_MARKDOWN_PRETTIER** | `true` | Flag to enable or disable the formatting of Markdown files with Prettier. | | **FIX_MARKDOWN_PRETTIER** | `true` | Flag to enable or disable the formatting of Markdown files with Prettier. |
| **FIX_MARKDOWN** | `false` | Option to enable fix mode for `MARKDOWN`. | | **FIX_MARKDOWN** | `false` | Option to enable fix mode for `MARKDOWN`. |
| **FIX_POWERSHELL** | `false` | Option to enable fix mode for `POWERSHELL`. | | **FIX_POWERSHELL** | `false` | Option to enable fix mode for `POWERSHELL`. |
@ -285,6 +289,7 @@ You can configure Super-linter using the following environment variables:
| **JAVA_FILE_NAME** | `sun_checks.xml` | Filename for [Checkstyle configuration](https://checkstyle.sourceforge.io/config.html). Checkstyle embeds several configuration files, such as `sun_checks.xml`, `google_checks.xml` that you can use without providing your own configuration file. | | **JAVA_FILE_NAME** | `sun_checks.xml` | Filename for [Checkstyle configuration](https://checkstyle.sourceforge.io/config.html). Checkstyle embeds several configuration files, such as `sun_checks.xml`, `google_checks.xml` that you can use without providing your own configuration file. |
| **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | | **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) |
| **JSCPD_CONFIG_FILE** | `.jscpd.json` | Filename for JSCPD configuration | | **JSCPD_CONFIG_FILE** | `.jscpd.json` | Filename for JSCPD configuration |
| **JUPYTER_NBQA_CONFIG_FILE** | `.jupyter-nbqa.toml` | Filename for [nbqa configuration](https://nbqa.readthedocs.io/en/latest/configuration.html) |
| **KUBERNETES_KUBECONFORM_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **Kubernetes Kubeconform** (Example: --ignore-missing-schemas) | | **KUBERNETES_KUBECONFORM_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **Kubernetes Kubeconform** (Example: --ignore-missing-schemas) |
| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. | | **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. |
| **LOG_FILE** | `super-linter.log` | The filename for outputting logs. Super-linter saves the log file to `${DEFAULT_WORKSPACE}/${LOG_FILE}`. | | **LOG_FILE** | `super-linter.log` | The filename for outputting logs. Super-linter saves the log file to `${DEFAULT_WORKSPACE}/${LOG_FILE}`. |
@ -373,6 +378,12 @@ You can configure Super-linter using the following environment variables:
| **VALIDATE_JSONC_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSONC and JSON5 files with Prettier. | | **VALIDATE_JSONC_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSONC and JSON5 files with Prettier. |
| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: ESLint) | | **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: ESLint) |
| **VALIDATE_JSX_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSX files with Prettier. | | **VALIDATE_JSX_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSX files with Prettier. |
| **VALIDATE_JUPYTER_NBQA_BLACK** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa black) |
| **VALIDATE_JUPYTER_NBQA_FLAKE8** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa flake8) |
| **VALIDATE_JUPYTER_NBQA_ISORT** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa isort) |
| **VALIDATE_JUPYTER_NBQA_MYPY** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa mypy) |
| **VALIDATE_JUPYTER_NBQA_PYLINT** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa pylint) |
| **VALIDATE_JUPYTER_NBQA_RUFF** | `true` | Flag to enable or disable the linting process of Jupyter Notebooks. (Utilizing: nbqa ruff) |
| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. | | **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. |
| **VALIDATE_KUBERNETES_KUBECONFORM** | `true` | Flag to enable or disable the linting process of Kubernetes descriptors with Kubeconform | | **VALIDATE_KUBERNETES_KUBECONFORM** | `true` | Flag to enable or disable the linting process of Kubernetes descriptors with Kubeconform |
| **VALIDATE_LATEX** | `true` | Flag to enable or disable the linting process of the LaTeX language. | | **VALIDATE_LATEX** | `true` | Flag to enable or disable the linting process of the LaTeX language. |

View file

1
dependencies/python/nbqa.txt vendored Normal file
View file

@ -0,0 +1 @@
nbqa==1.9.0

View file

@ -20,8 +20,8 @@ tool, do the following.
violations that the fix mode can automatically fix. Avoid test cases that violations that the fix mode can automatically fix. Avoid test cases that
fail only because of syntax errors, when possible. fail only because of syntax errors, when possible.
4. Update expected summary reports: `test/data/super-linter-summary`. 4. Update expected summary reports: `test/data/super-linter-summary`.
5. If the tool supports check-only mode or fix mode, add the `<LANGUGAGE>` to 5. If the tool supports check-only mode or fix mode, add the `<LANGUAGE>` to the
the `LANGUAGES_WITH_FIX_MODE` array in `test/testUtils.sh` `LANGUAGES_WITH_FIX_MODE` array in `test/testUtils.sh`
## Update the test suite ## Update the test suite

View file

@ -457,6 +457,13 @@ BuildFileArrays() {
elif [ "${FILE_TYPE}" == "jsx" ]; then elif [ "${FILE_TYPE}" == "jsx" ]; then
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JSX" echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JSX"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JSX_PRETTIER" echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JSX_PRETTIER"
elif [ "${FILE_TYPE}" == "ipynb" ]; then
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_BLACK"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_FLAKE8"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_ISORT"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_PYLINT"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_MYPY"
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-JUPYTER_NBQA_RUFF"
elif [ "${FILE_TYPE}" == "kt" ] || [ "${FILE_TYPE}" == "kts" ]; then elif [ "${FILE_TYPE}" == "kt" ] || [ "${FILE_TYPE}" == "kts" ]; then
echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-KOTLIN" echo "${FILE}" >>"${FILE_ARRAYS_DIRECTORY_PATH}/file-array-KOTLIN"
elif [ "$FILE_TYPE" == "lua" ]; then elif [ "$FILE_TYPE" == "lua" ]; then

View file

@ -104,6 +104,12 @@ LINTER_COMMANDS_ARRAY_JSONC=(eslint -c "${JAVASCRIPT_ES_LINTER_RULES}" --ext '.j
LINTER_COMMANDS_ARRAY_JSONC_PRETTIER=("${PRETTIER_COMMAND[@]}") LINTER_COMMANDS_ARRAY_JSONC_PRETTIER=("${PRETTIER_COMMAND[@]}")
LINTER_COMMANDS_ARRAY_JSX=(eslint -c "${JSX_LINTER_RULES}") LINTER_COMMANDS_ARRAY_JSX=(eslint -c "${JSX_LINTER_RULES}")
LINTER_COMMANDS_ARRAY_JSX_PRETTIER=("${PRETTIER_COMMAND[@]}") LINTER_COMMANDS_ARRAY_JSX_PRETTIER=("${PRETTIER_COMMAND[@]}")
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_BLACK=(nbqa black)
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_PYLINT=(nbqa pylint)
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_FLAKE8=(nbqa flake8)
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_ISORT=(nbqa isort)
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_MYPY=(nbqa mypy)
LINTER_COMMANDS_ARRAY_JUPYTER_NBQA_RUFF=(nbqa ruff check)
LINTER_COMMANDS_ARRAY_KOTLIN=(ktlint "{/}") LINTER_COMMANDS_ARRAY_KOTLIN=(ktlint "{/}")
LINTER_COMMANDS_ARRAY_KUBERNETES_KUBECONFORM=(kubeconform -strict) LINTER_COMMANDS_ARRAY_KUBERNETES_KUBECONFORM=(kubeconform -strict)
if [ "${KUBERNETES_KUBECONFORM_OPTIONS}" != "null" ] && [ -n "${KUBERNETES_KUBECONFORM_OPTIONS}" ]; then if [ "${KUBERNETES_KUBECONFORM_OPTIONS}" != "null" ] && [ -n "${KUBERNETES_KUBECONFORM_OPTIONS}" ]; then

View file

@ -28,6 +28,12 @@ LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'BASH_EXEC' 'CHECKOV' 'CLANG_FORMAT'
"JSONC_PRETTIER" "JSONC_PRETTIER"
'JSX' 'JSX'
"JSX_PRETTIER" "JSX_PRETTIER"
"JUPYTER_NBQA_BLACK"
"JUPYTER_NBQA_PYLINT"
"JUPYTER_NBQA_FLAKE8"
"JUPYTER_NBQA_ISORT"
"JUPYTER_NBQA_MYPY"
"JUPYTER_NBQA_RUFF"
'KUBERNETES_KUBECONFORM' 'KOTLIN' 'LATEX' 'LUA' 'MARKDOWN' 'KUBERNETES_KUBECONFORM' 'KOTLIN' 'LATEX' 'LUA' 'MARKDOWN'
"MARKDOWN_PRETTIER" "MARKDOWN_PRETTIER"
'NATURAL_LANGUAGE' 'OPENAPI' 'PERL' 'PHP_BUILTIN' 'PHP_PHPCS' 'PHP_PHPSTAN' 'NATURAL_LANGUAGE' 'OPENAPI' 'PERL' 'PHP_BUILTIN' 'PHP_PHPCS' 'PHP_PHPSTAN'

View file

@ -24,6 +24,8 @@ JAVASCRIPT_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS
JSON_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}") JSON_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}")
JSONC_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}") JSONC_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}")
JSX_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}") JSX_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}")
JUPYTER_NBQA_BLACK_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
JUPYTER_NBQA_ISORT_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
MARKDOWN_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}") MARKDOWN_PRETTIER_CHECK_ONLY_MODE_OPTIONS=("${PRETTIER_CHECK_ONLY_MODE_OPTIONS[@]}")
PYTHON_BLACK_CHECK_ONLY_MODE_OPTIONS=(--diff --check) PYTHON_BLACK_CHECK_ONLY_MODE_OPTIONS=(--diff --check)
PYTHON_ISORT_CHECK_ONLY_MODE_OPTIONS=(--diff --check) PYTHON_ISORT_CHECK_ONLY_MODE_OPTIONS=(--diff --check)

View file

@ -54,6 +54,8 @@ MARKDOWN_CUSTOM_RULE_GLOBS="${MARKDOWN_CUSTOM_RULE_GLOBS:-""}"
# shellcheck disable=SC2034 # Variable is referenced indirectly # shellcheck disable=SC2034 # Variable is referenced indirectly
MARKDOWN_FILE_NAME="${MARKDOWN_CONFIG_FILE:-.markdown-lint.yml}" MARKDOWN_FILE_NAME="${MARKDOWN_CONFIG_FILE:-.markdown-lint.yml}"
# shellcheck disable=SC2034 # Variable is referenced indirectly # shellcheck disable=SC2034 # Variable is referenced indirectly
JUPYTER_NBQA_FILE_NAME="${JUPYTER_NBQA_CONFIG_FILE:-.jupyter-nbqa.toml}"
# shellcheck disable=SC2034 # Variable is referenced indirectly
OPENAPI_FILE_NAME=".openapirc.yml" OPENAPI_FILE_NAME=".openapirc.yml"
# shellcheck disable=SC2034 # Variable is referenced indirectly # shellcheck disable=SC2034 # Variable is referenced indirectly
PERL_PERLCRITIC_OPTIONS="${PERL_PERLCRITIC_OPTIONS:-null}" PERL_PERLCRITIC_OPTIONS="${PERL_PERLCRITIC_OPTIONS:-null}"

View file

@ -47,6 +47,7 @@ LINTER_NAMES_ARRAY['JSONC']="eslint"
LINTER_NAMES_ARRAY['JSONC_PRETTIER']="prettier" LINTER_NAMES_ARRAY['JSONC_PRETTIER']="prettier"
LINTER_NAMES_ARRAY['JSX']="eslint" LINTER_NAMES_ARRAY['JSX']="eslint"
LINTER_NAMES_ARRAY['JSX_PRETTIER']="prettier" LINTER_NAMES_ARRAY['JSX_PRETTIER']="prettier"
LINTER_NAMES_ARRAY['JUPYTER_NBQA']="nbqa"
LINTER_NAMES_ARRAY['KOTLIN']="ktlint" LINTER_NAMES_ARRAY['KOTLIN']="ktlint"
LINTER_NAMES_ARRAY['KUBERNETES_KUBECONFORM']="kubeconform" LINTER_NAMES_ARRAY['KUBERNETES_KUBECONFORM']="kubeconform"
LINTER_NAMES_ARRAY['LATEX']="chktex" LINTER_NAMES_ARRAY['LATEX']="chktex"
@ -231,7 +232,7 @@ for LANGUAGE in "${!LINTER_NAMES_ARRAY[@]}"; do
elif [[ "${LINTER}" == "yamllint" ]]; then elif [[ "${LINTER}" == "yamllint" ]]; then
GET_VERSION_CMD="$("${LINTER}" --version | awk '{ print $2 }')" GET_VERSION_CMD="$("${LINTER}" --version | awk '{ print $2 }')"
# Some linters don't support a "get version" command # Some linters don't support a "get version" command
elif [[ ${LINTER} == "bash-exec" ]] || [[ ${LINTER} == "gherkin-lint" ]]; then elif [[ ${LINTER} == "bash-exec" ]] || [[ ${LINTER} == "nbqa" ]] || [[ ${LINTER} == "gherkin-lint" ]]; then
GET_VERSION_CMD="Version command not supported" GET_VERSION_CMD="Version command not supported"
else else
GET_VERSION_CMD="$("${LINTER}" --version 2>&1)" GET_VERSION_CMD="$("${LINTER}" --version 2>&1)"

View file

@ -50,6 +50,12 @@
| MARKDOWN | Fail ❌ | | MARKDOWN | Fail ❌ |
| MARKDOWN_PRETTIER | Fail ❌ | | MARKDOWN_PRETTIER | Fail ❌ |
| NATURAL_LANGUAGE | Fail ❌ | | NATURAL_LANGUAGE | Fail ❌ |
| JUPYTER_NBQA_BLACK | Fail ❌ |
| JUPYTER_NBQA_PYLINT | Fail ❌ |
| JUPYTER_NBQA_FLAKE8 | Fail ❌ |
| JUPYTER_NBQA_ISORT | Fail ❌ |
| JUPYTER_NBQA_MYPY | Fail ❌ |
| JUPYTER_NBQA_RUFF | Fail ❌ |
| OPENAPI | Fail ❌ | | OPENAPI | Fail ❌ |
| PERL | Fail ❌ | | PERL | Fail ❌ |
| PHP_BUILTIN | Fail ❌ | | PHP_BUILTIN | Fail ❌ |

View file

@ -55,6 +55,12 @@
| MARKDOWN | Fail ❌ | | MARKDOWN | Fail ❌ |
| MARKDOWN_PRETTIER | Fail ❌ | | MARKDOWN_PRETTIER | Fail ❌ |
| NATURAL_LANGUAGE | Fail ❌ | | NATURAL_LANGUAGE | Fail ❌ |
| JUPYTER_NBQA_BLACK | Fail ❌ |
| JUPYTER_NBQA_PYLINT | Fail ❌ |
| JUPYTER_NBQA_FLAKE8 | Fail ❌ |
| JUPYTER_NBQA_ISORT | Fail ❌ |
| JUPYTER_NBQA_MYPY | Fail ❌ |
| JUPYTER_NBQA_RUFF | Fail ❌ |
| OPENAPI | Fail ❌ | | OPENAPI | Fail ❌ |
| PERL | Fail ❌ | | PERL | Fail ❌ |
| PHP_BUILTIN | Fail ❌ | | PHP_BUILTIN | Fail ❌ |

View file

@ -50,6 +50,12 @@
| MARKDOWN | Pass ✅ | | MARKDOWN | Pass ✅ |
| MARKDOWN_PRETTIER | Pass ✅ | | MARKDOWN_PRETTIER | Pass ✅ |
| NATURAL_LANGUAGE | Pass ✅ | | NATURAL_LANGUAGE | Pass ✅ |
| JUPYTER_NBQA_BLACK | Pass ✅ |
| JUPYTER_NBQA_PYLINT | Pass ✅ |
| JUPYTER_NBQA_FLAKE8 | Pass ✅ |
| JUPYTER_NBQA_ISORT | Pass ✅ |
| JUPYTER_NBQA_MYPY | Pass ✅ |
| JUPYTER_NBQA_RUFF | Pass ✅ |
| OPENAPI | Pass ✅ | | OPENAPI | Pass ✅ |
| PERL | Pass ✅ | | PERL | Pass ✅ |
| PHP_BUILTIN | Pass ✅ | | PHP_BUILTIN | Pass ✅ |

View file

@ -55,6 +55,12 @@
| MARKDOWN | Pass ✅ | | MARKDOWN | Pass ✅ |
| MARKDOWN_PRETTIER | Pass ✅ | | MARKDOWN_PRETTIER | Pass ✅ |
| NATURAL_LANGUAGE | Pass ✅ | | NATURAL_LANGUAGE | Pass ✅ |
| JUPYTER_NBQA_BLACK | Pass ✅ |
| JUPYTER_NBQA_PYLINT | Pass ✅ |
| JUPYTER_NBQA_FLAKE8 | Pass ✅ |
| JUPYTER_NBQA_ISORT | Pass ✅ |
| JUPYTER_NBQA_MYPY | Pass ✅ |
| JUPYTER_NBQA_RUFF | Pass ✅ |
| OPENAPI | Pass ✅ | | OPENAPI | Pass ✅ |
| PERL | Pass ✅ | | PERL | Pass ✅ |
| PHP_BUILTIN | Pass ✅ | | PHP_BUILTIN | Pass ✅ |

View file

@ -181,6 +181,7 @@ control "super-linter-installed-commands" do
{ linter_name: "lua", version_option: "-v"}, { linter_name: "lua", version_option: "-v"},
{ linter_name: "markdownlint"}, { linter_name: "markdownlint"},
{ linter_name: "mypy"}, { linter_name: "mypy"},
{ linter_name: "nbqa"},
{ linter_name: "npm-groovy-lint"}, { linter_name: "npm-groovy-lint"},
{ linter_name: "perl"}, { linter_name: "perl"},
{ linter_name: "php"}, { linter_name: "php"},
@ -411,6 +412,7 @@ control "super-linter-installed-pypi-packages" do
"flake8", "flake8",
"isort", "isort",
"mypy", "mypy",
"nbqa",
"pyink", "pyink",
"pylint", "pylint",
"ruff", "ruff",
@ -512,6 +514,7 @@ control "super-linter-validate-files" do
"/action/lib/.automation/.luacheckrc", "/action/lib/.automation/.luacheckrc",
"/action/lib/.automation/.markdown-lint.yml", "/action/lib/.automation/.markdown-lint.yml",
"/action/lib/.automation/.mypy.ini", "/action/lib/.automation/.mypy.ini",
"/action/lib/.automation/.jupyter-nbqa.toml",
"/action/lib/.automation/.openapirc.yml", "/action/lib/.automation/.openapirc.yml",
"/action/lib/.automation/.perlcriticrc", "/action/lib/.automation/.perlcriticrc",
"/action/lib/.automation/.powershell-psscriptanalyzer.psd1", "/action/lib/.automation/.powershell-psscriptanalyzer.psd1",

View file

@ -0,0 +1,32 @@
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a=1;b=2\n",
"c=a+b\n",
"BROKEN_VAR=BROKEN_VAR\n",
"print(c)"
]
}
]
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a = 1\n",
"b = 2\n",
"c = a + b\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a=1;b=2\n",
"c=a+b\n",
"BROKEN_VAR=BROKEN_VAR\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a = 1\n",
"b = 2\n",
"c = a + b\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,38 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"import json\n",
"from os import getenv, path\n",
"from pprint import pprint\n",
"import sys\n",
"\n",
"\n",
"a=1;b=2\n",
"c=a+b\n",
"BROKEN_VAR=BROKEN_VAR\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a = 1\n",
"b = 2\n",
"c = a + b\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a=1;b=2\n",
"c=a+b\n",
"BROKEN_VAR=BROKEN_VAR\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a = 1\n",
"b = 2\n",
"c = a + b\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a=1;b=2\n",
"c=a+b\n",
"BROKEN_VAR=BROKEN_VAR\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"A = 1\n",
"B = 2\n",
"C = A + B\n",
"print(C)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,33 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"import pandas\n",
"import numpy as np\n",
"\n",
"c = 1 + 2\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -0,0 +1,32 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "hHETjoFLGZmM"
},
"outputs": [],
"source": [
"a = 1\n",
"b = 2\n",
"c = a + b\n",
"print(c)"
]
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}

View file

@ -53,6 +53,9 @@ LANGUAGES_WITH_FIX_MODE=(
"JSONC_PRETTIER" "JSONC_PRETTIER"
"JSX" "JSX"
"JSX_PRETTIER" "JSX_PRETTIER"
"JUPYTER_NBQA_BLACK"
"JUPYTER_NBQA_ISORT"
"JUPYTER_NBQA_RUFF"
"MARKDOWN" "MARKDOWN"
"MARKDOWN_PRETTIER" "MARKDOWN_PRETTIER"
"NATURAL_LANGUAGE" "NATURAL_LANGUAGE"