Add option to format Jupyter Notebooks in GitHub Action (#3282)
To run the formatter on Jupyter Notebooks, Black must be installed with an extra dependency (`black[jupyter]`). This commit adds an optional argument to install Black with this dependency when using the official GitHub Action [1]. To enable the formatter on Jupyter Notebooks, just add `jupyter: true` as an argument. Feature requested at [2]. [1]: https://black.readthedocs.io/en/stable/integrations/github_actions.html [2]: https://github.com/psf/black/issues/3280 Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
This commit is contained in:
parent
1f2ad77505
commit
6b42c2b8c9
@ -29,6 +29,7 @@ Multiple contributions by:
|
|||||||
- [Andrey](mailto:dyuuus@yandex.ru)
|
- [Andrey](mailto:dyuuus@yandex.ru)
|
||||||
- [Andy Freeland](mailto:andy@andyfreeland.net)
|
- [Andy Freeland](mailto:andy@andyfreeland.net)
|
||||||
- [Anthony Sottile](mailto:asottile@umich.edu)
|
- [Anthony Sottile](mailto:asottile@umich.edu)
|
||||||
|
- [Antonio Ossa Guerra](mailto:aaossa+black@uc.cl)
|
||||||
- [Arjaan Buijk](mailto:arjaan.buijk@gmail.com)
|
- [Arjaan Buijk](mailto:arjaan.buijk@gmail.com)
|
||||||
- [Arnav Borbornah](mailto:arnavborborah11@gmail.com)
|
- [Arnav Borbornah](mailto:arnavborborah11@gmail.com)
|
||||||
- [Artem Malyshev](mailto:proofit404@gmail.com)
|
- [Artem Malyshev](mailto:proofit404@gmail.com)
|
||||||
|
@ -58,6 +58,8 @@
|
|||||||
|
|
||||||
<!-- For example, Docker, GitHub Actions, pre-commit, editors -->
|
<!-- For example, Docker, GitHub Actions, pre-commit, editors -->
|
||||||
|
|
||||||
|
- Update GitHub Action to support formatting of Jupyter Notebook files via a `jupyter`
|
||||||
|
option (#3282)
|
||||||
- Update GitHub Action to support use of version specifiers (e.g. `<23`) for Black
|
- Update GitHub Action to support use of version specifiers (e.g. `<23`) for Black
|
||||||
version (#3265)
|
version (#3265)
|
||||||
|
|
||||||
|
@ -12,6 +12,11 @@ inputs:
|
|||||||
description: "Source to run Black. Default: '.'"
|
description: "Source to run Black. Default: '.'"
|
||||||
required: false
|
required: false
|
||||||
default: "."
|
default: "."
|
||||||
|
jupyter:
|
||||||
|
description:
|
||||||
|
"Set this option to true to include Jupyter Notebook files. Default: false"
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
black_args:
|
black_args:
|
||||||
description: "[DEPRECATED] Black input arguments."
|
description: "[DEPRECATED] Black input arguments."
|
||||||
required: false
|
required: false
|
||||||
@ -38,6 +43,7 @@ runs:
|
|||||||
# TODO: Remove once https://github.com/actions/runner/issues/665 is fixed.
|
# TODO: Remove once https://github.com/actions/runner/issues/665 is fixed.
|
||||||
INPUT_OPTIONS: ${{ inputs.options }}
|
INPUT_OPTIONS: ${{ inputs.options }}
|
||||||
INPUT_SRC: ${{ inputs.src }}
|
INPUT_SRC: ${{ inputs.src }}
|
||||||
|
INPUT_JUPYTER: ${{ inputs.jupyter }}
|
||||||
INPUT_BLACK_ARGS: ${{ inputs.black_args }}
|
INPUT_BLACK_ARGS: ${{ inputs.black_args }}
|
||||||
INPUT_VERSION: ${{ inputs.version }}
|
INPUT_VERSION: ${{ inputs.version }}
|
||||||
pythonioencoding: utf-8
|
pythonioencoding: utf-8
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
ENV_BIN = ENV_PATH / ("Scripts" if sys.platform == "win32" else "bin")
|
ENV_BIN = ENV_PATH / ("Scripts" if sys.platform == "win32" else "bin")
|
||||||
OPTIONS = os.getenv("INPUT_OPTIONS", default="")
|
OPTIONS = os.getenv("INPUT_OPTIONS", default="")
|
||||||
SRC = os.getenv("INPUT_SRC", default="")
|
SRC = os.getenv("INPUT_SRC", default="")
|
||||||
|
JUPYTER = os.getenv("INPUT_JUPYTER") == "true"
|
||||||
BLACK_ARGS = os.getenv("INPUT_BLACK_ARGS", default="")
|
BLACK_ARGS = os.getenv("INPUT_BLACK_ARGS", default="")
|
||||||
VERSION = os.getenv("INPUT_VERSION", default="")
|
VERSION = os.getenv("INPUT_VERSION", default="")
|
||||||
|
|
||||||
@ -17,7 +18,11 @@
|
|||||||
version_specifier = VERSION
|
version_specifier = VERSION
|
||||||
if VERSION and VERSION[0] in "0123456789":
|
if VERSION and VERSION[0] in "0123456789":
|
||||||
version_specifier = f"=={VERSION}"
|
version_specifier = f"=={VERSION}"
|
||||||
req = f"black[colorama]{version_specifier}"
|
if JUPYTER:
|
||||||
|
extra_deps = "[colorama,jupyter]"
|
||||||
|
else:
|
||||||
|
extra_deps = "[colorama]"
|
||||||
|
req = f"black{extra_deps}{version_specifier}"
|
||||||
pip_proc = run(
|
pip_proc = run(
|
||||||
[str(ENV_BIN / "python"), "-m", "pip", "install", req],
|
[str(ENV_BIN / "python"), "-m", "pip", "install", req],
|
||||||
stdout=PIPE,
|
stdout=PIPE,
|
||||||
|
@ -39,6 +39,10 @@ or just the version number if you want an exact version. The action defaults to
|
|||||||
latest release available on PyPI. Only versions available from PyPI are supported, so no
|
latest release available on PyPI. Only versions available from PyPI are supported, so no
|
||||||
commit SHAs or branch names.
|
commit SHAs or branch names.
|
||||||
|
|
||||||
|
If you want to include Jupyter Notebooks, _Black_ must be installed with the `jupyter`
|
||||||
|
extra. Installing the extra and including Jupyter Notebook files can be configured via
|
||||||
|
`jupyter` (default is `false`).
|
||||||
|
|
||||||
You can also configure the arguments passed to _Black_ via `options` (defaults to
|
You can also configure the arguments passed to _Black_ via `options` (defaults to
|
||||||
`'--check --diff'`) and `src` (default is `'.'`)
|
`'--check --diff'`) and `src` (default is `'.'`)
|
||||||
|
|
||||||
@ -49,6 +53,7 @@ Here's an example configuration:
|
|||||||
with:
|
with:
|
||||||
options: "--check --verbose"
|
options: "--check --verbose"
|
||||||
src: "./src"
|
src: "./src"
|
||||||
|
jupyter: true
|
||||||
version: "21.5b1"
|
version: "21.5b1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user