dotfiles/vscode/.vscode/extensions/ms-toolsai.jupyter-2024.6.0-darwin-arm64/pythonFiles/vscode_datascience_helpers/getServerInfo.py
Errol Sancaktar 5f8db31398 alacritty
2024-07-15 17:06:13 -06:00

48 lines
1.6 KiB
Python

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
import builtins
try:
import json
try:
from notebook.notebookapp import list_running_servers
server_list = list_running_servers()
except:
from jupyter_server import serverapp
server_list = serverapp.list_running_servers()
server_info_list = []
for si in server_list:
server_info_object = {}
server_info_object["base_url"] = si["base_url"]
server_info_object["notebook_dir"] = si.get(
"notebook_dir", si.get("root_dir", "")
)
server_info_object["hostname"] = si["hostname"]
server_info_object["password"] = si["password"]
server_info_object["pid"] = si["pid"]
server_info_object["port"] = si["port"]
server_info_object["secure"] = si["secure"]
server_info_object["token"] = si["token"]
server_info_object["url"] = si["url"]
server_info_list.append(server_info_object)
builtins.print(json.dumps(server_info_list))
except Exception:
"""Usage of subprocess is safe here as we are using run and are in control of all the arguments passed to it
flagging for execution of partial path is also not correct as it is a command, not a path
"""
import subprocess # nosec
from subprocess import PIPE # nosec
import sys
result = subprocess.run( # nosec
["jupyter", "notebook", "list", "--jsonlist"], stdout=PIPE, stderr=PIPE
)
encoding = os.getenv("PYTHONIOENCODING", "utf-8")
builtins.print.write(result.stdout.decode(encoding))