voila-dashboards / voila

Voilà turns Jupyter notebooks into standalone web applications
https://voila.readthedocs.io
Other
5.32k stars 497 forks source link

403 Forbidden - PDF IFrame Issue #1397

Closed ollyhensby closed 1 month ago

ollyhensby commented 9 months ago

Description

The demo repository I have made to present this issue: https://github.com/ollyhensby/voila-pdf-view-demo I've created a binder for it: https://mybinder.org/v2/gh/ollyhensby/voila-pdf-view-demo/main?labpath=demo.ipynb

PDF files can be viewed in IFrame in Jupyterlab but not when using Voila image

I also have a voila.json to define the VoilaConfiguration I want to allow PDFs. It's defined as follows:

{
    "VoilaConfiguration": {
      "file_allowlist": [".*.(ico|js|png|jpg|gif|svg|pdf)"],
      "show_tracebacks": true
    }
  }

Just as a note, it DOES work in Voila if I run voila demo.ipynb locally. It seems that it's the voila preview not working.

Reproduce

  1. Go to: https://mybinder.org/v2/gh/ollyhensby/voila-pdf-view-demo/main?labpath=demo.ipynb
  2. Run voila on view_pdf_file.ipynb
  3. See error '403: Forbidden'

Expected behavior

Expect the PDF file to load successfully as it does in Jupyterlab.

Context

Troubleshoot Output
$PATH:
        /srv/conda/envs/notebook/bin
        /srv/conda/condabin
        /home/jovyan/.local/bin
        /home/jovyan/.local/bin
        /srv/conda/envs/notebook/bin
        /srv/conda/bin
        /srv/npm/bin
        /usr/local/sbin
        /usr/local/bin
        /usr/sbin
        /usr/bin
        /sbin
        /bin

sys.path:
        /srv/conda/envs/notebook/bin
        /srv/conda/envs/notebook/lib/python310.zip
        /srv/conda/envs/notebook/lib/python3.10
        /srv/conda/envs/notebook/lib/python3.10/lib-dynload
        /srv/conda/envs/notebook/lib/python3.10/site-packages

sys.executable:
        /srv/conda/envs/notebook/bin/python

sys.version:
        3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0]

platform.platform():
        Linux-5.15.0-72-generic-x86_64-with-glibc2.27

which -a jupyter:
        /srv/conda/envs/notebook/bin/jupyter
        /srv/conda/envs/notebook/bin/jupyter

pip list:
        Package                       Version
        ----------------------------- -----------
        aiofiles                      22.1.0
        aiosqlite                     0.19.0
        alembic                       1.11.1
        anyio                         3.7.0
        argon2-cffi                   21.3.0
        argon2-cffi-bindings          21.2.0
        asttokens                     2.2.1
        async-generator               1.10
        async-lru                     2.0.4
        attrs                         23.1.0
        Babel                         2.12.1
        backcall                      0.2.0
        backports.functools-lru-cache 1.6.4
        beautifulsoup4                4.12.2
        bleach                        6.0.0
        blinker                       1.6.2
        certifi                       2023.5.7
        certipy                       0.1.3
        cffi                          1.15.1
        charset-normalizer            3.1.0
        comm                          0.1.3
        cryptography                  41.0.1
        debugpy                       1.6.7
        decorator                     5.1.1
        defusedxml                    0.7.1
        entrypoints                   0.4
        exceptiongroup                1.1.1
        executing                     1.2.0
        fastjsonschema                2.17.1
        flit_core                     3.9.0
        greenlet                      2.0.2
        idna                          3.4
        importlib-metadata            6.6.0
        importlib-resources           5.12.0
        ipykernel                     6.23.1
        ipython                       8.14.0
        ipython-genutils              0.2.0
        ipywidgets                    8.0.6
        jedi                          0.18.2
        Jinja2                        3.1.2
        json5                         0.9.5
        jsonschema                    4.17.3
        jupyter_client                8.2.0
        jupyter_core                  5.3.0
        jupyter-events                0.6.3
        jupyter-lsp                   2.2.0
        jupyter-offlinenotebook       0.2.2
        jupyter-resource-usage        0.7.1
        jupyter_server                2.5.0
        jupyter_server_fileid         0.9.0
        jupyter_server_terminals      0.4.4
        jupyter_server_ydoc           0.8.0
        jupyter-telemetry             0.1.0
        jupyter-ydoc                  0.2.4
        jupyterhub                    3.1.1
        jupyterlab                    4.0.6
        jupyterlab-pygments           0.2.2
        jupyterlab_server             2.22.1
        jupyterlab-widgets            3.0.7
        Mako                          1.2.4
        MarkupSafe                    2.1.3
        matplotlib-inline             0.1.6
        mistune                       2.0.5
        nbclassic                     1.0.0
        nbclient                      0.5.13
        nbconvert                     7.4.0
        nbformat                      5.9.0
        nest-asyncio                  1.5.6
        notebook                      6.5.4
        notebook_shim                 0.2.3
        oauthlib                      3.2.2
        packaging                     23.1
        pamela                        1.0.0
        pandocfilters                 1.5.0
        parso                         0.8.3
        pexpect                       4.8.0
        pickleshare                   0.7.5
        pip                           23.1.2
        pkgutil_resolve_name          1.3.10
        platformdirs                  3.5.1
        prometheus-client             0.17.0
        prompt-toolkit                3.0.38
        psutil                        5.9.5
        ptyprocess                    0.7.0
        pure-eval                     0.2.2
        pycparser                     2.21
        Pygments                      2.15.1
        PyJWT                         2.7.0
        pyOpenSSL                     23.2.0
        pyrsistent                    0.19.3
        PySocks                       1.7.1
        python-dateutil               2.8.2
        python-json-logger            2.0.7
        pytz                          2023.3
        PyYAML                        6.0
        pyzmq                         25.1.0
        requests                      2.31.0
        rfc3339-validator             0.1.4
        rfc3986-validator             0.1.1
        ruamel.yaml                   0.17.31
        ruamel.yaml.clib              0.2.7
        Send2Trash                    1.8.2
        setuptools                    67.7.2
        six                           1.16.0
        sniffio                       1.3.0
        soupsieve                     2.3.2.post1
        SQLAlchemy                    2.0.15
        stack-data                    0.6.2
        terminado                     0.17.1
        tinycss2                      1.2.1
        tomli                         2.0.1
        tornado                       6.3.2
        traitlets                     5.9.0
        typing_extensions             4.6.3
        urllib3                       2.0.3
        voila                         0.5.4
        wcwidth                       0.2.6
        webencodings                  0.5.1
        websocket-client              1.5.2
        websockets                    10.4
        wheel                         0.40.0
        widgetsnbextension            4.0.7
        y-py                          0.5.9
        ypy-websocket                 0.8.2
        zipp                          3.15.0

conda list:
        # packages in environment at /srv/conda/envs/notebook:
        #
        # Name                    Version                   Build  Channel
        _libgcc_mutex             0.1                 conda_forge    conda-forge
        _openmp_mutex             4.5                       2_gnu    conda-forge
        aiofiles                  22.1.0             pyhd8ed1ab_0    conda-forge
        aiosqlite                 0.19.0             pyhd8ed1ab_0    conda-forge
        alembic                   1.11.1             pyhd8ed1ab_0    conda-forge
        anyio                     3.7.0              pyhd8ed1ab_1    conda-forge
        argon2-cffi               21.3.0             pyhd8ed1ab_0    conda-forge
        argon2-cffi-bindings      21.2.0          py310h5764c6d_3    conda-forge
        asttokens                 2.2.1              pyhd8ed1ab_0    conda-forge
        async-lru                 2.0.4              pyhd8ed1ab_0    conda-forge
        async_generator           1.10                       py_0    conda-forge
        attrs                     23.1.0             pyh71513ae_1    conda-forge
        babel                     2.12.1             pyhd8ed1ab_1    conda-forge
        backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
        backports                 1.0                pyhd8ed1ab_3    conda-forge
        backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
        beautifulsoup4            4.12.2             pyha770c72_0    conda-forge
        bleach                    6.0.0              pyhd8ed1ab_0    conda-forge
        blinker                   1.6.2              pyhd8ed1ab_0    conda-forge
        brotli                    1.0.9                h166bdaf_8    conda-forge
        brotli-bin                1.0.9                h166bdaf_8    conda-forge
        bzip2                     1.0.8                h7f98852_4    conda-forge
        ca-certificates           2023.5.7             hbcca054_0    conda-forge
        certifi                   2023.5.7           pyhd8ed1ab_0    conda-forge
        certipy                   0.1.3                      py_0    conda-forge
        cffi                      1.15.1          py310h255011f_3    conda-forge
        charset-normalizer        3.1.0              pyhd8ed1ab_0    conda-forge
        comm                      0.1.3              pyhd8ed1ab_0    conda-forge
        cryptography              41.0.1          py310h75e40e8_0    conda-forge
        debugpy                   1.6.7           py310heca2aa9_0    conda-forge
        decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
        defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
        entrypoints               0.4                pyhd8ed1ab_0    conda-forge
        exceptiongroup            1.1.1              pyhd8ed1ab_0    conda-forge
        executing                 1.2.0              pyhd8ed1ab_0    conda-forge
        flit-core                 3.9.0              pyhd8ed1ab_0    conda-forge
        greenlet                  2.0.2           py310hc6cd4ac_1    conda-forge
        icu                       72.1                 hcb278e6_0    conda-forge
        idna                      3.4                pyhd8ed1ab_0    conda-forge
        importlib-metadata        6.6.0              pyha770c72_0    conda-forge
        importlib_metadata        6.6.0                hd8ed1ab_0    conda-forge
        importlib_resources       5.12.0             pyhd8ed1ab_0    conda-forge
        ipykernel                 6.23.1             pyh210e3f2_0    conda-forge
        ipython                   8.14.0             pyh41d4057_0    conda-forge
        ipython_genutils          0.2.0                      py_1    conda-forge
        ipywidgets                8.0.6              pyhd8ed1ab_0    conda-forge
        jedi                      0.18.2             pyhd8ed1ab_0    conda-forge
        jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
        json5                     0.9.5              pyh9f0ad1d_0    conda-forge
        jsonschema                4.17.3             pyhd8ed1ab_0    conda-forge
        jupyter-lsp               2.2.0              pyhd8ed1ab_0    conda-forge
        jupyter-offlinenotebook   0.2.2              pyh1d7be83_0    conda-forge
        jupyter-resource-usage    0.7.1              pyhd8ed1ab_0    conda-forge
        jupyter_client            8.2.0              pyhd8ed1ab_0    conda-forge
        jupyter_core              5.3.0           py310hff52083_0    conda-forge
        jupyter_events            0.6.3              pyhd8ed1ab_0    conda-forge
        jupyter_server            2.5.0           py310h06a4308_0    defaults
        jupyter_server_fileid     0.9.0              pyhd8ed1ab_0    conda-forge
        jupyter_server_terminals  0.4.4           py310h06a4308_1    defaults
        jupyter_server_ydoc       0.8.0              pyhd8ed1ab_0    conda-forge
        jupyter_telemetry         0.1.0              pyhd8ed1ab_1    conda-forge
        jupyter_ydoc              0.2.4              pyhd8ed1ab_0    conda-forge
        jupyterhub-base           3.1.1              pyh2a2186d_0    conda-forge
        jupyterhub-singleuser     3.1.1              pyh2a2186d_0    conda-forge
        jupyterlab                4.0.6              pyhd8ed1ab_0    conda-forge
        jupyterlab_pygments       0.2.2              pyhd8ed1ab_0    conda-forge
        jupyterlab_server         2.22.1             pyhd8ed1ab_0    conda-forge
        jupyterlab_widgets        3.0.7              pyhd8ed1ab_1    conda-forge
        ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
        libbrotlicommon           1.0.9                h166bdaf_8    conda-forge
        libbrotlidec              1.0.9                h166bdaf_8    conda-forge
        libbrotlienc              1.0.9                h166bdaf_8    conda-forge
        libffi                    3.4.2                h7f98852_5    conda-forge
        libgcc-ng                 13.1.0               he5830b7_0    conda-forge
        libgomp                   13.1.0               he5830b7_0    conda-forge
        libnsl                    2.0.0                h7f98852_0    conda-forge
        libsodium                 1.0.18               h36c2ea0_1    conda-forge
        libsqlite                 3.42.0               h2797004_0    conda-forge
        libstdcxx-ng              13.1.0               hfd8a6a1_0    conda-forge
        libuuid                   1.41.5               h5eee18b_0    defaults
        libuv                     1.44.2               h166bdaf_0    conda-forge
        libzlib                   1.2.13               h166bdaf_4    conda-forge
        mako                      1.2.4              pyhd8ed1ab_0    conda-forge
        markupsafe                2.1.3           py310h2372a71_0    conda-forge
        matplotlib-inline         0.1.6              pyhd8ed1ab_0    conda-forge
        mistune                   2.0.5              pyhd8ed1ab_0    conda-forge
        nbclassic                 1.0.0              pyhb4ecaf3_1    conda-forge
        nbclient                  0.5.13          py310h06a4308_0    defaults
        nbconvert                 7.4.0              pyhd8ed1ab_0    conda-forge
        nbconvert-core            7.4.0              pyhd8ed1ab_0    conda-forge
        nbconvert-pandoc          7.4.0              pyhd8ed1ab_0    conda-forge
        nbformat                  5.9.0              pyhd8ed1ab_0    conda-forge
        ncurses                   6.4                  hcb278e6_0    conda-forge
        nest-asyncio              1.5.6              pyhd8ed1ab_0    conda-forge
        nodejs                    18.15.0              h4abf6b9_1    conda-forge
        notebook                  6.5.4              pyha770c72_0    conda-forge
        notebook-shim             0.2.3              pyhd8ed1ab_0    conda-forge
        oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
        openssl                   3.1.1                hd590300_1    conda-forge
        packaging                 23.1               pyhd8ed1ab_0    conda-forge
        pamela                    1.0.0                      py_0    conda-forge
        pandoc                    2.19.2               h32600fe_2    conda-forge
        pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge
        parso                     0.8.3              pyhd8ed1ab_0    conda-forge
        pexpect                   4.8.0              pyh1a96a4e_2    conda-forge
        pickleshare               0.7.5                   py_1003    conda-forge
        pip                       23.1.2             pyhd8ed1ab_0    conda-forge
        pkgutil-resolve-name      1.3.10             pyhd8ed1ab_0    conda-forge
        platformdirs              3.5.1              pyhd8ed1ab_0    conda-forge
        prometheus_client         0.17.0             pyhd8ed1ab_0    conda-forge
        prompt-toolkit            3.0.38             pyha770c72_0    conda-forge
        prompt_toolkit            3.0.38               hd8ed1ab_0    conda-forge
        psutil                    5.9.5           py310h1fa729e_0    conda-forge
        ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
        pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
        pycparser                 2.21               pyhd8ed1ab_0    conda-forge
        pygments                  2.15.1             pyhd8ed1ab_0    conda-forge
        pyjwt                     2.7.0              pyhd8ed1ab_0    conda-forge
        pyopenssl                 23.2.0             pyhd8ed1ab_1    conda-forge
        pyrsistent                0.19.3          py310h1fa729e_0    conda-forge
        pysocks                   1.7.1              pyha2e5f31_6    conda-forge
        python                    3.10.13              h955ad1f_0    defaults
        python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
        python-fastjsonschema     2.17.1             pyhd8ed1ab_0    conda-forge
        python-json-logger        2.0.7              pyhd8ed1ab_0    conda-forge
        python_abi                3.10                    2_cp310    conda-forge
        pytz                      2023.3             pyhd8ed1ab_0    conda-forge
        pyyaml                    6.0             py310h5764c6d_5    conda-forge
        pyzmq                     25.1.0          py310h5bbb5d0_0    conda-forge
        readline                  8.2                  h8228510_1    conda-forge
        requests                  2.31.0             pyhd8ed1ab_0    conda-forge
        rfc3339-validator         0.1.4              pyhd8ed1ab_0    conda-forge
        rfc3986-validator         0.1.1              pyh9f0ad1d_0    conda-forge
        ruamel.yaml               0.17.31         py310h2372a71_0    conda-forge
        ruamel.yaml.clib          0.2.7           py310h1fa729e_1    conda-forge
        send2trash                1.8.2              pyh41d4057_0    conda-forge
        setuptools                67.7.2             pyhd8ed1ab_0    conda-forge
        six                       1.16.0             pyh6c4a22f_0    conda-forge
        sniffio                   1.3.0              pyhd8ed1ab_0    conda-forge
        soupsieve                 2.3.2.post1        pyhd8ed1ab_0    conda-forge
        sqlalchemy                2.0.15          py310h2372a71_0    conda-forge
        sqlite                    3.41.2               h5eee18b_0    defaults
        stack_data                0.6.2              pyhd8ed1ab_0    conda-forge
        terminado                 0.17.1             pyh41d4057_0    conda-forge
        tinycss2                  1.2.1              pyhd8ed1ab_0    conda-forge
        tk                        8.6.12               h27826a3_0    conda-forge
        tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
        tornado                   6.3.2           py310h2372a71_0    conda-forge
        traitlets                 5.9.0              pyhd8ed1ab_0    conda-forge
        typing-extensions         4.6.3                hd8ed1ab_0    conda-forge
        typing_extensions         4.6.3              pyha770c72_0    conda-forge
        tzdata                    2023c                h71feb2d_0    conda-forge
        urllib3                   2.0.3              pyhd8ed1ab_0    conda-forge
        voila                     0.5.4              pyhd8ed1ab_0    conda-forge
        wcwidth                   0.2.6              pyhd8ed1ab_0    conda-forge
        webencodings              0.5.1                      py_1    conda-forge
        websocket-client          1.5.2              pyhd8ed1ab_0    conda-forge
        websockets                10.4            py310h5eee18b_1    defaults
        wheel                     0.40.0             pyhd8ed1ab_0    conda-forge
        widgetsnbextension        4.0.7              pyhd8ed1ab_0    conda-forge
        xz                        5.4.2                h5eee18b_0    defaults
        y-py                      0.5.9           py310h4426083_0    conda-forge
        yaml                      0.2.5                h7f98852_2    conda-forge
        ypy-websocket             0.8.2              pyhd8ed1ab_0    conda-forge
        zeromq                    4.3.4                h9c3ff4c_1    conda-forge
        zipp                      3.15.0             pyhd8ed1ab_0    conda-forge
        zlib                      1.2.13               h166bdaf_4    conda-forge

conda env:
        name: notebook
        channels:
          - conda-forge
          - defaults
        dependencies:
          - _libgcc_mutex=0.1=conda_forge
          - _openmp_mutex=4.5=2_gnu
          - aiofiles=22.1.0=pyhd8ed1ab_0
          - aiosqlite=0.19.0=pyhd8ed1ab_0
          - alembic=1.11.1=pyhd8ed1ab_0
          - anyio=3.7.0=pyhd8ed1ab_1
          - argon2-cffi=21.3.0=pyhd8ed1ab_0
          - argon2-cffi-bindings=21.2.0=py310h5764c6d_3
          - asttokens=2.2.1=pyhd8ed1ab_0
          - async-lru=2.0.4=pyhd8ed1ab_0
          - async_generator=1.10=py_0
          - attrs=23.1.0=pyh71513ae_1
          - babel=2.12.1=pyhd8ed1ab_1
          - backcall=0.2.0=pyh9f0ad1d_0
          - backports=1.0=pyhd8ed1ab_3
          - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
          - beautifulsoup4=4.12.2=pyha770c72_0
          - bleach=6.0.0=pyhd8ed1ab_0
          - blinker=1.6.2=pyhd8ed1ab_0
          - brotli=1.0.9=h166bdaf_8
          - brotli-bin=1.0.9=h166bdaf_8
          - bzip2=1.0.8=h7f98852_4
          - ca-certificates=2023.5.7=hbcca054_0
          - certifi=2023.5.7=pyhd8ed1ab_0
          - certipy=0.1.3=py_0
          - cffi=1.15.1=py310h255011f_3
          - charset-normalizer=3.1.0=pyhd8ed1ab_0
          - comm=0.1.3=pyhd8ed1ab_0
          - cryptography=41.0.1=py310h75e40e8_0
          - debugpy=1.6.7=py310heca2aa9_0
          - decorator=5.1.1=pyhd8ed1ab_0
          - defusedxml=0.7.1=pyhd8ed1ab_0
          - entrypoints=0.4=pyhd8ed1ab_0
          - exceptiongroup=1.1.1=pyhd8ed1ab_0
          - executing=1.2.0=pyhd8ed1ab_0
          - flit-core=3.9.0=pyhd8ed1ab_0
          - greenlet=2.0.2=py310hc6cd4ac_1
          - icu=72.1=hcb278e6_0
          - idna=3.4=pyhd8ed1ab_0
          - importlib-metadata=6.6.0=pyha770c72_0
          - importlib_metadata=6.6.0=hd8ed1ab_0
          - importlib_resources=5.12.0=pyhd8ed1ab_0
          - ipykernel=6.23.1=pyh210e3f2_0
          - ipython=8.14.0=pyh41d4057_0
          - ipython_genutils=0.2.0=py_1
          - ipywidgets=8.0.6=pyhd8ed1ab_0
          - jedi=0.18.2=pyhd8ed1ab_0
          - jinja2=3.1.2=pyhd8ed1ab_1
          - json5=0.9.5=pyh9f0ad1d_0
          - jsonschema=4.17.3=pyhd8ed1ab_0
          - jupyter-lsp=2.2.0=pyhd8ed1ab_0
          - jupyter-offlinenotebook=0.2.2=pyh1d7be83_0
          - jupyter-resource-usage=0.7.1=pyhd8ed1ab_0
          - jupyter_client=8.2.0=pyhd8ed1ab_0
          - jupyter_core=5.3.0=py310hff52083_0
          - jupyter_events=0.6.3=pyhd8ed1ab_0
          - jupyter_server=2.5.0=py310h06a4308_0
          - jupyter_server_fileid=0.9.0=pyhd8ed1ab_0
          - jupyter_server_terminals=0.4.4=py310h06a4308_1
          - jupyter_server_ydoc=0.8.0=pyhd8ed1ab_0
          - jupyter_telemetry=0.1.0=pyhd8ed1ab_1
          - jupyter_ydoc=0.2.4=pyhd8ed1ab_0
          - jupyterhub-base=3.1.1=pyh2a2186d_0
          - jupyterhub-singleuser=3.1.1=pyh2a2186d_0
          - jupyterlab=4.0.6=pyhd8ed1ab_0
          - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
          - jupyterlab_server=2.22.1=pyhd8ed1ab_0
          - jupyterlab_widgets=3.0.7=pyhd8ed1ab_1
          - ld_impl_linux-64=2.40=h41732ed_0
          - libbrotlicommon=1.0.9=h166bdaf_8
          - libbrotlidec=1.0.9=h166bdaf_8
          - libbrotlienc=1.0.9=h166bdaf_8
          - libffi=3.4.2=h7f98852_5
          - libgcc-ng=13.1.0=he5830b7_0
          - libgomp=13.1.0=he5830b7_0
          - libnsl=2.0.0=h7f98852_0
          - libsodium=1.0.18=h36c2ea0_1
          - libsqlite=3.42.0=h2797004_0
          - libstdcxx-ng=13.1.0=hfd8a6a1_0
          - libuuid=1.41.5=h5eee18b_0
          - libuv=1.44.2=h166bdaf_0
          - libzlib=1.2.13=h166bdaf_4
          - mako=1.2.4=pyhd8ed1ab_0
          - markupsafe=2.1.3=py310h2372a71_0
          - matplotlib-inline=0.1.6=pyhd8ed1ab_0
          - mistune=2.0.5=pyhd8ed1ab_0
          - nbclassic=1.0.0=pyhb4ecaf3_1
          - nbclient=0.5.13=py310h06a4308_0
          - nbconvert=7.4.0=pyhd8ed1ab_0
          - nbconvert-core=7.4.0=pyhd8ed1ab_0
          - nbconvert-pandoc=7.4.0=pyhd8ed1ab_0
          - nbformat=5.9.0=pyhd8ed1ab_0
          - ncurses=6.4=hcb278e6_0
          - nest-asyncio=1.5.6=pyhd8ed1ab_0
          - nodejs=18.15.0=h4abf6b9_1
          - notebook=6.5.4=pyha770c72_0
          - notebook-shim=0.2.3=pyhd8ed1ab_0
          - oauthlib=3.2.2=pyhd8ed1ab_0
          - openssl=3.1.1=hd590300_1
          - packaging=23.1=pyhd8ed1ab_0
          - pamela=1.0.0=py_0
          - pandoc=2.19.2=h32600fe_2
          - pandocfilters=1.5.0=pyhd8ed1ab_0
          - parso=0.8.3=pyhd8ed1ab_0
          - pexpect=4.8.0=pyh1a96a4e_2
          - pickleshare=0.7.5=py_1003
          - pip=23.1.2=pyhd8ed1ab_0
          - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
          - platformdirs=3.5.1=pyhd8ed1ab_0
          - prometheus_client=0.17.0=pyhd8ed1ab_0
          - prompt-toolkit=3.0.38=pyha770c72_0
          - prompt_toolkit=3.0.38=hd8ed1ab_0
          - psutil=5.9.5=py310h1fa729e_0
          - ptyprocess=0.7.0=pyhd3deb0d_0
          - pure_eval=0.2.2=pyhd8ed1ab_0
          - pycparser=2.21=pyhd8ed1ab_0
          - pygments=2.15.1=pyhd8ed1ab_0
          - pyjwt=2.7.0=pyhd8ed1ab_0
          - pyopenssl=23.2.0=pyhd8ed1ab_1
          - pyrsistent=0.19.3=py310h1fa729e_0
          - pysocks=1.7.1=pyha2e5f31_6
          - python=3.10.13=h955ad1f_0
          - python-dateutil=2.8.2=pyhd8ed1ab_0
          - python-fastjsonschema=2.17.1=pyhd8ed1ab_0
          - python-json-logger=2.0.7=pyhd8ed1ab_0
          - python_abi=3.10=2_cp310
          - pytz=2023.3=pyhd8ed1ab_0
          - pyyaml=6.0=py310h5764c6d_5
          - pyzmq=25.1.0=py310h5bbb5d0_0
          - readline=8.2=h8228510_1
          - requests=2.31.0=pyhd8ed1ab_0
          - rfc3339-validator=0.1.4=pyhd8ed1ab_0
          - rfc3986-validator=0.1.1=pyh9f0ad1d_0
          - ruamel.yaml=0.17.31=py310h2372a71_0
          - ruamel.yaml.clib=0.2.7=py310h1fa729e_1
          - send2trash=1.8.2=pyh41d4057_0
          - setuptools=67.7.2=pyhd8ed1ab_0
          - six=1.16.0=pyh6c4a22f_0
          - sniffio=1.3.0=pyhd8ed1ab_0
          - soupsieve=2.3.2.post1=pyhd8ed1ab_0
          - sqlalchemy=2.0.15=py310h2372a71_0
          - sqlite=3.41.2=h5eee18b_0
          - stack_data=0.6.2=pyhd8ed1ab_0
          - terminado=0.17.1=pyh41d4057_0
          - tinycss2=1.2.1=pyhd8ed1ab_0
          - tk=8.6.12=h27826a3_0
          - tomli=2.0.1=pyhd8ed1ab_0
          - tornado=6.3.2=py310h2372a71_0
          - traitlets=5.9.0=pyhd8ed1ab_0
          - typing-extensions=4.6.3=hd8ed1ab_0
          - typing_extensions=4.6.3=pyha770c72_0
          - tzdata=2023c=h71feb2d_0
          - urllib3=2.0.3=pyhd8ed1ab_0
          - voila=0.5.4=pyhd8ed1ab_0
          - wcwidth=0.2.6=pyhd8ed1ab_0
          - webencodings=0.5.1=py_1
          - websocket-client=1.5.2=pyhd8ed1ab_0
          - websockets=10.4=py310h5eee18b_1
          - wheel=0.40.0=pyhd8ed1ab_0
          - widgetsnbextension=4.0.7=pyhd8ed1ab_0
          - xz=5.4.2=h5eee18b_0
          - y-py=0.5.9=py310h4426083_0
          - yaml=0.2.5=h7f98852_2
          - ypy-websocket=0.8.2=pyhd8ed1ab_0
          - zeromq=4.3.4=h9c3ff4c_1
          - zipp=3.15.0=pyhd8ed1ab_0
          - zlib=1.2.13=h166bdaf_4
        prefix: /srv/conda/envs/notebook

If using JupyterLab

Installed Labextensions
JupyterLab v4.0.6
/srv/conda/envs/notebook/share/jupyter/labextensions
        jupyter-offlinenotebook v0.2.2 enabled  X
        jupyterlab_pygments v0.2.2 enabled  X (python, jupyterlab_pygments)
        @jupyter-widgets/jupyterlab-manager v5.0.7 enabled  X (python, jupyterlab_widgets)
        @jupyter-server/resource-usage v0.7.1 enabled  X (python, jupyter-resource-usage)
        @voila-dashboards/jupyterlab-preview v2.3.4 enabled OK (python, voila)

   The following extensions are outdated:
        jupyter-offlinenotebook
        jupyterlab_pygments
        @jupyter-widgets/jupyterlab-manager
        @jupyter-server/resource-usage

   Consider checking if an update is available for these packages.
jgunstone commented 1 month ago

great - thanks very much!

just to confirm, this is now working: