diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9e4a2561..2ceb5d36 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,9 +18,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest] - python-version: ["3.10", "3.11", "3.12", "3.13"] - sphinx: ["~=8.0"] # temporary limit, bring it back to newest sphinx once we are sphinx9 compatible + os: [macos-latest] + python-version: ["3.11", "3.12", "3.13", "3.14"] + sphinx: [""] # Newest Sphinx myst-parser: [""] # Newest MyST Parser (any) include: # Just check the other platforms once @@ -28,29 +28,35 @@ jobs: python-version: "3.13" sphinx: "~=8.0" myst-parser: "~=4.0" - pillow: "==11.0.0" + pillow: "==12.0.0" - os: macos-latest python-version: "3.13" sphinx: "~=8.0" myst-parser: "~=4.0" - pillow: "==11.0.0" + pillow: "==12.0.0" - os: ubuntu-latest python-version: "3.13" sphinx: "~=8.0" myst-parser: "~=4.0" - pillow: "==11.0.0" + pillow: "==12.0.0" + # Oldest known-compatible dependencies + - os: ubuntu-latest + python-version: "3.10" + sphinx: "==5.0.0" + myst-parser: "==1.0.0" + pillow: "==12.0.0" # Mid-range dependencies - os: ubuntu-latest python-version: "3.11" sphinx: "==7.0.0" myst-parser: "==3.0.0" - pillow: "==11.0.0" + pillow: "==12.0.0" # Newest known-compatible dependencies - os: ubuntu-latest - python-version: "3.13" - sphinx: "~=8.0" - myst-parser: "==4.0.0" - pillow: "==11.0.0" + python-version: "3.14" + sphinx: "~=9.0" + myst-parser: "~=5.0" + pillow: "==12.0.0" runs-on: ${{ matrix.os }} @@ -71,42 +77,9 @@ jobs: - name: Run pytest run: pytest --durations=10 - coverage: - needs: [tests] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v6 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6 - with: - python-version: "3.11" - cache: pip - - name: Install dependencies - run: | - pip install -e .[testing] - pip freeze - - - name: Run pytest - run: pytest --durations=10 --cov=myst_nb --cov-report=xml --cov-report=term-missing - - - name: Create cov - run: coverage xml - # for some reason the tests/conftest.py::check_nbs fixture breaks pytest-cov's cov-report outputting - # this is why we run `coverage xml` afterwards (required by codecov) - - # TEMPORARY FIX: Disable codecov until we can get it working again - - name: Upload to Codecov - uses: codecov/codecov-action@v5 - if: false - with: - name: myst-nb-pytests - flags: pytests - files: ./coverage.xml - publish: - name: Publish to PyPi + name: Publish to PyPI needs: [tests] if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 82da2a76..58225e81 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,8 @@ exclude: > \.vscode/settings\.json| tests/commonmark/commonmark\.json| .*\.xml| - tests/.*\.txt + tests/.*\.txt| + tests/.*\.ipynb )$ ci: diff --git a/myst_nb/sphinx_ext.py b/myst_nb/sphinx_ext.py index 1a61ef78..9a7b7996 100644 --- a/myst_nb/sphinx_ext.py +++ b/myst_nb/sphinx_ext.py @@ -7,7 +7,6 @@ from importlib import resources as import_resources import os from pathlib import Path -import sys from types import ModuleType from typing import Any, Iterator, cast @@ -194,14 +193,10 @@ def _get_file_hash(path: Path): @contextlib.contextmanager def _import_resources_path(package: ModuleType, resource: str) -> Iterator[Path]: - if sys.version_info < (3, 9): - with import_resources.path(package, resource) as path: - yield path - else: - with import_resources.as_file( - import_resources.files(package).joinpath(resource) - ) as path: - yield path + with import_resources.as_file( + import_resources.files(package).joinpath(resource) + ) as path: + yield path def add_css(app: Sphinx): diff --git a/pyproject.toml b/pyproject.toml index c0ac0ea4..ca4ea4af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,4 +1,4 @@ - [build-system] +[build-system] requires = ["flit_core >=3.11,<4"] build-backend = "flit_core.buildapi" @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", @@ -42,7 +43,7 @@ dependencies = [ "myst-parser>=1.0.0", "nbformat>=5.0", "pyyaml", - "sphinx>=5,<9", # If we get bugs for older versions, just pin this higher + "sphinx>=5", # If we get bugs for older versions, just pin this higher "typing-extensions", # ipykernel is not a requirement of the library, # but is a common requirement for users (registers the python3 kernel) @@ -96,7 +97,7 @@ testing = [ "ipywidgets>=8", "jupytext>=1.11.2", # Matplotlib outputs are sensitive to the matplotlib version - "matplotlib==3.10.*", + "matplotlib==3.10.7", "nbdime", "numpy", "pandas", @@ -174,12 +175,14 @@ filterwarnings = [ 'ignore:datetime.datetime.utcnow\(\) is deprecated:DeprecationWarning:jupyter_cache', # From matplotlib’s dependencies 'ignore::DeprecationWarning:pyparsing', # imports deprecated `sre_constants` - # From myst-parser on Sphinx 9 - 'ignore:.*MystReferenceResolver.app.*:DeprecationWarning', + # From myst-parser on Sphinx 9 we hit RemovedInSphinx11Warning + 'ignore:.*MystReferenceResolver.app.*', # Upstream myst-parser still hits env.app deprecations under Sphinx 9 'ignore:.*env\\.app.*:DeprecationWarning:myst_parser', # Windows issues, some may need to be fixed in MyST-NB, others are upstream 'ignore:Proactor event loop does not implement add_reader:RuntimeWarning:zmq', + # We deal with this pending deprecation later + 'ignore:Argument "writer_name" will be removed in Docutils 2.0:PendingDeprecationWarning' ] markers = [ diff --git a/tests/conftest.py b/tests/conftest.py index 30184da3..f2bdb3b7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -16,6 +16,7 @@ from nbdime.prettyprint import pretty_print_diff import nbformat as nbf import pytest +import docutils import sphinx from sphinx import version_info as sphinx_version_info from sphinx.util.console import nocolor @@ -304,6 +305,7 @@ class FileRegression: r"original_uri=\"[^\"]*\"\s", # TODO: Remove when support for Sphinx<8 is dropped, re.escape(' translated="True"'), + re.escape(' translated="1"'), re.escape(" translation_progress=\"{'total': 4, 'translated': 2}\""), ) @@ -316,4 +318,10 @@ def check(self, data, **kwargs): def _strip_ignores(self, data): for ig in self.ignores: data = re.sub(ig, "", data) + + if docutils.__version_info__ < (0, 22): + data = data.replace('linenos="False"', 'linenos="0"') + data = data.replace('nowrap="False"', 'nowrap="0"') + data = data.replace('linenos="True"', 'linenos="1"') + data = data.replace('internal="True"', 'internal="1"') return data diff --git a/tests/test_eval/test_sphinx.txt b/tests/test_eval/test_sphinx.txt index 0f630937..34d39dc9 100644 --- a/tests/test_eval/test_sphinx.txt +++ b/tests/test_eval/test_sphinx.txt @@ -4,17 +4,17 @@ Inline evaluation - + a = 1 Evaluated inline variable: 1 - + 1 - + import base64 from IPython.display import Image string = "iVBORw0KGgoAAAANSUhEUgAAAHQAAAB0CAYAAABUmhYnAAAEd0lEQVR4Xu2c0ZLjIAwEk///6GzVvZlspWtWksNRnVcwiGmNwHaS5+v1ej38HKPAU6DHsPy3EIGexVOgh/EUqEBPU+Cw9biHCvQwBQ5bjg4V6GEKHLYcHSrQwxQ4bDk6VKCHKXDYcnSoQA9T4LDllB36fD5vlWR9fUvz0+ve9fp0/O7FU7w0n0CXhBSoDiXTRO06FBKKBLLkLvlGgkTp+UvndPzu/ul46Xq7x2/fQ8kR0wtOBaL+1J6uZ+3fPb5Aw0PRtxOWEkigAr3mCJUMuk9cM45uG3ZvJwel8dN4byW8+r1cgWYPVgRaLIlpwqWCT1cgHbr8skOgYUqkgtHwVYfQKZTiTW8rdCgQFWjtt2Pjty3TGdztOB0aHlosuVcHpglJ+h3nUFow7bE6dDOHCjRN2fBty917qEAF+jEHaI+bTlhK0Nsf/aUBpXtYdXy6noDS9dTePf74oYgWRO3dC6b57k6o7vUJFAh3Cz6dMAIV6FWB9FCQlry1f/ejQXLgt9eX6tXu0DSAtL9APysm0OYHI2mCUgVKxxOoQNOcubc/7XnF5yj3LuYPs5Ud+oc5Ry8R6GEpK1CBjlaMuwcvl1xyBC2I8im9T0xva6pPbtL1V+MjPQW6KEQJRAlAggs0vK2oCibQ4g9+LbnXb96THlQBvl5y0yclqYNQAKgAVGIJQHWPpfjf4uv+bUsagECvClCCkL46VIdecyQtKZRhlKGW3OG3LekeQ0DSBOk+1VLCdbdTAqfzlUuuQFPJe/fM9kORQAV6UYBKJslF11NJS0s8xZO2U3zpeO0lNw2g2+HV8dLbKJov1aMKWKDFfyITKKRsegqmjE7H06FpTRHoRwUoQUnu9pJLh4z0EFMdjwRI46ESWwVC8VK7QMN/TRHookDqCB1Knry261AdmmXMdG86xabzd49H83fP1+5QWkB3e7sg4eu06nra46++4K4uqHp9uyACrSKpXS/Q5kMRnUJruN6vnr7Po/VMn9KrepX3UBKgGmD1UVw6P61HoKmi0F+HfhZIhy766NDhU2F66CEgzQXjQRUjjb8aX7tDaYFpwKkgAi0SSAUXaO0Pjkk/HUoKFQ9p0wm/hjcONC2B6W3B24KKv1ZLx0vzgfQoFsyHQJe3LQINHUEZrUNre6wO1aHLw+AvO5QOHdReLbE0/vSeedyhKBWUDh00XpoAAg2/EkIAqD0FlPYXqEDp3Pix/b8/FKUOIMem7fR6j8Yr0fvlYoEWK4JAw0dplOE6dLnrqH5JrCp4NcMFejPQ6h7RnTAUT/eTKkpYiidtH99D04C6bwvS+QX65W8sUMkVaKgAlcRwuLfuNL5Ah/fQKkC6Pi2JKXB6NEjxUTslKF1P7e17KE1YbRfoZwUFuuijQ4v/l5s6VocOOzQFYv9ZBcoldzY8R08VEGiq2Ob9Bbo5oDQ8gaaKbd5foJsDSsMTaKrY5v0FujmgNDyBpopt3l+gmwNKwxNoqtjm/QW6OaA0PIGmim3eX6CbA0rDE2iq2Ob9Bbo5oDS8H8eCMw7yCzx+AAAAAElFTkSuQmCC" diff --git a/tests/test_execute/test_complex_outputs_unrun_auto.ipynb b/tests/test_execute/test_complex_outputs_unrun_auto.ipynb index df89f6a7..7fb84b87 100644 --- a/tests/test_execute/test_complex_outputs_unrun_auto.ipynb +++ b/tests/test_execute/test_complex_outputs_unrun_auto.ipynb @@ -405,7 +405,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/latex": [ "$\\displaystyle \\left(\\sqrt{5} i\\right)^{\\alpha} \\left(\\frac{1}{2} - \\frac{2 \\sqrt{5} i}{5}\\right) + \\left(- \\sqrt{5} i\\right)^{\\alpha} \\left(\\frac{1}{2} + \\frac{2 \\sqrt{5} i}{5}\\right)$" ], @@ -547,7 +547,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, @@ -684,4 +684,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_complex_outputs_unrun_auto.xml b/tests/test_execute/test_complex_outputs_unrun_auto.xml index 31937b98..846be941 100644 --- a/tests/test_execute/test_complex_outputs_unrun_auto.xml +++ b/tests/test_execute/test_complex_outputs_unrun_auto.xml @@ -195,7 +195,7 @@ - + a = b+c The plotting code for a sympy equation (=@eqn:example_sympy). @@ -214,9 +214,9 @@ (√5⋅ⅈ) ⋅⎜─ - ──────⎟ + (-√5⋅ⅈ) ⋅⎜─ + ──────⎟ ⎝2 5 ⎠ ⎝2 5 ⎠ - + - + \displaystyle \left(\sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} - \frac{2 \sqrt{5} i}{5}\right) + \left(- \sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} + \frac{2 \sqrt{5} i}{5}\right)
diff --git a/tests/test_execute/test_complex_outputs_unrun_cache.ipynb b/tests/test_execute/test_complex_outputs_unrun_cache.ipynb index df89f6a7..7fb84b87 100644 --- a/tests/test_execute/test_complex_outputs_unrun_cache.ipynb +++ b/tests/test_execute/test_complex_outputs_unrun_cache.ipynb @@ -405,7 +405,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/latex": [ "$\\displaystyle \\left(\\sqrt{5} i\\right)^{\\alpha} \\left(\\frac{1}{2} - \\frac{2 \\sqrt{5} i}{5}\\right) + \\left(- \\sqrt{5} i\\right)^{\\alpha} \\left(\\frac{1}{2} + \\frac{2 \\sqrt{5} i}{5}\\right)$" ], @@ -547,7 +547,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.1" }, "latex_envs": { "LaTeX_envs_menu_present": true, @@ -684,4 +684,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_complex_outputs_unrun_cache.xml b/tests/test_execute/test_complex_outputs_unrun_cache.xml index 31937b98..846be941 100644 --- a/tests/test_execute/test_complex_outputs_unrun_cache.xml +++ b/tests/test_execute/test_complex_outputs_unrun_cache.xml @@ -195,7 +195,7 @@ <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> <IPython.core.display.Latex object> <container mime_type="text/latex"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> a = b+c <paragraph> The plotting code for a sympy equation (=@eqn:example_sympy). @@ -214,9 +214,9 @@ (√5⋅ⅈ) ⋅⎜─ - ──────⎟ + (-√5⋅ⅈ) ⋅⎜─ + ──────⎟ ⎝2 5 ⎠ ⎝2 5 ⎠ <container mime_type="image/png"> - <image candidates="{'*': '_build/jupyter_execute/e2dfbe330154316cfb6f3186e8f57fc4df8aee03b0303ed1345fc22cd51f66de.png'}" uri="_build/jupyter_execute/e2dfbe330154316cfb6f3186e8f57fc4df8aee03b0303ed1345fc22cd51f66de.png"> + <image candidates="{'*': '_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png'}" uri="_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png"> <container mime_type="text/latex"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> \displaystyle \left(\sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} - \frac{2 \sqrt{5} i}{5}\right) + \left(- \sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} + \frac{2 \sqrt{5} i}{5}\right) <section ids="interactive-outputs" names="interactive\ outputs"> <title> diff --git a/tests/test_execute/test_custom_convert_auto.ipynb b/tests/test_execute/test_custom_convert_auto.ipynb index 1b8be7b3..d166204b 100644 --- a/tests/test_execute/test_custom_convert_auto.ipynb +++ b/tests/test_execute/test_custom_convert_auto.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "raw", - "id": "28b0321f", + "id": "2377e1db", "metadata": {}, "source": [ "---\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "58a3e81a", + "id": "b8c05147", "metadata": {}, "source": [ "# Custom Formats" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "be1f1414", + "id": "17276941", "metadata": { "echo": true }, @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "64b71941", + "id": "a3bb888c", "metadata": { "fig.height": 5, "fig.width": 8, @@ -59,7 +59,7 @@ }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGvCAYAAACJsNWPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAH85JREFUeJzt3Q2QVeV9P/DfyssCKqiN8iYCGSyIvCm+AJkJxCBoiNVM2lgzGYgikxoxUjpxgk2lmOlAY1RsJBKaIJNYRqqJaFQkBIPEgDUopmgntBgFTHityArGJYX7n+fMfze7sIssLjzs7ucz87h7nnvOPc+93uF+93k5p6xUKpUCACCTk3KdGAAgEUYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRoCsysrK4h//8R+P+3kXLFhQnPvNN9887ucGahNGoBlYt25d/OVf/mX07Nkz2rVrF927d4/LL788vv3tb+duWrO0cOHCmD17du5mQLMhjEATt2rVqrjooovi17/+dUyaNCnuv//+uPHGG+Okk06K++67L3fzmiVhBBpX60Z+PuA4+6d/+qfo1KlT/OpXv4rTTjut1mPbt2/3/wM44ekZgSbu9ddfj/PPP/+QIJKcddZZtbYffPDBuOyyy4r68vLy6N+/fzzwwAOHHNerV6/49Kc/HStWrCh6Xdq3bx8DBw4stpMf//jHxXYaEho6dGisXbu21vFf/OIX45RTTonf/va3MXbs2Dj55JOjW7duceedd8aR3Cj8d7/7Xdxwww3RuXPnop3p9c2fP/+I3o80D2Ty5Mnxb//2b9G3b9/qNq5cufKIjv/Od75TnC+dN7X55ptvjnfeeaf68VGjRsVTTz0VGzduLM6VSnq/gKOnZwSauDRPZPXq1fHqq6/GgAEDDrtvCh7pi/Yv/uIvonXr1vGTn/wkvvzlL8eBAweKL92aNmzYEJ///OfjS1/6UnzhC1+Ib33rW3HVVVfF3Llz4/bbby+OS2bOnBmf+9znYv369cXQUJX9+/fHFVdcEcOGDYtvfvOb8cwzz8T06dPj//7v/4pQUp9t27YVx1SFijPPPDOWLFkSEydOjIqKipgyZcoHvifPPfdcLFq0KL7yla8UoSIFjNSWF1988bDvUZpIO2PGjBg9enTcdNNNxWtK71nqdfrlL38Zbdq0ib//+7+P3bt3x1tvvRX33ntvcVwKXsCHUAKatJ/+9KelVq1aFWX48OGl2267rbR06dLSvn37Dtn3vffeO6Ru7NixpY9+9KO16nr27Jm6L0qrVq2qrkvPmerat29f2rhxY3X9d7/73aL+5z//eXXdhAkTirpbbrmluu7AgQOlcePGldq2bVvasWNHdX3ab/r06dXbEydOLHXt2rW0c+fOWm3667/+61KnTp3qfA01pedLZc2aNdV1qb3t2rUrfeYzn6mue/DBB4v93njjjWJ7+/btRdvGjBlT2r9/f/V+999/f7Hf/Pnzq+vS60jvEdA4DNNAE5dWzaSekdTbkSaxpl6INDSSVtQ88cQTtfZNwy1V0l/3O3fujJEjRxbDKWm7pjSEM3z48OrtSy+9tPiZhnnOOeecQ+rTcxws9WxUqerp2LdvX/zsZz+r87WkLPGjH/2o6IFJv6f2VZX0mlIbX3755Q98T1K709BMldTeq6++OpYuXVr02NQltSm1LfW81OzhSZOCO3bsWAzNAMeGMALNwMUXX1zM49i1a1cxFDFt2rR49913i+W+//Vf/1W9XxpqSEMQaQ5HmmOShkDSkEtycBipGTiSNEk26dGjR5316dw1pS/0j370o7Xq/vzP/7z4Wd+1PXbs2FHMz5g3b17Rtprl+uuvP+JJueeee+4hdenc7733XnGOuqQ5IEmaZ1JT27Zti9dR9TjQ+MwZgWYkfXGmYJJK+vJNX+CPPPJIMVcjTXT95Cc/Gf369Yt77rmnCBVp/6effrqY+5DmjdTUqlWrOs9RX/2RTEz9IFVtSHNUJkyYUOc+gwYN+tDnAU4swgg0U2kVTLJly5biZ5qsWllZWQzd1Oz1+PnPf35Mzp+CRRq6qeoNSf77v/+7+Fnf6pPUA3LqqacWQympB+do/c///M8hdencHTp0KM5R30TgJE1ardmjk4Zu3njjjVrtSUNOQOMxTANNXAoTdfVKpB6PmsMOVT0aNfdNQzNpue+xki7AViWdN22nFSmph6YuqY2f/exni3kjaXXQweobYjlYmkNTc27J5s2b4/HHH48xY8bU27OTwkbqKfqXf/mXWu/R97///eJ9GjduXHVdGuY6eFgLOHp6RqCJu+WWW4q5EJ/5zGeKIZj0l3y6Kmta2pp6IKrmWqQv4vRlmyaHpuW6e/bsiX/9138trjlS1XvSmNL1PdJy3jTckia5puW5aRJomqNSX+9EMmvWrCJgpWPS5NE0kfbtt98uwkWaZJp+/yBp+W6a8FpzaW+Slu3WJ7UpzbVJ+6RlwGlCcOolScemYa80dFQlTY5N7+/UqVOLx9LS3vS+AkepkVblAJksWbKkdMMNN5T69etXOuWUU4rlqX369CmW1W7btq3Wvk888URp0KBBxTLXXr16lf75n/+5WLJac4lrkpatpuWrB0v73XzzzbXq0nGp/q677qq1tPfkk08uvf7668VS2Q4dOpQ6d+5cLOGtuWy2rqW9SWp3Ok+PHj1Kbdq0KXXp0qX0yU9+sjRv3rwPfD+q2vjQQw+Vzj333FJ5eXnpggsuqLX0uK6lvTWX8qb3Mp03tfmmm24q7dq1q9Y+e/bsKX3+858vnXbaacVzWOYLH05Z+s/RBhmAuqQrsD766KNF78vxluZzpAu41RwiAk5s5owAAFkJIwBAVsIIAJCVOSMAQFZ6RgCArIQRACCrJnHRs3RZ6d///vfFZaJdhhkAmoZ09ZB0085u3brVuht2kwwjKYgcfKdQAKBpSLdkOPvss5t2GEk9IlUvpmPHjrmbAwAcgYqKiqIzoep7vEmHkaqhmRREhBEAaFo+aIqFCawAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIANB0wsgDDzwQgwYNqr4s+/Dhw2PJkiWHPeaRRx6Jfv36Rbt27WLgwIHx9NNPf9g2AwAtNYykO+7NmjUrXnrppVizZk1cdtllcfXVV8drr71W5/6rVq2K6667LiZOnBhr166Na665piivvvpqY7UfAGjiykqlUunDPMEZZ5wRd911VxE4DnbttdfG3r1748knn6yuGzZsWAwZMiTmzp3boLv+derUKXbv3u1GeQDQRBzp9/dRzxnZv39/PPzww0XYSMM1dVm9enWMHj26Vt3YsWOLegCApHVD34Z169YV4eP999+PU045JR577LHo379/nftu3bo1OnfuXKsubaf6w6msrCxKzWQFADRPDQ4jffv2jVdeeaXocnn00UdjwoQJ8dxzz9UbSI7GzJkzY8aMGY32fNBS9fraU7mb0Gy8OWtc7iZAs9XgYZq2bdtGnz59YujQoUVoGDx4cNx333117tulS5fYtm1brbq0neoPZ9q0aUXYqSqbN29uaDMBgJZynZEDBw7UGlKpKQ3nLF++vFbdsmXL6p1jUqW8vLx6+XBVAQCapwYN06QeiyuvvDLOOeecePfdd2PhwoWxYsWKWLp0afH4+PHjo3v37kWPSXLrrbfGyJEj4+67745x48YVE17TkuB58+Ydm1cDADTvMLJ9+/YicGzZsqVYqpMugJaCyOWXX148vmnTpjjppD91towYMaIILF//+tfj9ttvj3PPPTcWL14cAwYMaPxXAgC0zOuMHA+uMwJHxwTWxmMCK5yA1xkBAGgMwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAATSeMzJw5My6++OI49dRT46yzzoprrrkm1q9ff9hjFixYEGVlZbVKu3btPmy7AYCWGEaee+65uPnmm+OFF16IZcuWxR//+McYM2ZM7N2797DHdezYMbZs2VJdNm7c+GHbDQA0E60bsvMzzzxzSK9H6iF56aWX4uMf/3i9x6XekC5duhx9KwGAZutDzRnZvXt38fOMM8447H579uyJnj17Ro8ePeLqq6+O11577bD7V1ZWRkVFRa0CADRPRx1GDhw4EFOmTImPfexjMWDAgHr369u3b8yfPz8ef/zxeOihh4rjRowYEW+99dZh56Z06tSpuqQQAwA0T2WlUql0NAfedNNNsWTJknj++efj7LPPPuLj0jyT8847L6677rr4xje+UW/PSCpVUs9ICiSpJybNPwGOTK+vPeWtaiRvzhrnvYQGSt/fqVPhg76/GzRnpMrkyZPjySefjJUrVzYoiCRt2rSJCy64IDZs2FDvPuXl5UUBAJq/Bg3TpE6UFEQee+yxePbZZ6N3794NPuH+/ftj3bp10bVr1wYfCwA0Pw3qGUnLehcuXFjM/0jXGtm6dWtRn7pg2rdvX/w+fvz46N69ezHvI7nzzjtj2LBh0adPn3jnnXfirrvuKpb23njjjcfi9QAAzTmMPPDAA8XPUaNG1ap/8MEH44tf/GLx+6ZNm+Kkk/7U4bJr166YNGlSEVxOP/30GDp0aKxatSr69+/fOK8AAGiZE1hPxAkwQG0msDYeE1jh2H1/uzcNAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBA0wkjM2fOjIsvvjhOPfXUOOuss+Kaa66J9evXf+BxjzzySPTr1y/atWsXAwcOjKeffvrDtBkAaKlh5Lnnnoubb745XnjhhVi2bFn88Y9/jDFjxsTevXvrPWbVqlVx3XXXxcSJE2Pt2rVFgEnl1VdfbYz2AwBNXFmpVCod7cE7duwoekhSSPn4xz9e5z7XXnttEVaefPLJ6rphw4bFkCFDYu7cuUd0noqKiujUqVPs3r07OnbseLTNhRan19eeyt2EZuPNWeNyNwGanCP9/v5Qc0bSkydnnHFGvfusXr06Ro8eXatu7NixRX19KisrixdQswAAzVProz3wwIEDMWXKlPjYxz4WAwYMqHe/rVu3RufOnWvVpe1Uf7i5KTNmzDjapgFwAtNj1zjebEa9dUfdM5LmjqR5Hw8//HDjtigipk2bVvS6VJXNmzc3+jkAgCbcMzJ58uRiDsjKlSvj7LPPPuy+Xbp0iW3bttWqS9upvj7l5eVFAQCavwb1jKS5rimIPPbYY/Hss89G7969P/CY4cOHx/Lly2vVpZU4qR4AoHVDh2YWLlwYjz/+eHGtkap5H2mmbPv27Yvfx48fH927dy/mfSS33nprjBw5Mu6+++4YN25cMayzZs2amDdvnncfAGhYz8gDDzxQzOEYNWpUdO3atbosWrSoep9NmzbFli1bqrdHjBhRBJgUPgYPHhyPPvpoLF68+LCTXgGAlqNBPSNHckmSFStWHFL3V3/1V0UBADiYe9MAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggA0LTCyMqVK+Oqq66Kbt26RVlZWSxevPiw+69YsaLY7+CydevWD9NuAKClhpG9e/fG4MGDY86cOQ06bv369bFly5bqctZZZzX01ABAM9S6oQdceeWVRWmoFD5OO+20Bh8HADRvx23OyJAhQ6Jr165x+eWXxy9/+cvjdVoAoLn1jDRUCiBz586Niy66KCorK+N73/tejBo1Kv7jP/4jLrzwwjqPSfulUqWiouJYNxMAaK5hpG/fvkWpMmLEiHj99dfj3nvvjR/+8Id1HjNz5syYMWPGsW4aANBSl/ZecsklsWHDhnofnzZtWuzevbu6bN68+bi2DwBoRj0jdXnllVeK4Zv6lJeXFwUAaP4aHEb27NlTq1fjjTfeKMLFGWecEeecc07Rq/G73/0ufvCDHxSPz549O3r37h3nn39+vP/++8WckWeffTZ++tOfNu4rAQBaRhhZs2ZNfOITn6jenjp1avFzwoQJsWDBguIaIps2bap+fN++ffF3f/d3RUDp0KFDDBo0KH72s5/Veg4AoOVqcBhJK2FKpVK9j6dAUtNtt91WFACAurg3DQCQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQNMKIytXroyrrroqunXrFmVlZbF48eIPPGbFihVx4YUXRnl5efTp0ycWLFhwtO0FAFp6GNm7d28MHjw45syZc0T7v/HGGzFu3Lj4xCc+Ea+88kpMmTIlbrzxxli6dOnRtBcAaGZaN/SAK6+8sihHau7cudG7d++4++67i+3zzjsvnn/++bj33ntj7NixDT09ANDMHPM5I6tXr47Ro0fXqkshJNXXp7KyMioqKmoVAKB5anDPSENt3bo1OnfuXKsubaeA8Yc//CHat29/yDEzZ86MGTNmRFPT62tP5W5Cs/HmrHG5mwBAS15NM23atNi9e3d12bx5c+4mAQBNtWekS5cusW3btlp1abtjx4519ookadVNKgBA83fMe0aGDx8ey5cvr1W3bNmyoh4AoMFhZM+ePcUS3VSqlu6m3zdt2lQ9xDJ+/Pjq/f/mb/4mfvvb38Ztt90Wv/nNb+I73/lO/Pu//3v87d/+rXcfAGh4GFmzZk1ccMEFRUmmTp1a/H7HHXcU21u2bKkOJkla1vvUU08VvSHp+iRpie/3vvc9y3oBgKObMzJq1KgolUr1Pl7X1VXTMWvXrm3oqQCAFuCEXE0DALQcwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAATS+MzJkzJ3r16hXt2rWLSy+9NF588cV6912wYEGUlZXVKuk4AICjCiOLFi2KqVOnxvTp0+Pll1+OwYMHx9ixY2P79u31HtOxY8fYsmVLddm4caN3HwA4ujByzz33xKRJk+L666+P/v37x9y5c6NDhw4xf/78eo9JvSFdunSpLp07d27oaQGAZqpBYWTfvn3x0ksvxejRo//0BCedVGyvXr263uP27NkTPXv2jB49esTVV18dr7322mHPU1lZGRUVFbUKANA8NSiM7Ny5M/bv339Iz0ba3rp1a53H9O3bt+g1efzxx+Ohhx6KAwcOxIgRI+Ktt96q9zwzZ86MTp06VZcUYgCA5umYr6YZPnx4jB8/PoYMGRIjR46MH//4x3HmmWfGd7/73XqPmTZtWuzevbu6bN68+Vg3EwDIpHVDdv7IRz4SrVq1im3bttWqT9tpLsiRaNOmTVxwwQWxYcOGevcpLy8vCgDQ/DWoZ6Rt27YxdOjQWL58eXVdGnZJ26kH5EikYZ5169ZF165dG95aAKBl94wkaVnvhAkT4qKLLopLLrkkZs+eHXv37i1W1yRpSKZ79+7FvI/kzjvvjGHDhkWfPn3inXfeibvuuqtY2nvjjTc2/qsBAJp/GLn22mtjx44dcccddxSTVtNckGeeeaZ6UuumTZuKFTZVdu3aVSwFTvuefvrpRc/KqlWrimXBAAANDiPJ5MmTi1KXFStW1Nq+9957iwIAUBf3pgEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQCg6YWROXPmRK9evaJdu3Zx6aWXxosvvnjY/R955JHo169fsf/AgQPj6aefPtr2AgAtPYwsWrQopk6dGtOnT4+XX345Bg8eHGPHjo3t27fXuf+qVaviuuuui4kTJ8batWvjmmuuKcqrr77aGO0HAFpaGLnnnnti0qRJcf3110f//v1j7ty50aFDh5g/f36d+993331xxRVXxFe/+tU477zz4hvf+EZceOGFcf/99zdG+wGAlhRG9u3bFy+99FKMHj36T09w0knF9urVq+s8JtXX3D9JPSn17Q8AtCytG7Lzzp07Y//+/dG5c+da9Wn7N7/5TZ3HbN26tc79U319Kisri1Jl9+7dxc+Kioo4kR2ofC93E5qNE/3/dVPhM9l4fCYbj89ly/lMVvz/NpZKpcYLI8fLzJkzY8aMGYfU9+jRI0t7OP46zfauc2LxmeRE06kJ/Tv57rvvRqdOnRonjHzkIx+JVq1axbZt22rVp+0uXbrUeUyqb8j+ybRp04pJslUOHDgQb7/9dvzZn/1ZlJWVNaTJHJRQU6DbvHlzdOzY0XvDCcHnkhONz2TjST0iKYh069btsPs1KIy0bds2hg4dGsuXLy9WxFQFhbQ9efLkOo8ZPnx48fiUKVOq65YtW1bU16e8vLwoNZ122mkNaSqHkYKIMMKJxueSE43PZOM4XI/IUQ/TpB6LCRMmxEUXXRSXXHJJzJ49O/bu3VusrknGjx8f3bt3L4ZakltvvTVGjhwZd999d4wbNy4efvjhWLNmTcybN+9oXhMA0Mw0OIxce+21sWPHjrjjjjuKSahDhgyJZ555pnqS6qZNm4oVNlVGjBgRCxcujK9//etx++23x7nnnhuLFy+OAQMGNO4rAQCapLLSB01xpdlIK5RSj1Wak3PwMBjk4nPJicZn8vgTRgCArNwoDwDIShgBALISRgCArISRFspdkwE4UQgjLUi6Cl66vku6PszgwYNzNwcgu2effba4A31d93lJ90U7//zz4xe/+EWWtrUkwkgLsHLlyuJCdV27do1vfetbcdlll8ULL7yQu1m0YP/7v/9b/Xu6PUG6btFXv/pV/+hz3KULd06aNKnOq1KnK4d+6Utfinvuucf/mWPM0t5mKl2QbsGCBfH973+/SPyf+9znYu7cufHrX/+6+CsAcli3bl1cddVVRQBJF0BMV2S+4ooriqs4p4slpp+PPvpo9e0m4Fjr2bNnceHO8847r87H0x3px4wZU1zQk2NHz0gzlP6x79u3b/znf/5nkfp///vfx7e//e3czYK47bbbYuDAgUVv3ahRo+LTn/50cZuI1B2+a9eu4q/QWbNmeac4btKNW9u0aVPv461bty6uOs4Jdjl4TnxLliyJr3zlK3HTTTcVf33CieJXv/pVMUY/aNCgYt5SmsP05S9/ufoWErfccksMGzYsdzNpQdK91NKE/j59+tT5ePqjLg1xc2zpGWmGnn/++WKyarrD8qWXXhr3339/7Ny5M3ezIN5+++3o0qVL8U6ccsopcfLJJ8fpp59e/c6k39NnF46XT33qU/EP//AP8f777x/y2B/+8IeYPn160YPHsWXOSDOWxt8XLVoU8+fPjxdffDH2799fTMS64YYb4tRTT83dPFqg1AOSusXPPPPMYjt9DtNfnr179y6202PdunUrPqtwPKTP3IUXXhitWrWKyZMnF0PcVXNF5syZU3wWX3755eqbwXJsCCMtxPr164vJrD/84Q/jnXfeicsvvzyeeOKJ3M2iBYaRK6+8svpGjT/5yU+K1V2ph6TqBmVpMqEwwvG0cePGYlh76dKlUXXv2LKyshg7dmwRSKrCMseOMNLCpH/k0xdA6i0RRjjerr/++iPa78EHHzzmbYGDpUnUGzZsKAJJmm9XcwiRY0sYAQCyMoEVAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACBy+n9tifv6K7ovvgAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -95,9 +95,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.1" } }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_custom_convert_auto.xml b/tests/test_execute/test_custom_convert_auto.xml index 534b68e8..41019b2a 100644 --- a/tests/test_execute/test_custom_convert_auto.xml +++ b/tests/test_execute/test_custom_convert_auto.xml @@ -19,4 +19,4 @@ <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> <Figure size 640x480 with 1 Axes> <container mime_type="image/png"> - <image candidates="{'*': '_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png'}" uri="_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png"> + <image candidates="{'*': '_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png'}" uri="_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png"> diff --git a/tests/test_execute/test_custom_convert_cache.ipynb b/tests/test_execute/test_custom_convert_cache.ipynb index 7e70aaa6..4b45fdc8 100644 --- a/tests/test_execute/test_custom_convert_cache.ipynb +++ b/tests/test_execute/test_custom_convert_cache.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "raw", - "id": "4a49bac4", + "id": "4c4d4c36", "metadata": {}, "source": [ "---\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "df9ab2eb", + "id": "ceb4f78f", "metadata": {}, "source": [ "# Custom Formats" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "65052f1a", + "id": "7738aa77", "metadata": { "echo": true }, @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "d7e1dd06", + "id": "4720667a", "metadata": { "fig.height": 5, "fig.width": 8, @@ -59,7 +59,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGvCAYAAACJsNWPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAi3UlEQVR4nO3de1DVdf7H8ddB5eAFUDduIqGNhuIFFW/YTJqh6BJJs5Vr00CmjGtguezkLG6rabNz3MxLmxdiC5mtdXS18n5J8bYFrXkrbSdaLwEVoK56QCpo4fv7o/HU+QnqQfQj8HzMfGc83/P98n0f9uzy3O/5nnNslmVZAgAAMMTL9AAAAKBlI0YAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAGGWz2fTiiy/e9uPm5OTIZrPpyy+/vO3HBuCOGAGagePHj+vRRx9VeHi4fHx8FBoaqjFjxui1114zPVqztHr1ai1dutT0GECzQYwATVxeXp4GDx6sTz75RCkpKVq2bJmmTp0qLy8vvfrqq6bHa5aIEaBxtTY9AICb86c//Un+/v76+OOP1bFjR7f7zp49a2YoAPAAZ0aAJu7UqVPq06fPVSEiSYGBgW63V61apdGjRyswMFB2u12RkZFauXLlVft169ZNDz30kPbt26fBgwerbdu26tevn/bt2ydJevfdd9WvXz/5+PgoOjpaR48eddv/qaeeUocOHXT69GnFxcWpffv26tKli+bPn68b+aLwr7/+Wk8//bSCgoJkt9vVp08fZWdn39Dvw2azKS0tTX//+98VERHhmvHAgQM3tP+KFSvUp08f2e12denSRampqbp06ZLr/lGjRmnr1q0qLCyUzWaTzWZTt27dbuhnA6gbZ0aAJi48PFz5+fk6ceKE+vbte81tV65cqT59+ujhhx9W69attXnzZj3zzDOqra1Vamqq27YnT57UE088oWnTpunJJ5/UK6+8ooSEBGVmZmr27Nl65plnJEkOh0OPP/64CgoK5OX10/+/qamp0bhx4zR8+HC9/PLL2rFjh+bOnav//e9/mj9/fr0zlpWVafjw4a6oCAgI0Pbt2zVlyhSVl5dr5syZ1/2d7N+/X2vXrtWzzz4ru92uFStWaNy4cTp48OA1f0cvvvii5s2bp9jYWE2fPl0FBQVauXKlPv74Y3344Ydq06aN/vCHP8jpdOqrr77SkiVLJEkdOnS47kwArsEC0KS9//77VqtWraxWrVpZMTEx1qxZs6ydO3da1dXVV2377bffXrUuLi7Ouueee9zWhYeHW5KsvLw817qdO3dakqy2bdtahYWFrvWvv/66Jcnau3eva11ycrIlyZoxY4ZrXW1trRUfH295e3tb586dc62XZM2dO9d1e8qUKVZISIh1/vx5t5l+/etfW/7+/nU+hp+TZEmyDh065FpXWFho+fj4WI888ohr3apVqyxJ1pkzZyzLsqyzZ89a3t7e1tixY62amhrXdsuWLbMkWdnZ2a518fHxVnh4+DXnAHDjeJkGaOLGjBmj/Px8Pfzww/rkk0/08ssvKy4uTqGhodq0aZPbtm3btnX92+l06vz58xo5cqROnz4tp9Pptm1kZKRiYmJct4cNGyZJGj16tO6+++6r1p8+ffqq2dLS0lz/vnKmo7q6Wrt3767zsViWpXfeeUcJCQmyLEvnz593LXFxcXI6nTpy5Mh1fycxMTGKjo523b777rs1YcIE7dy5UzU1NXXus3v3blVXV2vmzJluZ3hSUlLk5+enrVu3Xve4ABqGGAGagSFDhujdd9/VxYsXdfDgQWVkZKiiokKPPvqo/v3vf7u2+/DDDxUbG6v27durY8eOCggI0OzZsyXpqhj5eXBIkr+/vyQpLCyszvUXL150W+/l5aV77rnHbd29994rSfV+tse5c+d06dIlZWVlKSAgwG2ZPHmypBu7KLdnz55Xrbv33nv17bff6ty5c3XuU1hYKEmKiIhwW+/t7a177rnHdT+Axsc1I0Az4u3trSFDhmjIkCG69957NXnyZK1bt05z587VqVOn9OCDD6pXr15avHixwsLC5O3trW3btmnJkiWqra11+1mtWrWq8xj1rbdu4MLU67kyw5NPPqnk5OQ6t+nfv/9NHwfAnYUYAZqpwYMHS5JKSkokSZs3b1ZVVZU2bdrkdtZj7969t+T4tbW1On36tOtsiCR98cUXklTvu08CAgLk6+urmpoaxcbGNvjY//nPf65a98UXX6hdu3YKCAioc5/w8HBJUkFBgdsZnerqap05c8ZtHpvN1uDZAFyNl2mAJm7v3r11npXYtm2bpJ9edrhyRuPn2zqdTq1ateqWzbZs2TLXvy3L0rJly9SmTRs9+OCDdW7fqlUr/epXv9I777yjEydOXHV/fS+x/H/5+flu15YUFxdr48aNGjt2bL1ndmJjY+Xt7a2//OUvbr+jN998U06nU/Hx8a517du3v+plLQANx5kRoImbMWOGvv32Wz3yyCPq1auXqqurlZeXp7Vr16pbt26uay3Gjh0rb29vJSQkaNq0abp8+bL++te/KjAw0HX2pDH5+Phox44dSk5O1rBhw7R9+3Zt3bpVs2fPrvfshCQtWLBAe/fu1bBhw5SSkqLIyEhduHBBR44c0e7du3XhwoXrHrtv376Ki4tze2uvJM2bN6/efQICApSRkaF58+Zp3Lhxevjhh1VQUKAVK1ZoyJAhevLJJ13bRkdHa+3atUpPT9eQIUPUoUMHJSQkePDbAeDG4Dt5ADSC7du3W08//bTVq1cvq0OHDpa3t7fVo0cPa8aMGVZZWZnbtps2bbL69+9v+fj4WN26dbP+/Oc/W9nZ2W5vcbWsH9/aGx8ff9WxJFmpqalu686cOWNJshYuXOhal5ycbLVv3946deqUNXbsWKtdu3ZWUFCQNXfuXLe3zV75mT9/a69lWVZZWZmVmppqhYWFWW3atLGCg4OtBx980MrKyrru7+PKjG+//bbVs2dPy263WwMHDnR767FlXf3W3iuWLVtm9erVy2rTpo0VFBRkTZ8+3bp48aLbNpcvX7aeeOIJq2PHjpYk3uYL3CSbZTXCVWcA8DNPPfWU1q9fr8uXL9/2Y9tsNqWmprq9RATgzsY1IwAAwChiBAAAGEWMAAAAo7hmBAAAGMWZEQAAYBQxAgAAjGoSH3pWW1urb775Rr6+vnwMMwAATYRlWaqoqFCXLl3cvg37/2sSMfLNN99c9U2hAACgaSguLlbXrl3rvb9JxIivr6+kHx+Mn5+f4WkAAMCNKC8vV1hYmOvveH2aRIxceWnGz8+PGAEAoIm53iUWXMAKAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRHsXIypUr1b9/f9fHssfExGj79u3X3GfdunXq1auXfHx81K9fP23btu2mBgYAAM2LRzHStWtXLViwQIcPH9ahQ4c0evRoTZgwQZ999lmd2+fl5WnSpEmaMmWKjh49qsTERCUmJurEiRONMjwAAGj6bJZlWTfzAzp37qyFCxdqypQpV903ceJEVVZWasuWLa51w4cP14ABA5SZmXnDxygvL5e/v7+cTidflAcAQBNxo3+/G3zNSE1NjdasWaPKykrFxMTUuU1+fr5iY2Pd1sXFxSk/P7+hhwUAAM1Ma093OH78uGJiYvT999+rQ4cOeu+99xQZGVnntqWlpQoKCnJbFxQUpNLS0mseo6qqSlVVVa7b5eXlno4JAACaCI9jJCIiQseOHZPT6dT69euVnJys/fv31xskDeFwODRv3rxG+3lAS9Xt91tNj9BsfLkg3vQIQLPl8cs03t7e6tGjh6Kjo+VwOBQVFaVXX321zm2Dg4NVVlbmtq6srEzBwcHXPEZGRoacTqdrKS4u9nRMAADQRNz054zU1ta6vaTyczExMcrNzXVbt2vXrnqvMbnCbre73j58ZQEAAM2TRy/TZGRkaPz48br77rtVUVGh1atXa9++fdq5c6ckKSkpSaGhoXI4HJKk5557TiNHjtSiRYsUHx+vNWvW6NChQ8rKymr8RwIAAJokj2Lk7NmzSkpKUklJifz9/dW/f3/t3LlTY8aMkSQVFRXJy+unky0jRozQ6tWr9cILL2j27Nnq2bOnNmzYoL59+zbuowAAAE3WTX/OyO3A54wADcMFrI2HC1gBz93yzxkBAABoDMQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjPIoRhwOh4YMGSJfX18FBgYqMTFRBQUF19wnJydHNpvNbfHx8bmpoQEAQPPhUYzs379fqamp+uijj7Rr1y798MMPGjt2rCorK6+5n5+fn0pKSlxLYWHhTQ0NAACaj9aebLxjxw632zk5OQoMDNThw4d1//3317ufzWZTcHBwwyYEAADN2k1dM+J0OiVJnTt3vuZ2ly9fVnh4uMLCwjRhwgR99tln19y+qqpK5eXlbgsAAGieGhwjtbW1mjlzpu677z717du33u0iIiKUnZ2tjRs36u2331Ztba1GjBihr776qt59HA6H/P39XUtYWFhDxwQAAHc4m2VZVkN2nD59urZv364PPvhAXbt2veH9fvjhB/Xu3VuTJk3SSy+9VOc2VVVVqqqqct0uLy9XWFiYnE6n/Pz8GjIu0CJ1+/1W0yM0G18uiDc9AtDklJeXy9/f/7p/vz26ZuSKtLQ0bdmyRQcOHPAoRCSpTZs2GjhwoE6ePFnvNna7XXa7vSGjAQCAJsajl2ksy1JaWpree+897dmzR927d/f4gDU1NTp+/LhCQkI83hcAADQ/Hp0ZSU1N1erVq7Vx40b5+vqqtLRUkuTv76+2bdtKkpKSkhQaGiqHwyFJmj9/voYPH64ePXro0qVLWrhwoQoLCzV16tRGfigAAKAp8ihGVq5cKUkaNWqU2/pVq1bpqaeekiQVFRXJy+unEy4XL15USkqKSktL1alTJ0VHRysvL0+RkZE3NzkAAGgWGnwB6+10oxfAAHDHBayNhwtYAc/d6N9vvpsGAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKI9ixOFwaMiQIfL19VVgYKASExNVUFBw3f3WrVunXr16ycfHR/369dO2bdsaPDAAAGhePIqR/fv3KzU1VR999JF27dqlH374QWPHjlVlZWW9++Tl5WnSpEmaMmWKjh49qsTERCUmJurEiRM3PTwAAGj6bJZlWQ3d+dy5cwoMDNT+/ft1//3317nNxIkTVVlZqS1btrjWDR8+XAMGDFBmZuYNHae8vFz+/v5yOp3y8/Nr6LhAi9Pt91tNj9BsfLkg3vQIQJNzo3+/b+qaEafTKUnq3Llzvdvk5+crNjbWbV1cXJzy8/Pr3aeqqkrl5eVuCwAAaJ5aN3TH2tpazZw5U/fdd5/69u1b73alpaUKCgpyWxcUFKTS0tJ693E4HJo3b15DRwMA3ME4Y9c4mtPZugafGUlNTdWJEye0Zs2axpxHkpSRkSGn0+laiouLG/0YAADgztCgMyNpaWnasmWLDhw4oK5du15z2+DgYJWVlbmtKysrU3BwcL372O122e32howGAACaGI/OjFiWpbS0NL333nvas2ePunfvft19YmJilJub67Zu165diomJ8WxSAADQLHl0ZiQ1NVWrV6/Wxo0b5evr67ruw9/fX23btpUkJSUlKTQ0VA6HQ5L03HPPaeTIkVq0aJHi4+O1Zs0aHTp0SFlZWY38UAAAQFPk0ZmRlStXyul0atSoUQoJCXEta9eudW1TVFSkkpIS1+0RI0Zo9erVysrKUlRUlNavX68NGzZc86JXAADQcnh0ZuRGPpJk3759V6177LHH9Nhjj3lyKAAA0ELw3TQAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwyuMYOXDggBISEtSlSxfZbDZt2LDhmtvv27dPNpvtqqW0tLShMwMAgGbE4xiprKxUVFSUli9f7tF+BQUFKikpcS2BgYGeHhoAADRDrT3dYfz48Ro/frzHBwoMDFTHjh093g8AADRvt+2akQEDBigkJERjxozRhx9+eLsOCwAA7nAenxnxVEhIiDIzMzV48GBVVVXpjTfe0KhRo/Svf/1LgwYNqnOfqqoqVVVVuW6Xl5ff6jEBAIAhtzxGIiIiFBER4bo9YsQInTp1SkuWLNFbb71V5z4Oh0Pz5s271aMBAIA7gJG39g4dOlQnT56s9/6MjAw5nU7XUlxcfBunAwAAt9MtPzNSl2PHjikkJKTe++12u+x2+22cCAAAmOJxjFy+fNntrMaZM2d07Ngxde7cWXfffbcyMjL09ddf629/+5skaenSperevbv69Omj77//Xm+88Yb27Nmj999/v/EeBQAAaLI8jpFDhw7pgQcecN1OT0+XJCUnJysnJ0clJSUqKipy3V9dXa3f/e53+vrrr9WuXTv1799fu3fvdvsZAACg5fI4RkaNGiXLsuq9Pycnx+32rFmzNGvWLI8HAwAALQPfTQMAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGCUxzFy4MABJSQkqEuXLrLZbNqwYcN199m3b58GDRoku92uHj16KCcnpwGjAgCA5sjjGKmsrFRUVJSWL19+Q9ufOXNG8fHxeuCBB3Ts2DHNnDlTU6dO1c6dOz0eFgAAND+tPd1h/PjxGj9+/A1vn5mZqe7du2vRokWSpN69e+uDDz7QkiVLFBcX5+nhAQBAM3PLrxnJz89XbGys27q4uDjl5+fXu09VVZXKy8vdFgAA0Dx5fGbEU6WlpQoKCnJbFxQUpPLycn333Xdq27btVfs4HA7NmzfvVo/W6Lr9fqvpEZqNLxfEmx4BAHCb3JHvpsnIyJDT6XQtxcXFpkcCAAC3yC0/MxIcHKyysjK3dWVlZfLz86vzrIgk2e122e32Wz0aAAC4A9zyMyMxMTHKzc11W7dr1y7FxMTc6kMDAIAmwOMYuXz5so4dO6Zjx45J+vGtu8eOHVNRUZGkH19iSUpKcm3/m9/8RqdPn9asWbP0+eefa8WKFfrHP/6h3/72t43zCAAAQJPmcYwcOnRIAwcO1MCBAyVJ6enpGjhwoObMmSNJKikpcYWJJHXv3l1bt27Vrl27FBUVpUWLFumNN97gbb0AAEBSA64ZGTVqlCzLqvf+uj5dddSoUTp69KinhwIAAC3AHfluGgAA0HIQIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCqQTGyfPlydevWTT4+Pho2bJgOHjxY77Y5OTmy2Wxui4+PT4MHBgAAzYvHMbJ27Vqlp6dr7ty5OnLkiKKiohQXF6ezZ8/Wu4+fn59KSkpcS2Fh4U0NDQAAmg+PY2Tx4sVKSUnR5MmTFRkZqczMTLVr107Z2dn17mOz2RQcHOxagoKCbmpoAADQfHgUI9XV1Tp8+LBiY2N/+gFeXoqNjVV+fn69+12+fFnh4eEKCwvThAkT9Nlnn13zOFVVVSovL3dbAABA8+RRjJw/f141NTVXndkICgpSaWlpnftEREQoOztbGzdu1Ntvv63a2lqNGDFCX331Vb3HcTgc8vf3dy1hYWGejAkAAJqQW/5umpiYGCUlJWnAgAEaOXKk3n33XQUEBOj111+vd5+MjAw5nU7XUlxcfKvHBAAAhrT2ZOO77rpLrVq1UllZmdv6srIyBQcH39DPaNOmjQYOHKiTJ0/Wu43dbpfdbvdkNAAA0ER5dGbE29tb0dHRys3Nda2rra1Vbm6uYmJibuhn1NTU6Pjx4woJCfFsUgAA0Cx5dGZEktLT05WcnKzBgwdr6NChWrp0qSorKzV58mRJUlJSkkJDQ+VwOCRJ8+fP1/Dhw9WjRw9dunRJCxcuVGFhoaZOndq4jwQAADRJHsfIxIkTde7cOc2ZM0elpaUaMGCAduzY4bqotaioSF5eP51wuXjxolJSUlRaWqpOnTopOjpaeXl5ioyMbLxHAQAAmiyPY0SS0tLSlJaWVud9+/btc7u9ZMkSLVmypCGHAQAALQDfTQMAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjGhQjy5cvV7du3eTj46Nhw4bp4MGD19x+3bp16tWrl3x8fNSvXz9t27atQcMCAIDmx+MYWbt2rdLT0zV37lwdOXJEUVFRiouL09mzZ+vcPi8vT5MmTdKUKVN09OhRJSYmKjExUSdOnLjp4QEAQNPncYwsXrxYKSkpmjx5siIjI5WZmal27dopOzu7zu1fffVVjRs3Ts8//7x69+6tl156SYMGDdKyZctuengAAND0eRQj1dXVOnz4sGJjY3/6AV5eio2NVX5+fp375Ofnu20vSXFxcfVuDwAAWpbWnmx8/vx51dTUKCgoyG19UFCQPv/88zr3KS0trXP70tLSeo9TVVWlqqoq122n0ylJKi8v92Tc26626lvTIzQbd/p/1k0Fz8nGw3Oy8fC8bBxN4Tl5ZUbLsq65nUcxcrs4HA7NmzfvqvVhYWEGpoEJ/ktNTwC44zmJO01Tek5WVFTI39+/3vs9ipG77rpLrVq1UllZmdv6srIyBQcH17lPcHCwR9tLUkZGhtLT0123a2trdeHCBf3iF7+QzWbzZGT8THl5ucLCwlRcXCw/Pz/T4wCSeF7izsNzsvFYlqWKigp16dLlmtt5FCPe3t6Kjo5Wbm6uEhMTJf0YCrm5uUpLS6tzn5iYGOXm5mrmzJmudbt27VJMTEy9x7Hb7bLb7W7rOnbs6MmouAY/Pz/+C4Y7Ds9L3Gl4TjaOa50RucLjl2nS09OVnJyswYMHa+jQoVq6dKkqKys1efJkSVJSUpJCQ0PlcDgkSc8995xGjhypRYsWKT4+XmvWrNGhQ4eUlZXl6aEBAEAz5HGMTJw4UefOndOcOXNUWlqqAQMGaMeOHa6LVIuKiuTl9dObdEaMGKHVq1frhRde0OzZs9WzZ09t2LBBffv2bbxHAQAAmiybdb1LXNFsVFVVyeFwKCMj46qXwQBTeF7iTsNz8vYjRgAAgFF8UR4AADCKGAEAAEYRIwAAwChipIXiW5MBAHcKYqQFqaioUFZWloYOHaqoqCjT4wCAcXv27FFkZGSd3/PidDrVp08f/fOf/zQwWctCjLQABw4cUHJyskJCQvTKK69o9OjR+uijj0yPhRbsv//9r+vfxcXFmjNnjp5//nn+Rx+33dKlS5WSklLnJ636+/tr2rRpWrx4sYHJWhbe2ttMlZaWKicnR2+++abKy8v1+OOPKzMzU5988okiIyNNj4cW6vjx40pISFBxcbF69uypNWvWaNy4caqsrJSXl5cqKyu1fv1619dNALdaeHi4duzYod69e9d5/+eff66xY8eqqKjoNk/WsnBmpBlKSEhQRESEPv30Uy1dulTffPONXnvtNdNjAZo1a5b69eunAwcOaNSoUXrooYcUHx8vp9Opixcvatq0aVqwYIHpMdGClJWVqU2bNvXe37p1a507d+42TtQyefxx8Ljzbd++Xc8++6ymT5+unj17mh4HcPn444+1Z88e9e/fX1FRUcrKytIzzzzj+gqJGTNmaPjw4YanREsSGhqqEydOqEePHnXe/+mnnyokJOQ2T9XycGakGfrggw9UUVGh6OhoDRs2TMuWLdP58+dNjwXowoULCg4OliR16NBB7du3V6dOnVz3d+rUSRUVFabGQwv0y1/+Un/84x/1/fffX3Xfd999p7lz5+qhhx4yMFnLwjUjzVhlZaXWrl2r7OxsHTx4UDU1NVq8eLGefvpp+fr6mh4PLZCXl5fKysoUEBAgSfL19dWnn36q7t27S/rxlHmXLl1UU1Njcky0IGVlZRo0aJBatWqltLQ0RURESPrxWpHly5erpqZGR44ccX0ZLG4NYqSFKCgo0Jtvvqm33npLly5d0pgxY7Rp0ybTY6GF8fLy0vjx411fPrZ582aNHj1a7du3l/TjF5Tt2LGDGMFtVVhYqOnTp2vnzp268ifRZrMpLi5Oy5cvd8Uybh1ipIWpqanR5s2blZ2dTYzgtps8efINbbdq1apbPAlwtYsXL+rkyZOyLEs9e/Z0ewkRtxYxAgAAjOICVgAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKP+D22J+/qTJEVoAAAAAElFTkSuQmCC", + "image/png": "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GRIjR46MH//4x3HmmWfGd7/73XqPmTZtWuzevbu6bN68+Vg3EwDIpHVDdv7IRz4SrVq1im3bttWqT9tpLsiRaNOmTVxwwQWxYcOGevcpLy8vCgDQ/DWoZ6Rt27YxdOjQWL58eXVdGnZJ26kH5EikYZ5169ZF165dG95aAKBl94wkaVnvhAkT4qKLLopLLrkkZs+eHXv37i1W1yRpSKZ79+7FvI/kzjvvjGHDhkWfPn3inXfeibvuuqtY2nvjjTc2/qsBAJp/GLn22mtjx44dcccddxSTVtNckGeeeaZ6UuumTZuKFTZVdu3aVSwFTvuefvrpRc/KqlWrimXBAAANDiPJ5MmTi1KXFStW1Nq+9957iwIAUBf3pgEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQCg6YWROXPmRK9evaJdu3Zx6aWXxosvvnjY/R955JHo169fsf/AgQPj6aefPtr2AgAtPYwsWrQopk6dGtOnT4+XX345Bg8eHGPHjo3t27fXuf+qVaviuuuui4kTJ8batWvjmmuuKcqrr77aGO0HAFpaGLnnnnti0qRJcf3110f//v1j7ty50aFDh5g/f36d+993331xxRVXxFe/+tU477zz4hvf+EZceOGFcf/99zdG+wGAlhRG9u3bFy+99FKMHj36T09w0knF9urVq+s8JtXX3D9JPSn17Q8AtCytG7Lzzp07Y//+/dG5c+da9Wn7N7/5TZ3HbN26tc79U319Kisri1Jl9+7dxc+Kioo4kR2ofC93E5qNE/3/dVPhM9l4fCYbj89ly/lMVvz/NpZKpcYLI8fLzJkzY8aMGYfU9+jRI0t7OP46zfauc2LxmeRE06kJ/Tv57rvvRqdOnRonjHzkIx+JVq1axbZt22rVp+0uXbrUeUyqb8j+ybRp04pJslUOHDgQb7/9dvzZn/1ZlJWVNaTJHJRQU6DbvHlzdOzY0XvDCcHnkhONz2TjST0iKYh069btsPs1KIy0bds2hg4dGsuXLy9WxFQFhbQ9efLkOo8ZPnx48fiUKVOq65YtW1bU16e8vLwoNZ122mkNaSqHkYKIMMKJxueSE43PZOM4XI/IUQ/TpB6LCRMmxEUXXRSXXHJJzJ49O/bu3VusrknGjx8f3bt3L4ZakltvvTVGjhwZd999d4wbNy4efvjhWLNmTcybN+9oXhMA0Mw0OIxce+21sWPHjrjjjjuKSahDhgyJZ555pnqS6qZNm4oVNlVGjBgRCxcujK9//etx++23x7nnnhuLFy+OAQMGNO4rAQCapLLSB01xpdlIK5RSj1Wak3PwMBjk4nPJicZn8vgTRgCArNwoDwDIShgBALISRgCArISRFspdkwE4UQgjLUi6Cl66vku6PszgwYNzNwcgu2effba4A31d93lJ90U7//zz4xe/+EWWtrUkwkgLsHLlyuJCdV27do1vfetbcdlll8ULL7yQu1m0YP/7v/9b/Xu6PUG6btFXv/pV/+hz3KULd06aNKnOq1KnK4d+6Utfinvuucf/mWPM0t5mKl2QbsGCBfH973+/SPyf+9znYu7cufHrX/+6+CsAcli3bl1cddVVRQBJF0BMV2S+4ooriqs4p4slpp+PPvpo9e0m4Fjr2bNnceHO8847r87H0x3px4wZU1zQk2NHz0gzlP6x79u3b/znf/5nkfp///vfx7e//e3czYK47bbbYuDAgUVv3ahRo+LTn/50cZuI1B2+a9eu4q/QWbNmeac4btKNW9u0aVPv461bty6uOs4Jdjl4TnxLliyJr3zlK3HTTTcVf33CieJXv/pVMUY/aNCgYt5SmsP05S9/ufoWErfccksMGzYsdzNpQdK91NKE/j59+tT5ePqjLg1xc2zpGWmGnn/++WKyarrD8qWXXhr3339/7Ny5M3ezIN5+++3o0qVL8U6ccsopcfLJJ8fpp59e/c6k39NnF46XT33qU/EP//AP8f777x/y2B/+8IeYPn160YPHsWXOSDOWxt8XLVoU8+fPjxdffDH2799fTMS64YYb4tRTT83dPFqg1AOSusXPPPPMYjt9DtNfnr179y6202PdunUrPqtwPKTP3IUXXhitWrWKyZMnF0PcVXNF5syZU3wWX3755eqbwXJsCCMtxPr164vJrD/84Q/jnXfeicsvvzyeeOKJ3M2iBYaRK6+8svpGjT/5yU+K1V2ph6TqBmVpMqEwwvG0cePGYlh76dKlUXXv2LKyshg7dmwRSKrCMseOMNLCpH/k0xdA6i0RRjjerr/++iPa78EHHzzmbYGDpUnUGzZsKAJJmm9XcwiRY0sYAQCyMoEVAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACBy+n9tifv6K7ovvgAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -95,9 +95,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.12.1" } }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_custom_convert_cache.xml b/tests/test_execute/test_custom_convert_cache.xml index 534b68e8..41019b2a 100644 --- a/tests/test_execute/test_custom_convert_cache.xml +++ b/tests/test_execute/test_custom_convert_cache.xml @@ -19,4 +19,4 @@ <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> <Figure size 640x480 with 1 Axes> <container mime_type="image/png"> - <image candidates="{'*': '_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png'}" uri="_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png"> + <image candidates="{'*': '_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png'}" uri="_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png"> diff --git a/tests/test_execute/test_custom_convert_multiple_extensions_auto.ipynb b/tests/test_execute/test_custom_convert_multiple_extensions_auto.ipynb index d2aff784..1f8e5252 100644 --- a/tests/test_execute/test_custom_convert_multiple_extensions_auto.ipynb +++ b/tests/test_execute/test_custom_convert_multiple_extensions_auto.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "raw", - "id": "d0aefb9b", + "id": "9aa33dc8", "metadata": {}, "source": [ "---\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "c67b3701", + "id": "4e7fce27", "metadata": {}, "source": [ "# Custom Formats" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "ef881a36", + "id": "05fbf7bc", "metadata": { "echo": true }, @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "f7710843", + "id": "6a0f0b0e", "metadata": { "fig.height": 5, "fig.width": 8, @@ -59,7 +59,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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GRIjR46MH//4x3HmmWfGd7/73XqPmTZtWuzevbu6bN68+Vg3EwDIpHVDdv7IRz4SrVq1im3bttWqT9tpLsiRaNOmTVxwwQWxYcOGevcpLy8vCgDQ/DWoZ6Rt27YxdOjQWL58eXVdGnZJ26kH5EikYZ5169ZF165dG95aAKBl94wkaVnvhAkT4qKLLopLLrkkZs+eHXv37i1W1yRpSKZ79+7FvI/kzjvvjGHDhkWfPn3inXfeibvuuqtY2nvjjTc2/qsBAJp/GLn22mtjx44dcccddxSTVtNckGeeeaZ6UuumTZuKFTZVdu3aVSwFTvuefvrpRc/KqlWrimXBAAANDiPJ5MmTi1KXFStW1Nq+9957iwIAUBf3pgEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQCg6YWROXPmRK9evaJdu3Zx6aWXxosvvnjY/R955JHo169fsf/AgQPj6aefPtr2AgAtPYwsWrQopk6dGtOnT4+XX345Bg8eHGPHjo3t27fXuf+qVaviuuuui4kTJ8batWvjmmuuKcqrr77aGO0HAFpaGLnnnnti0qRJcf3110f//v1j7ty50aFDh5g/f36d+993331xxRVXxFe/+tU477zz4hvf+EZceOGFcf/99zdG+wGAlhRG9u3bFy+99FKMHj36T09w0knF9urVq+s8JtXX3D9JPSn17Q8AtCytG7Lzzp07Y//+/dG5c+da9Wn7N7/5TZ3HbN26tc79U319Kisri1Jl9+7dxc+Kioo4kR2ofC93E5qNE/3/dVPhM9l4fCYbj89ly/lMVvz/NpZKpcYLI8fLzJkzY8aMGYfU9+jRI0t7OP46zfauc2LxmeRE06kJ/Tv57rvvRqdOnRonjHzkIx+JVq1axbZt22rVp+0uXbrUeUyqb8j+ybRp04pJslUOHDgQb7/9dvzZn/1ZlJWVNaTJHJRQU6DbvHlzdOzY0XvDCcHnkhONz2TjST0iKYh069btsPs1KIy0bds2hg4dGsuXLy9WxFQFhbQ9efLkOo8ZPnx48fiUKVOq65YtW1bU16e8vLwoNZ122mkNaSqHkYKIMMKJxueSE43PZOM4XI/IUQ/TpB6LCRMmxEUXXRSXXHJJzJ49O/bu3VusrknGjx8f3bt3L4ZakltvvTVGjhwZd999d4wbNy4efvjhWLNmTcybN+9oXhMA0Mw0OIxce+21sWPHjrjjjjuKSahDhgyJZ555pnqS6qZNm4oVNlVGjBgRCxcujK9//etx++23x7nnnhuLFy+OAQMGNO4rAQCapLLSB01xpdlIK5RSj1Wak3PwMBjk4nPJicZn8vgTRgCArNwoDwDIShgBALISRgCArISRFspdkwE4UQgjLUi6Cl66vku6PszgwYNzNwcgu2effba4A31d93lJ90U7//zz4xe/+EWWtrUkwkgLsHLlyuJCdV27do1vfetbcdlll8ULL7yQu1m0YP/7v/9b/Xu6PUG6btFXv/pV/+hz3KULd06aNKnOq1KnK4d+6Utfinvuucf/mWPM0t5mKl2QbsGCBfH973+/SPyf+9znYu7cufHrX/+6+CsAcli3bl1cddVVRQBJF0BMV2S+4ooriqs4p4slpp+PPvpo9e0m4Fjr2bNnceHO8847r87H0x3px4wZU1zQk2NHz0gzlP6x79u3b/znf/5nkfp///vfx7e//e3czYK47bbbYuDAgUVv3ahRo+LTn/50cZuI1B2+a9eu4q/QWbNmeac4btKNW9u0aVPv461bty6uOs4Jdjl4TnxLliyJr3zlK3HTTTcVf33CieJXv/pVMUY/aNCgYt5SmsP05S9/ufoWErfccksMGzYsdzNpQdK91NKE/j59+tT5ePqjLg1xc2zpGWmGnn/++WKyarrD8qWXXhr3339/7Ny5M3ezIN5+++3o0qVL8U6ccsopcfLJJ8fpp59e/c6k39NnF46XT33qU/EP//AP8f777x/y2B/+8IeYPn160YPHsWXOSDOWxt8XLVoU8+fPjxdffDH2799fTMS64YYb4tRTT83dPFqg1AOSusXPPPPMYjt9DtNfnr179y6202PdunUrPqtwPKTP3IUXXhitWrWKyZMnF0PcVXNF5syZU3wWX3755eqbwXJsCCMtxPr164vJrD/84Q/jnXfeicsvvzyeeOKJ3M2iBYaRK6+8svpGjT/5yU+K1V2ph6TqBmVpMqEwwvG0cePGYlh76dKlUXXv2LKyshg7dmwRSKrCMseOMNLCpH/k0xdA6i0RRjjerr/++iPa78EHHzzmbYGDpUnUGzZsKAJJmm9XcwiRY0sYAQCyMoEVAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACBy+n9tifv6K7ovvgAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -95,9 +95,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.12.1" } }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_custom_convert_multiple_extensions_auto.xml b/tests/test_execute/test_custom_convert_multiple_extensions_auto.xml index 47bc0197..aadb1bae 100644 --- a/tests/test_execute/test_custom_convert_multiple_extensions_auto.xml +++ b/tests/test_execute/test_custom_convert_multiple_extensions_auto.xml @@ -19,4 +19,4 @@ <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> <Figure size 640x480 with 1 Axes> <container mime_type="image/png"> - <image candidates="{'*': '_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png'}" uri="_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png"> + <image candidates="{'*': '_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png'}" uri="_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png"> diff --git a/tests/test_execute/test_custom_convert_multiple_extensions_cache.ipynb b/tests/test_execute/test_custom_convert_multiple_extensions_cache.ipynb index 8db720f6..c4c0be38 100644 --- a/tests/test_execute/test_custom_convert_multiple_extensions_cache.ipynb +++ b/tests/test_execute/test_custom_convert_multiple_extensions_cache.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "raw", - "id": "e22c2f16", + "id": "a4aceef0", "metadata": {}, "source": [ "---\n", @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "cb24d589", + "id": "72516e10", "metadata": {}, "source": [ "# Custom Formats" @@ -23,7 +23,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "d8eca9cd", + "id": "3364aedc", "metadata": { "echo": true }, @@ -37,7 +37,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "ba6eb697", + "id": "c51d9d29", "metadata": { "fig.height": 5, "fig.width": 8, @@ -59,7 +59,7 @@ }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGvCAYAAACJsNWPAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAH85JREFUeJzt3Q2QVeV9P/DfyssCKqiN8iYCGSyIvCm+AJkJxCBoiNVM2lgzGYgikxoxUjpxgk2lmOlAY1RsJBKaIJNYRqqJaFQkBIPEgDUopmgntBgFTHityArGJYX7n+fMfze7sIssLjzs7ucz87h7nnvOPc+93uF+93k5p6xUKpUCACCTk3KdGAAgEUYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRoCsysrK4h//8R+P+3kXLFhQnPvNN9887ucGahNGoBlYt25d/OVf/mX07Nkz2rVrF927d4/LL788vv3tb+duWrO0cOHCmD17du5mQLMhjEATt2rVqrjooovi17/+dUyaNCnuv//+uPHGG+Okk06K++67L3fzmiVhBBpX60Z+PuA4+6d/+qfo1KlT/OpXv4rTTjut1mPbt2/3/wM44ekZgSbu9ddfj/PPP/+QIJKcddZZtbYffPDBuOyyy4r68vLy6N+/fzzwwAOHHNerV6/49Kc/HStWrCh6Xdq3bx8DBw4stpMf//jHxXYaEho6dGisXbu21vFf/OIX45RTTonf/va3MXbs2Dj55JOjW7duceedd8aR3Cj8d7/7Xdxwww3RuXPnop3p9c2fP/+I3o80D2Ty5Mnxb//2b9G3b9/qNq5cufKIjv/Od75TnC+dN7X55ptvjnfeeaf68VGjRsVTTz0VGzduLM6VSnq/gKOnZwSauDRPZPXq1fHqq6/GgAEDDrtvCh7pi/Yv/uIvonXr1vGTn/wkvvzlL8eBAweKL92aNmzYEJ///OfjS1/6UnzhC1+Ib33rW3HVVVfF3Llz4/bbby+OS2bOnBmf+9znYv369cXQUJX9+/fHFVdcEcOGDYtvfvOb8cwzz8T06dPj//7v/4pQUp9t27YVx1SFijPPPDOWLFkSEydOjIqKipgyZcoHvifPPfdcLFq0KL7yla8UoSIFjNSWF1988bDvUZpIO2PGjBg9enTcdNNNxWtK71nqdfrlL38Zbdq0ib//+7+P3bt3x1tvvRX33ntvcVwKXsCHUAKatJ/+9KelVq1aFWX48OGl2267rbR06dLSvn37Dtn3vffeO6Ru7NixpY9+9KO16nr27Jm6L0qrVq2qrkvPmerat29f2rhxY3X9d7/73aL+5z//eXXdhAkTirpbbrmluu7AgQOlcePGldq2bVvasWNHdX3ab/r06dXbEydOLHXt2rW0c+fOWm3667/+61KnTp3qfA01pedLZc2aNdV1qb3t2rUrfeYzn6mue/DBB4v93njjjWJ7+/btRdvGjBlT2r9/f/V+999/f7Hf/Pnzq+vS60jvEdA4DNNAE5dWzaSekdTbkSaxpl6INDSSVtQ88cQTtfZNwy1V0l/3O3fujJEjRxbDKWm7pjSEM3z48OrtSy+9tPiZhnnOOeecQ+rTcxws9WxUqerp2LdvX/zsZz+r87WkLPGjH/2o6IFJv6f2VZX0mlIbX3755Q98T1K709BMldTeq6++OpYuXVr02NQltSm1LfW81OzhSZOCO3bsWAzNAMeGMALNwMUXX1zM49i1a1cxFDFt2rR49913i+W+//Vf/1W9XxpqSEMQaQ5HmmOShkDSkEtycBipGTiSNEk26dGjR5316dw1pS/0j370o7Xq/vzP/7z4Wd+1PXbs2FHMz5g3b17Rtprl+uuvP+JJueeee+4hdenc7733XnGOuqQ5IEmaZ1JT27Zti9dR9TjQ+MwZgWYkfXGmYJJK+vJNX+CPPPJIMVcjTXT95Cc/Gf369Yt77rmnCBVp/6effrqY+5DmjdTUqlWrOs9RX/2RTEz9IFVtSHNUJkyYUOc+gwYN+tDnAU4swgg0U2kVTLJly5biZ5qsWllZWQzd1Oz1+PnPf35Mzp+CRRq6qeoNSf77v/+7+Fnf6pPUA3LqqacWQympB+do/c///M8hdencHTp0KM5R30TgJE1ardmjk4Zu3njjjVrtSUNOQOMxTANNXAoTdfVKpB6PmsMOVT0aNfdNQzNpue+xki7AViWdN22nFSmph6YuqY2f/exni3kjaXXQweobYjlYmkNTc27J5s2b4/HHH48xY8bU27OTwkbqKfqXf/mXWu/R97///eJ9GjduXHVdGuY6eFgLOHp6RqCJu+WWW4q5EJ/5zGeKIZj0l3y6Kmta2pp6IKrmWqQv4vRlmyaHpuW6e/bsiX/9138trjlS1XvSmNL1PdJy3jTckia5puW5aRJomqNSX+9EMmvWrCJgpWPS5NE0kfbtt98uwkWaZJp+/yBp+W6a8FpzaW+Slu3WJ7UpzbVJ+6RlwGlCcOolScemYa80dFQlTY5N7+/UqVOLx9LS3vS+AkepkVblAJksWbKkdMMNN5T69etXOuWUU4rlqX369CmW1W7btq3Wvk888URp0KBBxTLXXr16lf75n/+5WLJac4lrkpatpuWrB0v73XzzzbXq0nGp/q677qq1tPfkk08uvf7668VS2Q4dOpQ6d+5cLOGtuWy2rqW9SWp3Ok+PHj1Kbdq0KXXp0qX0yU9+sjRv3rwPfD+q2vjQQw+Vzj333FJ5eXnpggsuqLX0uK6lvTWX8qb3Mp03tfmmm24q7dq1q9Y+e/bsKX3+858vnXbaacVzWOYLH05Z+s/RBhmAuqQrsD766KNF78vxluZzpAu41RwiAk5s5owAAFkJIwBAVsIIAJCVOSMAQFZ6RgCArIQRACCrJnHRs3RZ6d///vfFZaJdhhkAmoZ09ZB0085u3brVuht2kwwjKYgcfKdQAKBpSLdkOPvss5t2GEk9IlUvpmPHjrmbAwAcgYqKiqIzoep7vEmHkaqhmRREhBEAaFo+aIqFCawAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIANB0wsgDDzwQgwYNqr4s+/Dhw2PJkiWHPeaRRx6Jfv36Rbt27WLgwIHx9NNPf9g2AwAtNYykO+7NmjUrXnrppVizZk1cdtllcfXVV8drr71W5/6rVq2K6667LiZOnBhr166Na665piivvvpqY7UfAGjiykqlUunDPMEZZ5wRd911VxE4DnbttdfG3r1748knn6yuGzZsWAwZMiTmzp3boLv+derUKXbv3u1GeQDQRBzp9/dRzxnZv39/PPzww0XYSMM1dVm9enWMHj26Vt3YsWOLegCApHVD34Z169YV4eP999+PU045JR577LHo379/nftu3bo1OnfuXKsubaf6w6msrCxKzWQFADRPDQ4jffv2jVdeeaXocnn00UdjwoQJ8dxzz9UbSI7GzJkzY8aMGY32fNBS9fraU7mb0Gy8OWtc7iZAs9XgYZq2bdtGnz59YujQoUVoGDx4cNx333117tulS5fYtm1brbq0neoPZ9q0aUXYqSqbN29uaDMBgJZynZEDBw7UGlKpKQ3nLF++vFbdsmXL6p1jUqW8vLx6+XBVAQCapwYN06QeiyuvvDLOOeecePfdd2PhwoWxYsWKWLp0afH4+PHjo3v37kWPSXLrrbfGyJEj4+67745x48YVE17TkuB58+Ydm1cDADTvMLJ9+/YicGzZsqVYqpMugJaCyOWXX148vmnTpjjppD91towYMaIILF//+tfj9ttvj3PPPTcWL14cAwYMaPxXAgC0zOuMHA+uMwJHxwTWxmMCK5yA1xkBAGgMwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAATSeMzJw5My6++OI49dRT46yzzoprrrkm1q9ff9hjFixYEGVlZbVKu3btPmy7AYCWGEaee+65uPnmm+OFF16IZcuWxR//+McYM2ZM7N2797DHdezYMbZs2VJdNm7c+GHbDQA0E60bsvMzzzxzSK9H6iF56aWX4uMf/3i9x6XekC5duhx9KwGAZutDzRnZvXt38fOMM8447H579uyJnj17Ro8ePeLqq6+O11577bD7V1ZWRkVFRa0CADRPRx1GDhw4EFOmTImPfexjMWDAgHr369u3b8yfPz8ef/zxeOihh4rjRowYEW+99dZh56Z06tSpuqQQAwA0T2WlUql0NAfedNNNsWTJknj++efj7LPPPuLj0jyT8847L6677rr4xje+UW/PSCpVUs9ICiSpJybNPwGOTK+vPeWtaiRvzhrnvYQGSt/fqVPhg76/GzRnpMrkyZPjySefjJUrVzYoiCRt2rSJCy64IDZs2FDvPuXl5UUBAJq/Bg3TpE6UFEQee+yxePbZZ6N3794NPuH+/ftj3bp10bVr1wYfCwA0Pw3qGUnLehcuXFjM/0jXGtm6dWtRn7pg2rdvX/w+fvz46N69ezHvI7nzzjtj2LBh0adPn3jnnXfirrvuKpb23njjjcfi9QAAzTmMPPDAA8XPUaNG1ap/8MEH44tf/GLx+6ZNm+Kkk/7U4bJr166YNGlSEVxOP/30GDp0aKxatSr69+/fOK8AAGiZE1hPxAkwQG0msDYeE1jh2H1/uzcNAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBA0wkjM2fOjIsvvjhOPfXUOOuss+Kaa66J9evXf+BxjzzySPTr1y/atWsXAwcOjKeffvrDtBkAaKlh5Lnnnoubb745XnjhhVi2bFn88Y9/jDFjxsTevXvrPWbVqlVx3XXXxcSJE2Pt2rVFgEnl1VdfbYz2AwBNXFmpVCod7cE7duwoekhSSPn4xz9e5z7XXnttEVaefPLJ6rphw4bFkCFDYu7cuUd0noqKiujUqVPs3r07OnbseLTNhRan19eeyt2EZuPNWeNyNwGanCP9/v5Qc0bSkydnnHFGvfusXr06Ro8eXatu7NixRX19KisrixdQswAAzVProz3wwIEDMWXKlPjYxz4WAwYMqHe/rVu3RufOnWvVpe1Uf7i5KTNmzDjapgFwAtNj1zjebEa9dUfdM5LmjqR5Hw8//HDjtigipk2bVvS6VJXNmzc3+jkAgCbcMzJ58uRiDsjKlSvj7LPPPuy+Xbp0iW3bttWqS9upvj7l5eVFAQCavwb1jKS5rimIPPbYY/Hss89G7969P/CY4cOHx/Lly2vVpZU4qR4AoHVDh2YWLlwYjz/+eHGtkap5H2mmbPv27Yvfx48fH927dy/mfSS33nprjBw5Mu6+++4YN25cMayzZs2amDdvnncfAGhYz8gDDzxQzOEYNWpUdO3atbosWrSoep9NmzbFli1bqrdHjBhRBJgUPgYPHhyPPvpoLF68+LCTXgGAlqNBPSNHckmSFStWHFL3V3/1V0UBADiYe9MAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggA0LTCyMqVK+Oqq66Kbt26RVlZWSxevPiw+69YsaLY7+CydevWD9NuAKClhpG9e/fG4MGDY86cOQ06bv369bFly5bqctZZZzX01ABAM9S6oQdceeWVRWmoFD5OO+20Bh8HADRvx23OyJAhQ6Jr165x+eWXxy9/+cvjdVoAoLn1jDRUCiBz586Niy66KCorK+N73/tejBo1Kv7jP/4jLrzwwjqPSfulUqWiouJYNxMAaK5hpG/fvkWpMmLEiHj99dfj3nvvjR/+8Id1HjNz5syYMWPGsW4aANBSl/ZecsklsWHDhnofnzZtWuzevbu6bN68+bi2DwBoRj0jdXnllVeK4Zv6lJeXFwUAaP4aHEb27NlTq1fjjTfeKMLFGWecEeecc07Rq/G73/0ufvCDHxSPz549O3r37h3nn39+vP/++8WckWeffTZ++tOfNu4rAQBaRhhZs2ZNfOITn6jenjp1avFzwoQJsWDBguIaIps2bap+fN++ffF3f/d3RUDp0KFDDBo0KH72s5/Veg4AoOVqcBhJK2FKpVK9j6dAUtNtt91WFACAurg3DQCQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQNMKIytXroyrrroqunXrFmVlZbF48eIPPGbFihVx4YUXRnl5efTp0ycWLFhwtO0FAFp6GNm7d28MHjw45syZc0T7v/HGGzFu3Lj4xCc+Ea+88kpMmTIlbrzxxli6dOnRtBcAaGZaN/SAK6+8sihHau7cudG7d++4++67i+3zzjsvnn/++bj33ntj7NixDT09ANDMHPM5I6tXr47Ro0fXqkshJNXXp7KyMioqKmoVAKB5anDPSENt3bo1OnfuXKsubaeA8Yc//CHat29/yDEzZ86MGTNmRFPT62tP5W5Cs/HmrHG5mwBAS15NM23atNi9e3d12bx5c+4mAQBNtWekS5cusW3btlp1abtjx4519ookadVNKgBA83fMe0aGDx8ey5cvr1W3bNmyoh4AoMFhZM+ePcUS3VSqlu6m3zdt2lQ9xDJ+/Pjq/f/mb/4mfvvb38Ztt90Wv/nNb+I73/lO/Pu//3v87d/+rXcfAGh4GFmzZk1ccMEFRUmmTp1a/H7HHXcU21u2bKkOJkla1vvUU08VvSHp+iRpie/3vvc9y3oBgKObMzJq1KgolUr1Pl7X1VXTMWvXrm3oqQCAFuCEXE0DALQcwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAATS+MzJkzJ3r16hXt2rWLSy+9NF588cV6912wYEGUlZXVKuk4AICjCiOLFi2KqVOnxvTp0+Pll1+OwYMHx9ixY2P79u31HtOxY8fYsmVLddm4caN3HwA4ujByzz33xKRJk+L666+P/v37x9y5c6NDhw4xf/78eo9JvSFdunSpLp07d27oaQGAZqpBYWTfvn3x0ksvxejRo//0BCedVGyvXr263uP27NkTPXv2jB49esTVV18dr7322mHPU1lZGRUVFbUKANA8NSiM7Ny5M/bv339Iz0ba3rp1a53H9O3bt+g1efzxx+Ohhx6KAwcOxIgRI+Ktt96q9zwzZ86MTp06VZcUYgCA5umYr6YZPnx4jB8/PoYMGRIjR46MH//4x3HmmWfGd7/73XqPmTZtWuzevbu6bN68+Vg3EwDIpHVDdv7IRz4SrVq1im3bttWqT9tpLsiRaNOmTVxwwQWxYcOGevcpLy8vCgDQ/DWoZ6Rt27YxdOjQWL58eXVdGnZJ26kH5EikYZ5169ZF165dG95aAKBl94wkaVnvhAkT4qKLLopLLrkkZs+eHXv37i1W1yRpSKZ79+7FvI/kzjvvjGHDhkWfPn3inXfeibvuuqtY2nvjjTc2/qsBAJp/GLn22mtjx44dcccddxSTVtNckGeeeaZ6UuumTZuKFTZVdu3aVSwFTvuefvrpRc/KqlWrimXBAAANDiPJ5MmTi1KXFStW1Nq+9957iwIAUBf3pgEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQCg6YWROXPmRK9evaJdu3Zx6aWXxosvvnjY/R955JHo169fsf/AgQPj6aefPtr2AgAtPYwsWrQopk6dGtOnT4+XX345Bg8eHGPHjo3t27fXuf+qVaviuuuui4kTJ8batWvjmmuuKcqrr77aGO0HAFpaGLnnnnti0qRJcf3110f//v1j7ty50aFDh5g/f36d+993331xxRVXxFe/+tU477zz4hvf+EZceOGFcf/99zdG+wGAlhRG9u3bFy+99FKMHj36T09w0knF9urVq+s8JtXX3D9JPSn17Q8AtCytG7Lzzp07Y//+/dG5c+da9Wn7N7/5TZ3HbN26tc79U319Kisri1Jl9+7dxc+Kioo4kR2ofC93E5qNE/3/dVPhM9l4fCYbj89ly/lMVvz/NpZKpcYLI8fLzJkzY8aMGYfU9+jRI0t7OP46zfauc2LxmeRE06kJ/Tv57rvvRqdOnRonjHzkIx+JVq1axbZt22rVp+0uXbrUeUyqb8j+ybRp04pJslUOHDgQb7/9dvzZn/1ZlJWVNaTJHJRQU6DbvHlzdOzY0XvDCcHnkhONz2TjST0iKYh069btsPs1KIy0bds2hg4dGsuXLy9WxFQFhbQ9efLkOo8ZPnx48fiUKVOq65YtW1bU16e8vLwoNZ122mkNaSqHkYKIMMKJxueSE43PZOM4XI/IUQ/TpB6LCRMmxEUXXRSXXHJJzJ49O/bu3VusrknGjx8f3bt3L4ZakltvvTVGjhwZd999d4wbNy4efvjhWLNmTcybN+9oXhMA0Mw0OIxce+21sWPHjrjjjjuKSahDhgyJZ555pnqS6qZNm4oVNlVGjBgRCxcujK9//etx++23x7nnnhuLFy+OAQMGNO4rAQCapLLSB01xpdlIK5RSj1Wak3PwMBjk4nPJicZn8vgTRgCArNwoDwDIShgBALISRgCArISRFspdkwE4UQgjLUi6Cl66vku6PszgwYNzNwcgu2effba4A31d93lJ90U7//zz4xe/+EWWtrUkwkgLsHLlyuJCdV27do1vfetbcdlll8ULL7yQu1m0YP/7v/9b/Xu6PUG6btFXv/pV/+hz3KULd06aNKnOq1KnK4d+6Utfinvuucf/mWPM0t5mKl2QbsGCBfH973+/SPyf+9znYu7cufHrX/+6+CsAcli3bl1cddVVRQBJF0BMV2S+4ooriqs4p4slpp+PPvpo9e0m4Fjr2bNnceHO8847r87H0x3px4wZU1zQk2NHz0gzlP6x79u3b/znf/5nkfp///vfx7e//e3czYK47bbbYuDAgUVv3ahRo+LTn/50cZuI1B2+a9eu4q/QWbNmeac4btKNW9u0aVPv461bty6uOs4Jdjl4TnxLliyJr3zlK3HTTTcVf33CieJXv/pVMUY/aNCgYt5SmsP05S9/ufoWErfccksMGzYsdzNpQdK91NKE/j59+tT5ePqjLg1xc2zpGWmGnn/++WKyarrD8qWXXhr3339/7Ny5M3ezIN5+++3o0qVL8U6ccsopcfLJJ8fpp59e/c6k39NnF46XT33qU/EP//AP8f777x/y2B/+8IeYPn160YPHsWXOSDOWxt8XLVoU8+fPjxdffDH2799fTMS64YYb4tRTT83dPFqg1AOSusXPPPPMYjt9DtNfnr179y6202PdunUrPqtwPKTP3IUXXhitWrWKyZMnF0PcVXNF5syZU3wWX3755eqbwXJsCCMtxPr164vJrD/84Q/jnXfeicsvvzyeeOKJ3M2iBYaRK6+8svpGjT/5yU+K1V2ph6TqBmVpMqEwwvG0cePGYlh76dKlUXXv2LKyshg7dmwRSKrCMseOMNLCpH/k0xdA6i0RRjjerr/++iPa78EHHzzmbYGDpUnUGzZsKAJJmm9XcwiRY0sYAQCyMoEVAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACBy+n9tifv6K7ovvgAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -95,9 +95,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.12.1" } }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/tests/test_execute/test_custom_convert_multiple_extensions_cache.xml b/tests/test_execute/test_custom_convert_multiple_extensions_cache.xml index 47bc0197..aadb1bae 100644 --- a/tests/test_execute/test_custom_convert_multiple_extensions_cache.xml +++ b/tests/test_execute/test_custom_convert_multiple_extensions_cache.xml @@ -19,4 +19,4 @@ <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> <Figure size 640x480 with 1 Axes> <container mime_type="image/png"> - <image candidates="{'*': '_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png'}" uri="_build/jupyter_execute/c9eff9c3855d539f1d3367c7dc0ece914fa84c3badb7513a2e485c65ed57a262.png"> + <image candidates="{'*': '_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png'}" uri="_build/jupyter_execute/b9d3d90a9968c7fb6f966f8c1b55dff80df38bd15052a845b270a25002d1be72.png"> diff --git a/tests/test_glue/test_parser.txt b/tests/test_glue/test_parser.txt index d2b975b6..d23398ac 100644 --- a/tests/test_glue/test_parser.txt +++ b/tests/test_glue/test_parser.txt @@ -4,25 +4,25 @@ Glue Tests <container cell_index="1" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from myst_nb import glue <container cell_index="2" cell_metadata="{}" classes="cell" exec_count="2" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> glue("key_text1", "text1") glue("key_float", 3.14159) <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output text_plain" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output text_plain" language="myst-ansi" linenos="0" xml:space="preserve"> 'text1' - <literal_block classes="output text_plain" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output text_plain" language="myst-ansi" linenos="0" xml:space="preserve"> 3.14159 <container cell_index="3" cell_metadata="{}" classes="cell" exec_count="3" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> glue("key_undisplayed", "undisplayed", display=False) <container cell_index="4" cell_metadata="{'scrolled': True}" classes="cell" exec_count="4" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import pandas as pd df = pd.DataFrame({"header": [1, 2, 3]}) @@ -68,7 +68,7 @@ </div> <container cell_index="5" cell_metadata="{}" classes="cell" exec_count="5" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import matplotlib.pyplot as plt plt.plot([1, 2, 3]) @@ -149,7 +149,7 @@ Math <container cell_index="8" cell_metadata="{}" classes="cell" exec_count="6" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sympy as sym f = sym.Function("f") @@ -158,8 +158,8 @@ f = y(n) - 2 * y(n - 1 / sym.pi) - 5 * y(n - 2) glue("sym_eq", sym.rsolve(f, y(n), [1, 4])) <container classes="cell_output" nb_element="cell_code_output"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> \displaystyle \left(\sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} - \frac{2 \sqrt{5} i}{5}\right) + \left(- \sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} + \frac{2 \sqrt{5} i}{5}\right) <target refid="equation-eq-sym"> - <math_block classes="pasted-math" docname="with_glue" ids="equation-eq-sym" label="eq-sym" nowrap="False" number="1" xml:space="preserve"> + <math_block classes="pasted-math" docname="with_glue" ids="equation-eq-sym" label="eq-sym" nowrap="0" number="1" xml:space="preserve"> \displaystyle \left(\sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} - \frac{2 \sqrt{5} i}{5}\right) + \left(- \sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} + \frac{2 \sqrt{5} i}{5}\right) diff --git a/tests/test_parser/test_complex_outputs.xml b/tests/test_parser/test_complex_outputs.xml index 13bdcc7f..d1348155 100644 --- a/tests/test_parser/test_complex_outputs.xml +++ b/tests/test_parser/test_complex_outputs.xml @@ -201,7 +201,7 @@ </table> </div> <container mime_type="text/latex"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> \begin{tabular}{lllrr} \toprule {} & a & b & c & d \\ @@ -227,7 +227,7 @@ <container classes="cell_output" nb_element="cell_code_output"> <container nb_element="mime_bundle"> <container mime_type="text/latex"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> a = b+c <container mime_type="text/plain"> <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> @@ -246,7 +246,7 @@ <container mime_type="image/png"> <image candidates="{'*': '_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png'}" uri="_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png"> <container mime_type="text/latex"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> \displaystyle \left(\sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} - \frac{2 \sqrt{5} i}{5}\right) + \left(- \sqrt{5} i\right)^{\alpha} \left(\frac{1}{2} + \frac{2 \sqrt{5} i}{5}\right) <container mime_type="text/plain"> <literal_block classes="output text_plain" language="myst-ansi" xml:space="preserve"> diff --git a/tests/test_render_outputs/test_basic_run.xml b/tests/test_render_outputs/test_basic_run.xml index 93ab5b60..a9c2fd21 100644 --- a/tests/test_render_outputs/test_basic_run.xml +++ b/tests/test_render_outputs/test_basic_run.xml @@ -6,9 +6,9 @@ some text <container cell_index="1" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> a = 1 print(a) <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> 1 diff --git a/tests/test_render_outputs/test_complex_outputs.xml b/tests/test_render_outputs/test_complex_outputs.xml index 811508b2..a593c5bf 100644 --- a/tests/test_render_outputs/test_complex_outputs.xml +++ b/tests/test_render_outputs/test_complex_outputs.xml @@ -1,7 +1,7 @@ <document source="complex_outputs"> <container cell_index="0" cell_metadata="{'init_cell': True, 'slideshow': {'slide_type': 'skip'}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import matplotlib.pyplot as plt import pandas as pd import sympy as sym @@ -89,13 +89,13 @@ Text Output <container cell_index="11" cell_metadata="{'ipub': {'text': {'format': {'backgroundcolor': '\\color{blue!10}'}}}}" classes="cell" exec_count="2" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print(""" This is some printed text, with a nicely formatted output. """) <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> This is some printed text, with a nicely formatted output. @@ -105,7 +105,7 @@ Images and Figures <container cell_index="13" cell_metadata="{'ipub': {'figure': {'caption': 'A nice picture.', 'label': 'fig:example', 'placement': '!bh'}}}" classes="cell" exec_count="3" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> Image("example.jpg", height=400) <container classes="cell_output" nb_element="cell_code_output"> <image candidates="{'*': '_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg'}" height="400" uri="_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg"> @@ -118,7 +118,7 @@ The plotting code for a matplotlib figure (\cref{fig:example_mpl}). <container cell_index="17" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': 'a', 'label': 'code:example_mpl', 'widefigure': False}, 'figure': {'caption': '', 'label': 'fig:example_mpl', 'widefigure': False}}}" classes="cell" exec_count="4" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> plt.scatter(np.random.rand(10), np.random.rand(10), label="data label") plt.ylabel(r"a y label with latex $\alpha$") plt.legend(); @@ -131,7 +131,7 @@ The plotting code for a pandas Dataframe table (\cref{tbl:example}). <container cell_index="20" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': '', 'label': 'code:example_pd', 'placement': 'H', 'widefigure': False}, 'table': {'alternate': 'gray!20', 'caption': 'An example of a table created with pandas dataframe.', 'label': 'tbl:example', 'placement': 'H'}}}" classes="cell" exec_count="5" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> df = pd.DataFrame(np.random.rand(3, 4), columns=["a", "b", "c", "d"]) df.a = [r"$\delta$", "x", "y"] df.b = ["l", "m", "n"] @@ -193,16 +193,16 @@ Equations (with ipython or sympy) <container cell_index="22" cell_metadata="{'ipub': {'equation': {'label': 'eqn:example_ipy'}}}" classes="cell" exec_count="6" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> Latex("$$ a = b+c $$") <container classes="cell_output" nb_element="cell_code_output"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> a = b+c <paragraph> The plotting code for a sympy equation (=@eqn:example_sympy). <container cell_index="24" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': '', 'label': 'code:example_sym', 'placement': 'H', 'widefigure': False}, 'equation': {'environment': 'equation', 'label': 'eqn:example_sympy'}}}" classes="cell" exec_count="7" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> y = sym.Function("y") n = sym.symbols(r"\alpha") f = y(n) - 2 * y(n - 1 / sym.pi) - 5 * y(n - 2) @@ -211,7 +211,7 @@ <image candidates="{'*': '_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png'}" uri="_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png"> <container cell_index="25" cell_metadata="{}" classes="cell" exec_count="7" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import display, Markdown display(Markdown("**_some_ markdown**")) diff --git a/tests/test_render_outputs/test_complex_outputs_latex.xml b/tests/test_render_outputs/test_complex_outputs_latex.xml index d1c82738..136559de 100644 --- a/tests/test_render_outputs/test_complex_outputs_latex.xml +++ b/tests/test_render_outputs/test_complex_outputs_latex.xml @@ -1,7 +1,7 @@ <document source="complex_outputs"> <container cell_index="0" cell_metadata="{'init_cell': True, 'slideshow': {'slide_type': 'skip'}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import matplotlib.pyplot as plt import pandas as pd import sympy as sym @@ -89,13 +89,13 @@ Text Output <container cell_index="11" cell_metadata="{'ipub': {'text': {'format': {'backgroundcolor': '\\color{blue!10}'}}}}" classes="cell" exec_count="2" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print(""" This is some printed text, with a nicely formatted output. """) <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> This is some printed text, with a nicely formatted output. @@ -105,7 +105,7 @@ Images and Figures <container cell_index="13" cell_metadata="{'ipub': {'figure': {'caption': 'A nice picture.', 'label': 'fig:example', 'placement': '!bh'}}}" classes="cell" exec_count="3" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> Image("example.jpg", height=400) <container classes="cell_output" nb_element="cell_code_output"> <image candidates="{'*': '_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg'}" height="400" uri="_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg"> @@ -118,7 +118,7 @@ The plotting code for a matplotlib figure (\cref{fig:example_mpl}). <container cell_index="17" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': 'a', 'label': 'code:example_mpl', 'widefigure': False}, 'figure': {'caption': '', 'label': 'fig:example_mpl', 'widefigure': False}}}" classes="cell" exec_count="4" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> plt.scatter(np.random.rand(10), np.random.rand(10), label="data label") plt.ylabel(r"a y label with latex $\alpha$") plt.legend(); @@ -131,14 +131,14 @@ The plotting code for a pandas Dataframe table (\cref{tbl:example}). <container cell_index="20" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': '', 'label': 'code:example_pd', 'placement': 'H', 'widefigure': False}, 'table': {'alternate': 'gray!20', 'caption': 'An example of a table created with pandas dataframe.', 'label': 'tbl:example', 'placement': 'H'}}}" classes="cell" exec_count="5" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> df = pd.DataFrame(np.random.rand(3, 4), columns=["a", "b", "c", "d"]) df.a = [r"$\delta$", "x", "y"] df.b = ["l", "m", "n"] df.set_index(["a", "b"]) df.round(3) <container classes="cell_output" nb_element="cell_code_output"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> \begin{tabular}{lllrr} \toprule {} & a & b & c & d \\ @@ -153,16 +153,16 @@ Equations (with ipython or sympy) <container cell_index="22" cell_metadata="{'ipub': {'equation': {'label': 'eqn:example_ipy'}}}" classes="cell" exec_count="6" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> Latex("$$ a = b+c $$") <container classes="cell_output" nb_element="cell_code_output"> - <math_block classes="output text_latex" nowrap="False" number="True" xml:space="preserve"> + <math_block classes="output text_latex" nowrap="0" number="True" xml:space="preserve"> a = b+c <paragraph> The plotting code for a sympy equation (=@eqn:example_sympy). <container cell_index="24" cell_metadata="{'ipub': {'code': {'asfloat': True, 'caption': '', 'label': 'code:example_sym', 'placement': 'H', 'widefigure': False}, 'equation': {'environment': 'equation', 'label': 'eqn:example_sympy'}}}" classes="cell" exec_count="7" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> y = sym.Function("y") n = sym.symbols(r"\alpha") f = y(n) - 2 * y(n - 1 / sym.pi) - 5 * y(n - 2) @@ -171,7 +171,7 @@ <image candidates="{'*': '_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png'}" uri="_build/jupyter_execute/8c43e5c8cccf697754876b7fec1b0a9b731d7900bb585e775a5fa326b4de8c5a.png"> <container cell_index="25" cell_metadata="{}" classes="cell" exec_count="7" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import display, Markdown display(Markdown("**_some_ markdown**")) diff --git a/tests/test_render_outputs/test_hide_cell_content.xml b/tests/test_render_outputs/test_hide_cell_content.xml index 66359142..4cd19273 100644 --- a/tests/test_render_outputs/test_hide_cell_content.xml +++ b/tests/test_render_outputs/test_hide_cell_content.xml @@ -5,32 +5,32 @@ <container cell_index="1" cell_metadata="{'tags': ['hide-input']}" classes="cell tag_hide-input" exec_count="1" hide_mode="input" nb_element="cell_code" prompt_hide="Hide code cell {type}" prompt_show="Show code cell {type}"> <HideCodeCellNode classes="above-input" prompt_hide="Hide code cell source" prompt_show="Show code cell source"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print("hide-input") <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> hide-input <container cell_index="2" cell_metadata="{'tags': ['hide-output']}" classes="cell tag_hide-output" exec_count="2" hide_mode="output" nb_element="cell_code" prompt_hide="Hide code cell {type}" prompt_show="Show code cell {type}"> <container classes="cell_input above-output-prompt" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print("hide-output") <HideCodeCellNode classes="below-input" prompt_hide="Hide code cell output" prompt_show="Show code cell output"> <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> hide-output <container cell_index="3" cell_metadata="{'tags': ['hide-cell']}" classes="cell tag_hide-cell" exec_count="4" hide_mode="all" nb_element="cell_code" prompt_hide="Hide code cell {type}" prompt_show="Show code cell {type}"> <HideCodeCellNode classes="above-input" prompt_hide="Hide code cell content" prompt_show="Show code cell content"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print("hide-cell") <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> hide-cell <container cell_index="4" cell_metadata="{'tags': ['hide-cell'], 'mystnb': {'code_prompt_show': 'My show message', 'code_prompt_hide': 'My hide message'}}" classes="cell tag_hide-cell" exec_count="5" hide_mode="all" nb_element="cell_code" prompt_hide="My hide message" prompt_show="My show message"> <HideCodeCellNode classes="above-input" prompt_hide="My hide message" prompt_show="My show message"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> print("hide-cell custom message") <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> hide-cell custom message diff --git a/tests/test_render_outputs/test_merge_streams.xml b/tests/test_render_outputs/test_merge_streams.xml index d944e436..f0399b4f 100644 --- a/tests/test_render_outputs/test_merge_streams.xml +++ b/tests/test_render_outputs/test_merge_streams.xml @@ -1,7 +1,7 @@ <document source="merge_streams"> <container cell_index="0" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sys print("stdout1", file=sys.stdout) @@ -12,13 +12,13 @@ print("stderr3", file=sys.stderr) 1 <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> stdout1 stdout2 stdout3 - <literal_block classes="output stderr" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stderr" language="myst-ansi" linenos="0" xml:space="preserve"> stderr1 stderr2 stderr3 - <literal_block classes="output text_plain" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output text_plain" language="myst-ansi" linenos="0" xml:space="preserve"> 1 diff --git a/tests/test_render_outputs/test_merge_streams_parallel.xml b/tests/test_render_outputs/test_merge_streams_parallel.xml index 17254962..1bb52cfe 100644 --- a/tests/test_render_outputs/test_merge_streams_parallel.xml +++ b/tests/test_render_outputs/test_merge_streams_parallel.xml @@ -1,14 +1,14 @@ <document source="merge_streams_parallel"> <container cell_index="0" cell_metadata="{'execution': {'iopub.execute_input': '2024-09-19T21:44:29.809012Z', 'iopub.status.busy': '2024-09-19T21:44:29.808809Z', 'iopub.status.idle': '2024-09-19T21:44:29.978481Z', 'shell.execute_reply': '2024-09-19T21:44:29.977891Z'}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor() as executor: for i in executor.map(print, [0] * 10): pass <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> 0 0 0 diff --git a/tests/test_render_outputs/test_metadata_figure.xml b/tests/test_render_outputs/test_metadata_figure.xml index 1ae8143d..74f40129 100644 --- a/tests/test_render_outputs/test_metadata_figure.xml +++ b/tests/test_render_outputs/test_metadata_figure.xml @@ -4,7 +4,7 @@ Formatting code outputs <container cell_index="1" cell_metadata="{'myst': {'figure': {'caption': 'Hey everyone its **party** time!\n', 'name': 'fun-fish'}}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import Image Image("fun-fish.png") @@ -18,6 +18,6 @@ time! <paragraph> Link: - <reference internal="True" refid="fun-fish"> + <reference internal="1" refid="fun-fish"> <inline classes="std std-ref"> swim to the fish diff --git a/tests/test_render_outputs/test_metadata_image.xml b/tests/test_render_outputs/test_metadata_image.xml index 33d586e3..1b773bae 100644 --- a/tests/test_render_outputs/test_metadata_image.xml +++ b/tests/test_render_outputs/test_metadata_image.xml @@ -4,7 +4,7 @@ Formatting code outputs <container cell_index="1" cell_metadata="{'myst': {'image': {'alt': 'fun-fish', 'classes': 'shadow bg-primary', 'width': '300px'}}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import Image Image("fun-fish.png") diff --git a/tests/test_render_outputs/test_metadata_image_output.xml b/tests/test_render_outputs/test_metadata_image_output.xml index bd398e43..d4e70ba7 100644 --- a/tests/test_render_outputs/test_metadata_image_output.xml +++ b/tests/test_render_outputs/test_metadata_image_output.xml @@ -4,7 +4,7 @@ Output metadata <container cell_index="1" cell_metadata="{'tags': ['skip-execution']}" classes="cell tag_skip-execution" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> # Outputs included with width/height in output metadata, # cell is not executed from IPython.display import Image @@ -14,7 +14,7 @@ <image candidates="{'*': '_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg'}" height="100" uri="_build/jupyter_execute/a4c9580c74dacf6f3316a3bd2e2a347933aa4463834dcf1bb8f20b4fcb476ae1.jpg" width="500"> <container cell_index="2" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> # No outputs, cell is executed, image should have original size (370, 254) from IPython.display import Image diff --git a/tests/test_render_outputs/test_metadata_multiple_image.xml b/tests/test_render_outputs/test_metadata_multiple_image.xml index 2c569e33..a25fb40d 100644 --- a/tests/test_render_outputs/test_metadata_multiple_image.xml +++ b/tests/test_render_outputs/test_metadata_multiple_image.xml @@ -6,7 +6,7 @@ This is a test case with multiple captioned and labelled images <container cell_index="1" cell_metadata="{'myst': {'figure': {'caption': 'Hey everyone its **party** time!\n', 'name': 'fun-fish'}, 'image': {'alt': 'fun-fish', 'classes': 'shadow bg-primary', 'width': '300px'}}}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import Image Image("fun-fish.png") @@ -20,14 +20,14 @@ time! <paragraph> Link: - <reference internal="True" refid="fun-fish"> + <reference internal="1" refid="fun-fish"> <inline classes="std std-ref"> swim to the fish <paragraph> Adding another party fish image to test for multiple images <container cell_index="4" cell_metadata="{'myst': {'figure': {'caption': 'Hey everyone its **party** time again!\n', 'name': 'fun-fish2'}, 'image': {'alt': 'fun-fish2', 'classes': 'shadow bg-primary', 'width': '200px'}}}" classes="cell" exec_count="2" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> from IPython.display import Image Image("fun-fish.png") @@ -41,11 +41,11 @@ time again! <paragraph> Link: - <reference internal="True" refid="fun-fish"> + <reference internal="1" refid="fun-fish"> <inline classes="std std-ref"> swim to the fish <paragraph> Link: - <reference internal="True" refid="fun-fish2"> + <reference internal="1" refid="fun-fish2"> <inline classes="std std-ref"> swim to the fish again diff --git a/tests/test_render_outputs/test_scroll_outputs.xml b/tests/test_render_outputs/test_scroll_outputs.xml index 99d19a0c..6d8969f4 100644 --- a/tests/test_render_outputs/test_scroll_outputs.xml +++ b/tests/test_render_outputs/test_scroll_outputs.xml @@ -4,20 +4,20 @@ Scroll long outputs <container cell_index="1" cell_metadata="{}" classes="cell config_scroll_outputs" exec_count="2" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> for i in range(2): print("short output") <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> short output short output <container cell_index="2" cell_metadata="{}" classes="cell config_scroll_outputs" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> for i in range(100): print("long output") <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stream" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stream" language="myst-ansi" linenos="0" xml:space="preserve"> long output long output long output diff --git a/tests/test_render_outputs/test_stderr_remove.xml b/tests/test_render_outputs/test_stderr_remove.xml index 0ade48ad..f7eeefac 100644 --- a/tests/test_render_outputs/test_stderr_remove.xml +++ b/tests/test_render_outputs/test_stderr_remove.xml @@ -1,14 +1,14 @@ <document source="basic_stderr"> <container cell_index="0" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sys print("hallo", file=sys.stderr) <container classes="cell_output" nb_element="cell_code_output"> <container cell_index="1" cell_metadata="{'tags': ['remove-stderr']}" classes="cell tag_remove-stderr" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sys print("hallo", file=sys.stderr) diff --git a/tests/test_render_outputs/test_stderr_tag.xml b/tests/test_render_outputs/test_stderr_tag.xml index 923ae5c4..0ed540bf 100644 --- a/tests/test_render_outputs/test_stderr_tag.xml +++ b/tests/test_render_outputs/test_stderr_tag.xml @@ -1,16 +1,16 @@ <document source="basic_stderr"> <container cell_index="0" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sys print("hallo", file=sys.stderr) <container classes="cell_output" nb_element="cell_code_output"> - <literal_block classes="output stderr" language="myst-ansi" linenos="False" xml:space="preserve"> + <literal_block classes="output stderr" language="myst-ansi" linenos="0" xml:space="preserve"> hallo <container cell_index="1" cell_metadata="{'tags': ['remove-stderr']}" classes="cell tag_remove-stderr" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> import sys print("hallo", file=sys.stderr) diff --git a/tests/test_render_outputs/test_unknown_mimetype.xml b/tests/test_render_outputs/test_unknown_mimetype.xml index 61d59ff2..06837614 100644 --- a/tests/test_render_outputs/test_unknown_mimetype.xml +++ b/tests/test_render_outputs/test_unknown_mimetype.xml @@ -1,7 +1,7 @@ <document source="unknown_mimetype"> <container cell_index="0" cell_metadata="{}" classes="cell" exec_count="1" nb_element="cell_code"> <container classes="cell_input" nb_element="cell_code_source"> - <literal_block language="ipython3" linenos="False" xml:space="preserve"> + <literal_block language="ipython3" linenos="0" xml:space="preserve"> a = 1 print(a) <container classes="cell_output" nb_element="cell_code_output"> diff --git a/tox.ini b/tox.ini index 42d442e8..f276f897 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ envlist = py313-sphinx8 [testenv] usedevelop = true -[testenv:py{310,311,312,313}-sphinx{5,6,7,8}] +[testenv:py{310,311,312,313,314}-sphinx{5,6,7,8}] extras = testing deps = sphinx5: sphinx>=5,<6