-
Notifications
You must be signed in to change notification settings - Fork 3k
Migrate start-notebook & start-singleuser to python #2006
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 17 commits
d1ff010
ed70463
00e751e
ea06768
14a1e8c
40f37d7
3364294
bb98d5e
9e71839
67302e3
1804a8c
527b756
9f7bdb3
37d5b15
81c67ef
219cf36
d6519ac
99410dc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,4 @@ | |
|
||
# Start up the notebook instance. | ||
|
||
exec start-notebook.sh "$@" | ||
exec start-notebook.py "$@" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#!/usr/bin/env python | ||
# Copyright (c) Jupyter Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||
import os | ||
import shlex | ||
import sys | ||
|
||
# If we are in a JupyterHub, we pass on to `start-singleuser.py` instead so it does the right thing | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I appreciate it that you added comments to this file! I'm sure it will help future contributors to understand this file faster. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mathbunnyru you're welcome :) |
||
if "JUPYTERHUB_API_TOKEN" in os.environ: | ||
print( | ||
"WARNING: using start-singleuser.py instead of start-notebook.py to start a server associated with JupyterHub." | ||
) | ||
command = ["/usr/local/bin/start-singleuser.py"] + sys.argv[1:] | ||
os.execvp(command[0], command) | ||
|
||
|
||
# Wrap everything in start.sh, no matter what | ||
command = ["/usr/local/bin/start.sh"] | ||
|
||
# If we want to survive restarts, tell that to start.sh | ||
if os.environ.get("RESTARTABLE") == "yes": | ||
command.append("run-one-constantly") | ||
|
||
# We always launch a jupyter subcommand from this script | ||
command.append("jupyter") | ||
|
||
# Launch the configured subcommand. Note that this should be a single string, so we don't split it | ||
# We default to lab | ||
jupyter_command = os.environ.get("DOCKER_STACKS_JUPYTER_CMD", "lab") | ||
command.append(jupyter_command) | ||
|
||
# Append any optional NOTEBOOK_ARGS we were passed in. This is supposed to be multiple args passed | ||
# on to the notebook command, so we split it correctly with shlex | ||
if "NOTEBOOK_ARGS" in os.environ: | ||
command += shlex.split(os.environ["NOTEBOOK_ARGS"]) | ||
|
||
# Pass through any other args we were passed on the commandline | ||
command += sys.argv[1:] | ||
|
||
# Execute the command! | ||
os.execvp(command[0], command) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,5 @@ | ||
#!/bin/bash | ||
# Copyright (c) Jupyter Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||
# Shim to emit warning and call start-notebook.py | ||
echo "WARNING: Use start-notebook.py instead" | ||
|
||
set -e | ||
|
||
# The Jupyter command to launch | ||
# JupyterLab by default | ||
DOCKER_STACKS_JUPYTER_CMD="${DOCKER_STACKS_JUPYTER_CMD:=lab}" | ||
|
||
if [[ -n "${JUPYTERHUB_API_TOKEN}" ]]; then | ||
echo "WARNING: using start-singleuser.sh instead of start-notebook.sh to start a server associated with JupyterHub." | ||
exec /usr/local/bin/start-singleuser.sh "$@" | ||
fi | ||
|
||
wrapper="" | ||
if [[ "${RESTARTABLE}" == "yes" ]]; then | ||
wrapper="run-one-constantly" | ||
fi | ||
|
||
# shellcheck disable=SC1091,SC2086 | ||
exec /usr/local/bin/start.sh ${wrapper} jupyter ${DOCKER_STACKS_JUPYTER_CMD} ${NOTEBOOK_ARGS} "$@" | ||
exec /usr/local/bin/start-notebook.py "$@" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/usr/bin/env python | ||
# Copyright (c) Jupyter Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||
import os | ||
import shlex | ||
import sys | ||
|
||
command = ["/usr/local/bin/start.sh", "jupyterhub-singleuser"] | ||
|
||
# set default ip to 0.0.0.0 | ||
if "--ip=" not in os.environ.get("NOTEBOOK_ARGS", ""): | ||
command.append("--ip=0.0.0.0") | ||
|
||
# Append any optional NOTEBOOK_ARGS we were passed in. This is supposed to be multiple args passed | ||
# on to the notebook command, so we split it correctly with shlex | ||
if "NOTEBOOK_ARGS" in os.environ: | ||
command += shlex.split(os.environ["NOTEBOOK_ARGS"]) | ||
|
||
# Pass any other args we have been passed through | ||
command += sys.argv[1:] | ||
|
||
# Execute the command! | ||
os.execvp(command[0], command) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,5 @@ | ||
#!/bin/bash | ||
# Copyright (c) Jupyter Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||
# Shim to emit warning and call start-singleuser.py | ||
echo "WARNING: Use start-singleuser.py instead" | ||
|
||
set -e | ||
|
||
# set default ip to 0.0.0.0 | ||
if [[ "${NOTEBOOK_ARGS} $*" != *"--ip="* ]]; then | ||
NOTEBOOK_ARGS="--ip=0.0.0.0 ${NOTEBOOK_ARGS}" | ||
fi | ||
|
||
# shellcheck disable=SC1091,SC2086 | ||
. /usr/local/bin/start.sh jupyterhub-singleuser ${NOTEBOOK_ARGS} "$@" | ||
exec /usr/local/bin/start-singleuser.py "$@" |
Uh oh!
There was an error while loading. Please reload this page.