solorice/vscode/extensions/ms-toolsai.jupyter-2022.3.1000901801/pythonFiles/vscode_datascience_helpers/getServerInfo.py
2022-04-28 20:54:44 +03:00

39 lines
1.4 KiB
Python

# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
import builtins
try:
from notebook.notebookapp import list_running_servers
import json
server_list = 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["notebook_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))