mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
39 lines
1.4 KiB
Python
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))
|