mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-11 12:02:56 +00:00

* Install Pluto.jl and jupyter-pluto-proxy [Pluto.jl](https://plutojl.org/) is an alternative reactive notebook frontend focused specifically on Julia. I think shipping this by default in the julia-enabled images helps serve the Julia community better, particularly when used with JupyterHub. For context, I am working with the Julia users of the [Jupyter Meets the Earth](https://jupytearth.org/) project, and trying to understand how to best serve their needs on a JupyterHub. We currently maintain a massive image that 'has everything', but I'm trying to instead work upstream wherever possible so everyone working in these subfields can benefit. Meeting Julia users where they are at seems a useful path forward here. * Add note about Pluto.jl to selecting.md * Default to replacing - with _ in package imports * Add jupyter-pluto-proxy to package import mapping * Add Pluto.jl to datascience-notebook image * Add test for pluto proxy starting correctly * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update test_packages.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com>
33 lines
858 B
Python
33 lines
858 B
Python
import logging
|
|
import secrets
|
|
import time
|
|
|
|
import requests
|
|
|
|
from tests.conftest import TrackedContainer, find_free_port
|
|
|
|
LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def test_pluto_proxy(
|
|
container: TrackedContainer, http_client: requests.Session
|
|
) -> None:
|
|
"""Pluto proxy starts Pluto correctly"""
|
|
host_port = find_free_port()
|
|
token = secrets.token_hex()
|
|
container.run_detached(
|
|
command=[
|
|
"start.sh",
|
|
"jupyter",
|
|
"lab",
|
|
"--port=8888",
|
|
f"--LabApp.token={token}",
|
|
],
|
|
ports={"8888/tcp": host_port},
|
|
)
|
|
# Give the server a bit of time to start
|
|
time.sleep(3)
|
|
resp = http_client.get(f"http://localhost:{host_port}/pluto?token={token}")
|
|
resp.raise_for_status()
|
|
assert "Pluto.jl notebooks" in resp.text, "Pluto.jl text not found in /pluto page"
|