Skip to content

Commit

Permalink
ENH: Add additional environment to tox to run notebooks
Browse files Browse the repository at this point in the history
Add an additional environment to `tox` to run notebooks.

Add a new table to `pyproject.toml` to host the `jupyter`, `nbconvert`
and `nbclient` dependencies so that the notebooks can be run.

Install `textlive` in the test CI so that LaTeX decoration in plots can
be employed.
  • Loading branch information
jhlegarreta committed Dec 22, 2024
1 parent 6b6ba70 commit be31b08
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ jobs:
with:
path: /home/runner/nifreeze-tests/
key: data-v0
- name: Install TeX Live
run: |
sudo apt-get update
sudo apt install texlive
- name: Install tox
run: |
python -m pip install --upgrade pip
Expand Down
6 changes: 6 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ test = [
"pytest-xdist >= 1.28"
]

notebooks = [
"jupyter",
"nbconvert",
"nbclient",
]

antsopt = [
"ConfigSpace",
"nipreps",
Expand Down
31 changes: 29 additions & 2 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
requires =
tox>=4
envlist =
py312
py312, notebooks
skip_missing_interpreters = true

# Configuration that allows us to split tests across GitHub runners effectively
[gh-actions]
python =
3.12: py312
3.12: py312, notebooks

[testenv]
description = Pytest with coverage
Expand Down Expand Up @@ -38,6 +38,33 @@ commands =
pytest --doctest-modules --cov nifreeze -n auto --cov-report xml \
--junitxml=test-results.xml -v src test {posargs}

[testenv:notebooks]
description = Run notebooks
labels = notebooks
pass_env =
# getpass.getuser() sources for Windows:
LOGNAME
USER
LNAME
USERNAME
# Pass user color preferences through
PY_COLORS
FORCE_COLOR
NO_COLOR
CLICOLOR
CLICOLOR_FORCE
CURBRANCH
GITHUB_ACTIONS
TEST_DATA_HOME
TEST_OUTPUT_DIR
TEST_WORK_DIR
PYTHONHASHSEED
ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS
PATH
extras = notebooks
commands =
python -m nbconvert --to notebook --ExecutePreprocessor.kernel_name=python3 --execute docs/notebooks/*

[testenv:docs]
description = Build documentation site
labels = docs
Expand Down

0 comments on commit be31b08

Please sign in to comment.