Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-jupyter-sphinx for 
openSUSE:Factory checked in at 2024-01-21 23:10:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-sphinx (Old)
 and      /work/SRC/openSUSE:Factory/.python-jupyter-sphinx.new.16006 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-jupyter-sphinx"

Sun Jan 21 23:10:28 2024 rev:9 rq:1140292 version:0.5.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-jupyter-sphinx/python-jupyter-sphinx.changes  
    2023-09-14 16:29:01.225772831 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-jupyter-sphinx.new.16006/python-jupyter-sphinx.changes
   2024-01-21 23:10:50.278933164 +0100
@@ -1,0 +2,13 @@
+Sun Jan 21 11:15:32 UTC 2024 - Ben Greiner <c...@bnavigator.de>
+
+- Update to 0.5.3, 0.5.2, 0.5.1
+  * releaser changes
+- Release 0.5.0
+  * drop support for Python 3.6 by @12rambau in #229
+  * Add direct dependency on ipykernel by @garrison in #226
+  * Adapt to level config to match other Jupyter repos by
+    @blink1073 in #237
+- Drop jupyter-sphinx-pr226-ipykernel.patch
+- Drop jupyter-sphinx-pr233-pathlib.patch
+
+-------------------------------------------------------------------

Old:
----
  jupyter-sphinx-0.4.0-gh.tar.gz
  jupyter-sphinx-pr226-ipykernel.patch
  jupyter-sphinx-pr233-pathlib.patch

New:
----
  jupyter-sphinx-0.5.3-gh.tar.gz

BETA DEBUG BEGIN:
  Old:    @blink1073 in #237
- Drop jupyter-sphinx-pr226-ipykernel.patch
- Drop jupyter-sphinx-pr233-pathlib.patch
  Old:- Drop jupyter-sphinx-pr226-ipykernel.patch
- Drop jupyter-sphinx-pr233-pathlib.patch
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-jupyter-sphinx.spec ++++++
--- /var/tmp/diff_new_pack.5JqtxM/_old  2024-01-21 23:10:51.130964222 +0100
+++ /var/tmp/diff_new_pack.5JqtxM/_new  2024-01-21 23:10:51.130964222 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-jupyter-sphinx
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,24 +17,19 @@
 
 
 Name:           python-jupyter-sphinx
-Version:        0.4.0
+Version:        0.5.3
 Release:        0
 Summary:        Jupyter Sphinx Extensions
 License:        BSD-3-Clause
 URL:            https://github.com/jupyter-widgets/jupyter-sphinx
 Source:         
https://github.com/jupyter/jupyter-sphinx/archive/v%{version}.tar.gz#/jupyter-sphinx-%{version}-gh.tar.gz
-# PATCH-FIX-UPSTREAM jupyter-sphinx-pr226-ipykernel.patch 
gh#jupyter-widgets/jupyter-sphinx#226
-Patch0:         jupyter-sphinx-pr226-ipykernel.patch
-# PATCH-FIX-UPSTREAM jupyter-sphinx-pr233-pathlib.patch 
gh#jupyter-widgets/jupyter-sphinx#233
-Patch1:         jupyter-sphinx-pr233-pathlib.patch
-BuildRequires:  %{python_module pip}
-BuildRequires:  %{python_module setuptools}
-BuildRequires:  %{python_module wheel}
 BuildRequires:  %{python_module base >= 3.8}
+BuildRequires:  %{python_module hatchling >= 1.5}
+BuildRequires:  %{python_module pip}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 Requires:       python-IPython
-Requires:       python-Sphinx >= 2
+Requires:       python-Sphinx >= 7
 Requires:       python-ipykernel >= 4.5.1
 Requires:       python-ipywidgets >= 7.0.0
 Requires:       python-nbconvert >= 5.5
@@ -44,7 +39,7 @@
 BuildArch:      noarch
 # SECTION test requirements
 BuildRequires:  %{python_module IPython}
-BuildRequires:  %{python_module Sphinx >= 2}
+BuildRequires:  %{python_module Sphinx >= 7}
 BuildRequires:  %{python_module Sphinx-latex}
 BuildRequires:  %{python_module ipykernel >= 4.5.1}
 BuildRequires:  %{python_module ipywidgets >= 7.0.0}
@@ -62,6 +57,7 @@
 
 %prep
 %autosetup -p1 -n jupyter-sphinx-%{version}
+sed -i 's/"--color=yes", //' pyproject.toml
 
 %build
 %pyproject_wheel
@@ -71,6 +67,7 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
+export JUPYTER_PLATFORM_DIRS=1
 %pytest
 
 %files %{python_files}

++++++ jupyter-sphinx-0.4.0-gh.tar.gz -> jupyter-sphinx-0.5.3-gh.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.circleci/config.yml 
new/jupyter-sphinx-0.5.3/.circleci/config.yml
--- old/jupyter-sphinx-0.4.0/.circleci/config.yml       2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.circleci/config.yml       1970-01-01 
01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-version: 2
-jobs:
-  build_docs:
-    docker:
-      - image: circleci/python:3.6-stretch
-    steps:
-      # Get our data and merge with upstream
-      - run: sudo apt-get update
-      - checkout
-
-      # Install
-      - run:
-          name: Install dependencies
-          command: |
-            pip install --user -r requirements.txt
-            pip install --user .
-      - run:
-          name: Build documentation
-          command: |
-            cd doc
-            make html-strict
-
-      - store_artifacts:
-          path: doc/build/html/
-          destination: html
-
-
-workflows:
-  version: 2
-  build_docs:
-    jobs:
-      - build_docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.github/dependabot.yml 
new/jupyter-sphinx-0.5.3/.github/dependabot.yml
--- old/jupyter-sphinx-0.4.0/.github/dependabot.yml     1970-01-01 
01:00:00.000000000 +0100
+++ new/jupyter-sphinx-0.5.3/.github/dependabot.yml     2023-12-28 
13:15:12.000000000 +0100
@@ -0,0 +1,12 @@
+version: 2
+updates:
+  # GitHub Actions
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "weekly"
+  # Python
+  - package-ecosystem: "pip"
+    directory: "/"
+    schedule:
+      interval: "weekly"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.github/workflows/artifacts.yml 
new/jupyter-sphinx-0.5.3/.github/workflows/artifacts.yml
--- old/jupyter-sphinx-0.4.0/.github/workflows/artifacts.yml    2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.github/workflows/artifacts.yml    1970-01-01 
01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-on: [status]
-
-jobs:
-  circleci_artifacts_redirector_job:
-    runs-on: ubuntu-latest
-    name: Run CircleCI artifacts redirector
-    steps:
-      - name: GitHub Action step
-        uses: larsoner/circleci-artifacts-redirector-action@master
-        with:
-          repo-token: ${{ secrets.GITHUB_TOKEN }}
-          artifact-path: 0/html/index.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter-sphinx-0.4.0/.github/workflows/pre-commit.yml 
new/jupyter-sphinx-0.5.3/.github/workflows/pre-commit.yml
--- old/jupyter-sphinx-0.4.0/.github/workflows/pre-commit.yml   2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.github/workflows/pre-commit.yml   1970-01-01 
01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-name: pre-commit
-
-on:
-  pull_request:
-  push:
-    branches: [master]
-
-jobs:
-  pre-commit:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v2
-    - uses: actions/setup-python@v2
-    - uses: pre-commit/action@v2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyter-sphinx-0.4.0/.github/workflows/prerelease.yml 
new/jupyter-sphinx-0.5.3/.github/workflows/prerelease.yml
--- old/jupyter-sphinx-0.4.0/.github/workflows/prerelease.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/jupyter-sphinx-0.5.3/.github/workflows/prerelease.yml   2023-12-28 
13:15:12.000000000 +0100
@@ -0,0 +1,46 @@
+name: Scheduled pre-release tests
+
+on:
+  # Run this workflow once a week (https://crontab.guru/#0_5_*_*_1)
+  schedule:
+    - cron: "0 5 * * 1"
+  workflow_dispatch:
+
+# env variable to force pip to install pre-released versions
+# in hatch envs
+env:
+  PIP_PRE: 1
+
+jobs:
+  tests:
+    strategy:
+      matrix:
+        python-version: ["3.8", "3.9", "3.10", "3.11", " 3.12"]
+        os: [ubuntu-latest]
+        include:
+          - os: windows-latest
+            python-version: "3.12"
+          - os: macos-latest
+            python-version: "3.12"
+    runs-on: ${{ matrix.os }}
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install dependencies
+        run: pip install hatch
+      - name: Run tests
+        run: hatch run test:test -x
+
+  docs:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions/setup-python@v5
+      - name: Install dependencies
+        run: pip install hatch
+
+      - name: Build docs
+        run: hatch run doc:build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.github/workflows/publish.yml 
new/jupyter-sphinx-0.5.3/.github/workflows/publish.yml
--- old/jupyter-sphinx-0.4.0/.github/workflows/publish.yml      1970-01-01 
01:00:00.000000000 +0100
+++ new/jupyter-sphinx-0.5.3/.github/workflows/publish.yml      2023-12-28 
13:15:12.000000000 +0100
@@ -0,0 +1,32 @@
+# This will run every time a tag is created and pushed to the repository.
+# It calls our tests workflow via a `workflow_call`, and if tests pass
+# then it triggers our upload to PyPI for a new release.
+name: Publish to PyPI
+on:
+  release:
+    types: ["published"]
+
+jobs:
+  tests:
+    uses: ./.github/workflows/tests.yml
+
+  publish:
+    needs: [tests]
+    name: Publish to PyPi
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout source
+        uses: actions/checkout@v4
+      - name: Set up Python "3.10"
+        uses: actions/setup-python@v5
+        with:
+          python-version: "3.10"
+      - name: install dependencies
+        run: pip install build
+      - name: Build package
+        run: python -m build
+      - name: Publish
+        uses: pypa/gh-action-pypi-publish@v1.8.11
+        with:
+          user: __token__
+          password: ${{ secrets.PYPI_KEY }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.github/workflows/tests.yml 
new/jupyter-sphinx-0.5.3/.github/workflows/tests.yml
--- old/jupyter-sphinx-0.4.0/.github/workflows/tests.yml        2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.github/workflows/tests.yml        2023-12-28 
13:15:12.000000000 +0100
@@ -1,57 +1,53 @@
-name: continuous-integration
+name: tests
 
-on: [push, pull_request]
+on:
+  push:
+    branches: ["main"]
+  pull_request:
+  schedule:
+    - cron: "0 8 * * *"
+  workflow_call:
 
 jobs:
+  pre-commit:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions/setup-python@v5
+        with:
+          python-version: "3.10"
+      - uses: pre-commit/action@v3.0.0
 
   tests:
-
     strategy:
       matrix:
-        python-version: [3.6, 3.7, 3.8]
+        python-version: ["3.8", "3.9", "3.10", "3.11", " 3.12"]
         os: [ubuntu-latest]
         include:
           - os: windows-latest
-            python-version: 3.7
+            python-version: "3.12"
+          - os: macos-latest
+            python-version: "3.12"
 
     runs-on: ${{ matrix.os }}
 
     steps:
-    - uses: actions/checkout@v2
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v1
-      with:
-        python-version: ${{ matrix.python-version }}
-
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install -r requirements.txt
-        python -m bash_kernel.install  # For testing a non-standard kernel
-        pip install .
-
-    - name: Run tests
-      run: pytest
-
-  publish:
-
-    name: Publish to PyPi
-    needs: [tests]
-    if: github.event_name == 'push' && startsWith(github.event.ref, 
'refs/tags')
+      - uses: actions/checkout@v4
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install hatch
+        run: pip install hatch
+      - name: Run tests
+        run: hatch run test:test -x
+
+  docs:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout source
-        uses: actions/checkout@v2
-      - name: Set up Python 3.7
-        uses: actions/setup-python@v1
-        with:
-          python-version: 3.7
-      - name: Build package
-        run: |
-          pip install wheel
-          python setup.py sdist bdist_wheel
-      - name: Publish
-        uses: pypa/gh-action-pypi-publish@v1.1.0
-        with:
-          user: __token__
-          password: ${{ secrets.PYPI_KEY }}
+      - uses: actions/checkout@v4
+      - uses: actions/setup-python@v5
+      - name: Install hatch
+        run: pip install hatch
+      - name: Build docs
+        run: hatch run doc:build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.gitignore 
new/jupyter-sphinx-0.5.3/.gitignore
--- old/jupyter-sphinx-0.4.0/.gitignore 2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.gitignore 2023-12-28 13:15:12.000000000 +0100
@@ -1,4 +1,4 @@
-.tox/
+.venv
 *.py[cod]
 
 # Packages
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.pre-commit-config.yaml 
new/jupyter-sphinx-0.5.3/.pre-commit-config.yaml
--- old/jupyter-sphinx-0.4.0/.pre-commit-config.yaml    2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/.pre-commit-config.yaml    2023-12-28 
13:15:12.000000000 +0100
@@ -1,24 +1,76 @@
+ci:
+  autoupdate_schedule: monthly
+  autoupdate_commit_msg: "chore: update pre-commit hooks"
+
 repos:
-  - repo: "https://github.com/pre-commit/pre-commit-hooks";
-    rev: v4.3.0
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.5.0
     hooks:
-      - id: trailing-whitespace
+      - id: check-case-conflict
+      - id: check-ast
+      - id: check-docstring-first
+      - id: check-executables-have-shebangs
+      - id: check-added-large-files
+      - id: check-case-conflict
+      - id: check-merge-conflict
+      - id: check-json
+      - id: check-toml
+      - id: check-yaml
+      - id: debug-statements
       - id: end-of-file-fixer
-  - repo: "https://gitlab.com/pycqa/flake8/";
-    rev: 3.9.2
+      - id: trailing-whitespace
+
+  - repo: https://github.com/python-jsonschema/check-jsonschema
+    rev: 0.27.1
+    hooks:
+      - id: check-github-workflows
+
+  - repo: https://github.com/executablebooks/mdformat
+    rev: 0.7.17
+    hooks:
+      - id: mdformat
+
+  - repo: https://github.com/pre-commit/mirrors-prettier
+    rev: "v3.0.3"
+    hooks:
+      - id: prettier
+        types_or: [yaml, html, json]
+
+  - repo: https://github.com/adamchainz/blacken-docs
+    rev: "1.16.0"
+    hooks:
+      - id: blacken-docs
+        additional_dependencies: [black==23.7.0]
+        exclude: |
+          (?x)^(
+              doc/source/index.rst|
+              tests/test_execute.py
+          )$(|)
+
+  - repo: https://github.com/codespell-project/codespell
+    rev: "v2.2.6"
+    hooks:
+      - id: codespell
+        args: ["-L", "sur,nd"]
+
+  - repo: https://github.com/pre-commit/pygrep-hooks
+    rev: "v1.10.0"
+    hooks:
+      - id: rst-backticks
+      - id: rst-directive-colons
+      - id: rst-inline-touching-normal
+
+  - repo: https://github.com/astral-sh/ruff-pre-commit
+    rev: v0.1.5
     hooks:
-      - id: flake8
-  - repo: "https://github.com/ambv/black";
-    rev: 22.3.0
-    hooks:
-      - id: black
-        language_version: python3
-  - repo: "https://github.com/PyCQA/isort";
-    rev: 5.10.1
-    hooks:
-      - id: isort
-  - repo: https://github.com/asottile/pyupgrade
-    rev: v2.34.0
+      - id: ruff
+        types_or: [python, jupyter]
+        args: ["--fix", "--show-fixes"]
+      - id: ruff-format
+        types_or: [python, jupyter]
+
+  - repo: https://github.com/scientific-python/cookie
+    rev: "2023.10.27"
     hooks:
-      - id: pyupgrade
-        args: ["--py36-plus"]
+      - id: sp-repo-review
+        additional_dependencies: ["repo-review[cli]"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/.readthedocs.yml 
new/jupyter-sphinx-0.5.3/.readthedocs.yml
--- old/jupyter-sphinx-0.4.0/.readthedocs.yml   1970-01-01 01:00:00.000000000 
+0100
+++ new/jupyter-sphinx-0.5.3/.readthedocs.yml   2023-12-28 13:15:12.000000000 
+0100
@@ -0,0 +1,14 @@
+version: 2
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3.8"
+sphinx:
+  configuration: doc/source/conf.py
+python:
+  install:
+    # install itself with pip install .
+    - method: pip
+      path: .
+      extra_requirements:
+        - doc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/CONTRIBUTING.md 
new/jupyter-sphinx-0.5.3/CONTRIBUTING.md
--- old/jupyter-sphinx-0.4.0/CONTRIBUTING.md    1970-01-01 01:00:00.000000000 
+0100
+++ new/jupyter-sphinx-0.5.3/CONTRIBUTING.md    2023-12-28 13:15:12.000000000 
+0100
@@ -0,0 +1,138 @@
+# General Jupyter contributor guidelines
+
+If you're reading this section, you're probably interested in
+contributing to Jupyter. Welcome and thanks for your interest in
+contributing!
+
+Please take a look at the Contributor documentation, familiarize
+yourself with using the Jupyter Server, and introduce yourself on the
+mailing list and share what area of the project you are interested in
+working on.
+
+For general documentation about contributing to Jupyter projects, see
+the [Project Jupyter Contributor
+Documentation](https://jupyter.readthedocs.io/en/latest/contributing/content-contributor.html).
+
+# Setting Up a Development Environment
+
+## Installing the Jupyter Server
+
+The development version of the server requires
+[node](https://nodejs.org/en/download/) and
+[pip](https://pip.pypa.io/en/stable/installing/).
+
+Once you have installed the dependencies mentioned above, use the
+following steps:
+
+```
+pip install --upgrade pip
+git clone https://github.com/jupyter/jupyter-sphinx
+cd jupyter-server
+pip install -e ".[test]"
+```
+
+## Code Styling and Quality Checks
+
+`jupyter-sphinx` has adopted automatic code formatting so you shouldn't
+need to worry too much about your code style. As long as your code is
+valid, the pre-commit hook should take care of how it should look.
+`pre-commit` and its associated hooks will automatically be installed
+when you run `pip install -e ".[test]"`
+
+To install `pre-commit` hook manually, run the following:
+
+```
+pre-commit install
+```
+
+You can invoke the pre-commit hook by hand at any time with:
+
+```
+pre-commit run
+```
+
+which should run any autoformatting on your code and tell you about any
+errors it couldn't fix automatically. You may also install [black
+integration](https://github.com/psf/black#editor-integration) into your
+text editor to format code automatically.
+
+If you have already committed files before setting up the pre-commit
+hook with `pre-commit install`, you can fix everything up using
+`pre-commit run --all-files`. You need to make the fixing commit
+yourself after that.
+
+Some of the hooks only run on CI by default, but you can invoke them by
+running with the `--hook-stage manual` argument.
+
+There are three hatch scripts that can be run locally as well:
+`hatch run lint:build` will enforce styling.
+
+# Running Tests
+
+Install dependencies:
+
+```
+pip install -e .[test]
+```
+
+To run the Python tests, use:
+
+```
+pytest
+```
+
+You can also run the tests using `hatch` without installing test
+dependencies in your local environment:
+
+```
+pip install hatch
+hatch run test:test
+```
+
+The command takes any argument that you can give to `pytest`, e.g.:
+
+```
+hatch run test:test -k name_of_method_to_test
+```
+
+You can also drop into a shell in the test environment by running:
+
+```
+hatch -e test shell
+```
+
+# Building the Docs
+
+Install the docs requirements using `pip`:
+
+```
+pip install .[doc]
+```
+
+Once you have installed the required packages, you can build the docs
+with:
+
+```
+cd docs
+make html
+```
+
+You can also run the tests using `hatch` without installing test
+dependencies in your local environment.
+
+```bash
+pip install hatch
+hatch run docs:build
+```
+
+You can also drop into a shell in the docs environment by running:
+
+```
+hatch -e docs shell
+```
+
+After that, the generated HTML files will be available at
+`build/html/index.html`. You may view the docs in your browser.
+
+You should also have a look at the [Project Jupyter Documentation
+Guide](https://jupyter.readthedocs.io/en/latest/contributing/content-contributor.html).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/MANIFEST.in 
new/jupyter-sphinx-0.5.3/MANIFEST.in
--- old/jupyter-sphinx-0.4.0/MANIFEST.in        2022-06-25 21:26:22.000000000 
+0200
+++ new/jupyter-sphinx-0.5.3/MANIFEST.in        1970-01-01 01:00:00.000000000 
+0100
@@ -1,2 +0,0 @@
-include LICENSE
-recursive-include jupyter_sphinx/thebelab/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/README.md 
new/jupyter-sphinx-0.5.3/README.md
--- old/jupyter-sphinx-0.4.0/README.md  2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/README.md  2023-12-28 13:15:12.000000000 +0100
@@ -1,6 +1,6 @@
 # Jupyter Sphinx Extensions
 
-``jupyter-sphinx`` enables running code embedded in Sphinx documentation and
+`jupyter-sphinx` enables running code embedded in Sphinx documentation and
 embedding output of that code into the resulting document. It has support
 for rich output such as images and even Jupyter interactive widgets.
 
@@ -23,7 +23,6 @@
 You can check out the documentation on https://jupyter-sphinx.readthedocs.io 
for up to date
 usage information and examples.
 
-
 ## License
 
 We use a shared copyright model that enables all contributors to maintain the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/RELEASE.md 
new/jupyter-sphinx-0.5.3/RELEASE.md
--- old/jupyter-sphinx-0.4.0/RELEASE.md 2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/RELEASE.md 2023-12-28 13:15:12.000000000 +0100
@@ -5,32 +5,38 @@
 
 To cut a new Jupyter Sphinx release, follow these steps:
 
-* Ensure that all tests are passing on master.
-* In 
[`_version.py`](https://github.com/jupyter/jupyter-sphinx/blob/master/jupyter_sphinx/_version.py),
+- Ensure that all tests are passing on master.
+
+- In 
[`_version.py`](https://github.com/jupyter/jupyter-sphinx/blob/main/jupyter_sphinx/_version.py),
   change the "release type" section to "final" e.g.:
 
   ```python
   version_info = (0, 2, 3, "final")
   ```
-* Make a release commit and push to master
+
+- Make a release commit and push to main
 
   ```
   git add jupyter_sphinx/_version.py
   git commit -m "RLS: 0.2.3"
-  git push upstream master
+  git push upstream main
   ```
-* [Create a new github 
release](https://github.com/jupyter/jupyter-sphinx/releases/new).
-  The target should be **master**, the tag and the title should be the version 
number,
+
+- [Create a new github 
release](https://github.com/jupyter/jupyter-sphinx/releases/new).
+  The target should be **main**, the tag and the title should be the version 
number,
   e.g. `0.2.3`.
-* Creating the release in GitHub will push a tag commit to the repository, 
which will
-  trigger [a GitHub 
action](https://github.com/jupyter/jupyter-sphinx/blob/master/.github/workflows/artifacts.yml)
+
+- Creating the release in GitHub will push a tag commit to the repository, 
which will
+  trigger [a GitHub 
action](https://github.com/jupyter/jupyter-sphinx/blob/main/.github/workflows/artifacts.yml)
   to build `jupyter-sphinx` and push the new version to PyPI.
   [Confirm that the version has been 
bumped](https://pypi.org/project/jupyter-sphinx/).
-* In 
[`_version.py`](https://github.com/jupyter/jupyter-sphinx/blob/master/jupyter_sphinx/_version.py),
+
+- In 
[`_version.py`](https://github.com/jupyter/jupyter-sphinx/blob/main/jupyter_sphinx/_version.py),
   bump the minor version and change the "release type" section to "alpha". 
**make sure to
   include a number after the release type**, e.g.:
 
   ```python
   version_info = (0, 2, 4, "alpha", 1)
   ```
-* That's it!
+
+- That's it!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/doc/source/index.rst 
new/jupyter-sphinx-0.5.3/doc/source/index.rst
--- old/jupyter-sphinx-0.4.0/doc/source/index.rst       2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/doc/source/index.rst       2023-12-28 
13:15:12.000000000 +0100
@@ -90,7 +90,7 @@
 .. jupyter-execute::
 
   from IPython.display import Latex
-  Latex('\int_{-\infty}^\infty e^{-x²}dx = \sqrt{\pi}')
+  Latex('\\int_{-\\infty}^\\infty e^{-x²}dx = \\sqrt{\\pi}')
 
 or even full-blown javascript widgets:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/jupyter_sphinx/_version.py 
new/jupyter-sphinx-0.5.3/jupyter_sphinx/_version.py
--- old/jupyter-sphinx-0.4.0/jupyter_sphinx/_version.py 2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/jupyter_sphinx/_version.py 2023-12-28 
13:15:12.000000000 +0100
@@ -1,12 +1,18 @@
-version_info = (0, 4, 0, "final")
+"""
+store the current version info of the project.
 
-_specifier_ = {"alpha": "a", "beta": "b", "candidate": "rc", "final": ""}
+"""
+import re
+from typing import List
 
-__version__ = "{}.{}.{}{}".format(
-    version_info[0],
-    version_info[1],
-    version_info[2],
-    ""
-    if version_info[3] == "final"
-    else _specifier_[version_info[3]] + str(version_info[4]),
-)
+# Version string must appear intact for automatic versioning
+__version__ = "0.5.3"
+
+# Build up version_info tuple for backwards compatibility
+pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)"
+match = re.match(pattern, __version__)
+assert match is not None
+parts: List[object] = [int(match[part]) for part in ["major", "minor", 
"patch"]]
+if match["rest"]:
+    parts.append(match["rest"])
+version_info = tuple(parts)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/jupyter_sphinx/ast.py 
new/jupyter-sphinx-0.5.3/jupyter_sphinx/ast.py
--- old/jupyter-sphinx-0.4.0/jupyter_sphinx/ast.py      2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/jupyter_sphinx/ast.py      2023-12-28 
13:15:12.000000000 +0100
@@ -295,7 +295,7 @@
 
 
 class JupyterCellNode(docutils.nodes.container):
-    """Inserted into doctree whever a JupyterCell directive is encountered.
+    """Inserted into doctree wherever a JupyterCell directive is encountered.
 
     Contains code that will be executed in a Jupyter kernel at a later
     doctree-transformation step.
@@ -387,7 +387,6 @@
         super().__init__("", state=attributes["state"])
 
     def html(self):
-
         # escape </script> to avoid early closing of the tag in the html page
         json_data = json.dumps(self["state"]).replace("</script>", 
r"<\/script>")
 
@@ -625,7 +624,7 @@
     def apply(self):
         moved_outputs = set()
 
-        for cell_node in self.document.traverse(JupyterCellNode):
+        for cell_node in self.document.findall(JupyterCellNode):
             if not cell_node.attributes["execute"]:
                 if not cell_node.attributes["hide_code"]:
                     # Cell came from jupyter-input
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/jupyter_sphinx/execute.py 
new/jupyter-sphinx-0.5.3/jupyter_sphinx/execute.py
--- old/jupyter-sphinx-0.4.0/jupyter_sphinx/execute.py  2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/jupyter_sphinx/execute.py  2023-12-28 
13:15:12.000000000 +0100
@@ -123,12 +123,12 @@
         linenos_config = self.config.jupyter_sphinx_linenos
         continue_linenos = self.config.jupyter_sphinx_continue_linenos
         # Check if we have anything to execute.
-        if not doctree.traverse(JupyterCellNode):
+        if not next(doctree.findall(JupyterCellNode), False):
             return
 
         if thebe_config:
             # Add the button at the bottom if it is not present
-            if not doctree.traverse(ThebeButtonNode):
+            if not next(doctree.findall(ThebeButtonNode), False):
                 doctree.append(ThebeButtonNode())
 
             add_thebelab_library(doctree, self.env)
@@ -140,7 +140,7 @@
         jupyter_nodes = (JupyterCellNode, JupyterKernelNode)
         nodes_by_notebook = split_on(
             lambda n: isinstance(n, JupyterKernelNode),
-            doctree.traverse(lambda n: isinstance(n, jupyter_nodes)),
+            list(doctree.findall(lambda n: isinstance(n, jupyter_nodes))),
         )
 
         for first, *nodes in nodes_by_notebook:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/pyproject.toml 
new/jupyter-sphinx-0.5.3/pyproject.toml
--- old/jupyter-sphinx-0.4.0/pyproject.toml     1970-01-01 01:00:00.000000000 
+0100
+++ new/jupyter-sphinx-0.5.3/pyproject.toml     2023-12-28 13:15:12.000000000 
+0100
@@ -0,0 +1,84 @@
+[build-system]
+requires = ["hatchling>=1.5"]
+build-backend = "hatchling.build"
+
+[project]
+name = "jupyter-sphinx"
+dynamic = ["version"]
+description = "Jupyter Sphinx Extensions"
+readme = "README.md"
+license = {file="LICENSE"}
+requires-python = ">=3.8"
+authors = [
+    { name = "Jupyter Development Team", email = "jupy...@googlegroups.com" },
+]
+dependencies = [
+    "ipykernel>=4.5.1",
+    "IPython",
+    "ipywidgets>=7.0.0",
+    "nbconvert>=5.5",
+    "nbformat",
+    "Sphinx>=7",
+]
+
+[project.urls]
+"Bug Tracker" = "https://github.com/jupyter/jupyter-sphinx/issues/";
+Documentation = "https://jupyter-sphinx.readthedocs.io";
+Homepage = "https://jupyter.org";
+"Source Code" = "https://github.com/jupyter/jupyter-sphinx/";
+
+[project.optional-dependencies]
+test = [
+    "pytest",
+    "bash_kernel"
+]
+doc = [
+    "matplotlib"
+]
+
+[tool.hatch.version]
+path = "jupyter_sphinx/_version.py"
+
+[tool.hatch.build.targets.sdist]
+include = [
+    "/jupyter_sphinx",
+]
+
+[tool.hatch.envs.lint]
+detached = true
+dependencies = ["pre-commit"]
+[tool.hatch.envs.lint.scripts]
+build = [
+  "pre-commit run --all-files ruff",
+  "pre-commit run --all-files ruff-format",
+]
+
+[tool.hatch.envs.doc]
+features = ["doc"]
+[tool.hatch.envs.doc.scripts]
+build = "cd doc; make html-strict"
+
+[tool.hatch.envs.test]
+features = ["test"]
+[tool.hatch.envs.test.env-vars]
+JUPYTER_PLATFORM_DIRS = "1"
+[tool.hatch.envs.test.scripts]
+test = ["python -m bash_kernel.install", "python -m pytest -vv {args}"]
+nowarn = "test -W default {args}"
+
+[tool.pytest.ini_options]
+minversion = "7.0"
+xfail_strict = true
+log_cli_level = "info"
+addopts = [
+  "-ra", "--durations=10", "--color=yes", "--strict-config", "--strict-markers"
+]
+testpaths = ["tests/"]
+filterwarnings = [
+  "error",
+  # https://github.com/dateutil/dateutil/issues/1314
+  "module:datetime.datetime.utc:DeprecationWarning"
+]
+
+[tool.repo-review]
+ignore = ["GH102", "MY100", "RF001", "PY007", "GH103", "PC140"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/readthedocs.yml 
new/jupyter-sphinx-0.5.3/readthedocs.yml
--- old/jupyter-sphinx-0.4.0/readthedocs.yml    2022-06-25 21:26:22.000000000 
+0200
+++ new/jupyter-sphinx-0.5.3/readthedocs.yml    1970-01-01 01:00:00.000000000 
+0100
@@ -1,4 +0,0 @@
-python:
-  version: 3.8
-  install:
-    - requirements: requirements.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/requirements.txt 
new/jupyter-sphinx-0.5.3/requirements.txt
--- old/jupyter-sphinx-0.4.0/requirements.txt   2022-06-25 21:26:22.000000000 
+0200
+++ new/jupyter-sphinx-0.5.3/requirements.txt   1970-01-01 01:00:00.000000000 
+0100
@@ -1,12 +0,0 @@
-sphinx>=2.4.4
-ipywidgets>=7.0.0
-IPython
-nbconvert>=5.4
-nbformat
-
-# For documentation building and testing
-matplotlib
-pytest
-
-# A non-standard kernel
-bash_kernel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/setup.cfg 
new/jupyter-sphinx-0.5.3/setup.cfg
--- old/jupyter-sphinx-0.4.0/setup.cfg  2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/setup.cfg  1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-[metadata]
-license_file = LICENSE
-
-[flake8]
-max-line-length = 120
-extend-ignore = E203
-
-[isort]
-profile = black
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/setup.py 
new/jupyter-sphinx-0.5.3/setup.py
--- old/jupyter-sphinx-0.4.0/setup.py   2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/setup.py   1970-01-01 01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-import os
-
-from setuptools import setup
-
-here = os.path.abspath(os.path.dirname(__file__))
-name = "jupyter_sphinx"
-
-version_ns = {}
-with open(os.path.join(here, name, "_version.py")) as f:
-    exec(f.read(), {}, version_ns)
-
-with open(os.path.join(here, "README.md")) as f:
-    description = f.read()
-
-setup(
-    name=name,
-    version=version_ns["__version__"],
-    author="Jupyter Development Team",
-    author_email="jupy...@googlegroups.com",
-    description="Jupyter Sphinx Extensions",
-    long_description=description,
-    long_description_content_type="text/markdown",
-    url="https://github.com/jupyter/jupyter-sphinx/";,
-    project_urls={
-        "Bug Tracker": "https://github.com/jupyter/jupyter-sphinx/issues/";,
-        "Documentation": "https://jupyter-sphinx.readthedocs.io";,
-        "Source Code": "https://github.com/jupyter/jupyter-sphinx/";,
-    },
-    license="BSD",
-    packages=["jupyter_sphinx"],
-    install_requires=[
-        "Sphinx>=2",
-        "ipywidgets>=7.0.0",
-        "IPython",
-        "nbconvert>=5.5",
-        "nbformat",
-    ],
-    python_requires=">= 3.6",
-    package_data={"jupyter_sphinx": ["thebelab/*", "css/*"]},
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/tests/test_execute.py 
new/jupyter-sphinx-0.5.3/tests/test_execute.py
--- old/jupyter-sphinx-0.4.0/tests/test_execute.py      2022-06-25 
21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/tests/test_execute.py      2023-12-28 
13:15:12.000000000 +0100
@@ -1,3 +1,4 @@
+import asyncio
 import os
 import shutil
 import sys
@@ -12,7 +13,13 @@
 from nbformat import from_dict
 from sphinx.addnodes import download_reference
 from sphinx.errors import ExtensionError
-from sphinx.testing.util import SphinxTestApp, assert_node, path
+from sphinx.testing.util import SphinxTestApp, assert_node
+
+try:
+    from sphinx.testing.util import path
+except ImportError:
+    path = None
+
 
 from jupyter_sphinx.ast import (
     JupyterCellNode,
@@ -24,6 +31,10 @@
 from jupyter_sphinx.thebelab import ThebeButtonNode, ThebeOutputNode, 
ThebeSourceNode
 
 
+if os.name == "nt":
+    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
+
+
 @pytest.fixture()
 def doctree():
     source_trees = []
@@ -47,8 +58,10 @@
         (src_dir / "index.rst").write_text(source, encoding="utf8")
 
         warnings = StringIO()
+        if path is not None:
+            src_dir = path(src_dir.as_posix())
         app = SphinxTestApp(
-            srcdir=path(src_dir.as_posix()),
+            srcdir=src_dir,
             status=StringIO(),
             warning=warnings,
             buildername=buildername,
@@ -79,7 +92,7 @@
         2 + 2
     """
     tree = doctree(source, buildername=buildername)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert not cell.attributes["code_below"]
     assert not cell.attributes["hide_code"]
@@ -97,7 +110,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cell.attributes["hide_output"]
     assert len(celloutput.children) == 0
@@ -112,7 +125,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (celloutput,) = cell.children
     assert cell.attributes["hide_code"]
     assert len(cell.children) == 1
@@ -127,7 +140,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (celloutput, cellinput) = cell.children
     assert cell.attributes["code_below"]
     assert cellinput.children[0].astext().strip() == "2 + 2"
@@ -142,7 +155,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cellinput.children[0]["linenos"]
     assert len(cell.children) == 2
@@ -156,7 +169,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (celloutput, cellinput) = cell.children
     assert cellinput.children[0]["linenos"]
 
@@ -168,7 +181,7 @@
         2 + 2
     """
     tree = doctree(source, config="jupyter_sphinx_linenos = True")
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cellinput.children[0].attributes["linenos"]
     assert "highlight_args" not in cellinput.children[0].attributes
@@ -186,7 +199,7 @@
     """
 
     tree = doctree(source, config="jupyter_sphinx_continue_linenos = True")
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert not cellinput.children[0].attributes["linenos"]
     assert cellinput.children[0].astext().strip() == "2 + 2"
@@ -210,7 +223,7 @@
         "jupyter_sphinx_continue_linenos = True",
     )
 
-    cell0, cell1 = tree.traverse(JupyterCellNode)
+    cell0, cell1 = tree.findall(JupyterCellNode)
     (cellinput0, celloutput0) = cell0.children
     (cellinput1, celloutput1) = cell1.children
     assert cellinput0.children[0].attributes["linenos"]
@@ -240,7 +253,7 @@
         config="jupyter_sphinx_linenos = True\n"
         "jupyter_sphinx_continue_linenos = True",
     )
-    cell0, cell1 = tree.traverse(JupyterCellNode)
+    cell0, cell1 = tree.findall(JupyterCellNode)
     (cellinput0, celloutput0) = cell0.children
     (cellinput1, celloutput1) = cell1.children
     assert cellinput0.children[0].attributes["highlight_args"]["linenostart"] 
== 7
@@ -274,7 +287,7 @@
         5 + 5
     """
     tree = doctree(source)
-    cell0, cell1 = tree.traverse(JupyterCellNode)
+    cell0, cell1 = tree.findall(JupyterCellNode)
 
     assert cell0.attributes["emphasize_lines"] == [1, 3, 4, 5]
     assert cell1.attributes["emphasize_lines"] == [2, 4]
@@ -292,7 +305,7 @@
         a
     """
     tree = doctree(source)
-    _, cell1 = tree.traverse(JupyterCellNode)
+    _, cell1 = tree.findall(JupyterCellNode)
     (_, celloutput1) = cell1.children
     assert celloutput1.children[0].astext().strip() == "2"
 
@@ -313,7 +326,7 @@
         a
     """
     tree = doctree(source)
-    _, cell1 = tree.traverse(JupyterCellNode)
+    _, cell1 = tree.findall(JupyterCellNode)
     (_, celloutput1) = cell1.children
     assert "NameError" in celloutput1.children[0].astext()
 
@@ -334,7 +347,7 @@
         raise ValueError()
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (_, celloutput) = cell.children
     assert "ValueError" in celloutput.children[0].astext()
 
@@ -345,7 +358,7 @@
         raise ValueError()
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (_, celloutput) = cell.children
     assert "ValueError" in celloutput.children[0].astext()
 
@@ -358,8 +371,8 @@
         ipywidgets.Button()
     """
     tree = doctree(source)
-    assert len(list(tree.traverse(JupyterWidgetViewNode))) == 1
-    assert len(list(tree.traverse(JupyterWidgetStateNode))) == 1
+    assert len(list(tree.findall(JupyterWidgetViewNode))) == 1
+    assert len(list(tree.findall(JupyterWidgetStateNode))) == 1
 
 
 def test_javascript(doctree):
@@ -370,7 +383,7 @@
         Javascript('window.alert("Hello world!")')
     """
     tree = doctree(source)
-    (node,) = list(tree.traverse(raw))
+    (node,) = list(tree.findall(raw))
     (text,) = node.children
     assert "world" in text
 
@@ -382,7 +395,7 @@
         print('hello world')
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (_, celloutput) = cell.children
     assert len(cell.children) == 2
     assert celloutput.children[0].astext().strip() == "hello world"
@@ -398,7 +411,7 @@
 
     tree, _, warnings = doctree(source, return_all=True)
     assert "hello world" in warnings
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (_, celloutput) = cell.children
     assert len(celloutput) == 0  # no output
 
@@ -410,7 +423,7 @@
         print('hello world', file=sys.stderr)
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (_, celloutput) = cell.children
     assert len(cell.children) == 2
     assert "stderr" in celloutput.children[0].attributes["classes"]
@@ -428,7 +441,7 @@
         2 + 2
     """
     tree = doctree(source, thebe_config)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cell.attributes["hide_output"]
     assert len(celloutput.children) == 0
@@ -447,7 +460,7 @@
         2 + 2
     """
     tree = doctree(source, thebe_config)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cell.attributes["hide_code"]
     assert len(cell.children) == 2
@@ -472,7 +485,7 @@
         2 + 2
     """
     tree = doctree(source, thebe_config)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, celloutput) = cell.children
     assert cell.attributes["code_below"]
 
@@ -496,7 +509,7 @@
         1 + 1
     """
     tree = doctree(source, config=config)
-    assert len(tree.traverse(ThebeButtonNode)) == 1
+    assert len(list(tree.findall(ThebeButtonNode))) == 1
 
 
 def test_thebe_button_manual(doctree):
@@ -509,14 +522,14 @@
     .. thebe-button::
     """
     tree = doctree(source, config)
-    assert len(tree.traverse(ThebeButtonNode)) == 1
+    assert len(list(tree.findall(ThebeButtonNode))) == 1
 
 
 def test_thebe_button_none(doctree):
     config = 'jupyter_sphinx_thebelab_config = {"dummy": True}'
     source = "No Jupyter cells"
     tree = doctree(source, config)
-    assert len(tree.traverse(ThebeButtonNode)) == 0
+    assert len(list(tree.findall(ThebeButtonNode))) == 0
 
 
 def test_latex(doctree):
@@ -531,9 +544,9 @@
 
     for start, end in delimiter_pairs:
         tree = doctree(source.format(start, end))
-        (cell,) = tree.traverse(JupyterCellNode)
+        (cell,) = tree.findall(JupyterCellNode)
         (_, celloutput) = cell.children
-        assert next(iter(celloutput.traverse(math_block))).astext() == r"\int"
+        assert next(celloutput.findall(math_block)).astext() == r"\int"
 
 
 def test_cell_output_to_nodes(doctree):
@@ -574,7 +587,7 @@
     for index, cell in enumerate(cells):
         cell = from_dict(cell)
         (output_node,) = cell_output_to_nodes(cell["outputs"], True, 
output_dir, None)
-        (image_node,) = output_node.traverse(image)
+        (image_node,) = output_node.findall(image)
         assert image_node.attributes["uri"] == img_locs[index]
 
     # Testing inline functionality
@@ -607,7 +620,7 @@
         "document.settings.env.docname": "path/to/docname",
         "document.settings.env.srcdir": str(tmp_path),
         "document.settings.env.app.srcdir": str(tmp_path),
-        "reporter.get_source_and_line": lambda l: ("source", l),
+        "reporter.get_source_and_line": lambda line: ("source", line),
     }
     mock_inliner.configure_mock(**config)
     ret, msg = role("jupyter-download-notebook", text, text, 0, mock_inliner)
@@ -672,7 +685,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, empty) = cell.children
     assert cell.attributes["hide_output"] is True
     assert cellinput.children[0].attributes["linenos"] is False
@@ -688,7 +701,7 @@
         2 + 2
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (cellinput, empty) = cell.children
     assert cell.attributes["hide_output"] is True
     assert cellinput.children[0].attributes["linenos"] is True
@@ -707,7 +720,7 @@
         4
     """
     tree = doctree(source)
-    (cell,) = tree.traverse(JupyterCellNode)
+    (cell,) = tree.findall(JupyterCellNode)
     (
         cellinput,
         celloutput,
@@ -741,7 +754,7 @@
         5
     """
     tree = doctree(source)
-    (ex, jin) = tree.traverse(JupyterCellNode)
+    (ex, jin) = tree.findall(JupyterCellNode)
     (ex_in, ex_out) = ex.children
     (jin_in, jin_out) = jin.children
     assert ex_in.children[0].astext().strip() == "2 + 2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyter-sphinx-0.4.0/tox.ini 
new/jupyter-sphinx-0.5.3/tox.ini
--- old/jupyter-sphinx-0.4.0/tox.ini    2022-06-25 21:26:22.000000000 +0200
+++ new/jupyter-sphinx-0.5.3/tox.ini    1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-[tox]
-envlist = py36,py37
-
-[testenv]
-deps =
-  sphinx
-  pytest
-commands =
-  pytest

Reply via email to