-
Notifications
You must be signed in to change notification settings - Fork 308
/
Copy pathgetJupyterVariableList.py
52 lines (45 loc) · 1.38 KB
/
getJupyterVariableList.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# Query Jupyter server for defined variables list
# Tested on 2.7 and 3.6
from sys import getsizeof as _VSCODE_getsizeof
import json as _VSCODE_json
import builtins
from IPython import get_ipython as _VSCODE_get_ipython
# _VSCode_supportsDataExplorer will contain our list of data explorer supported types
_VSCode_supportsDataExplorer = [
"list",
"Series",
"dict",
"ndarray",
"DataFrame",
"Tensor",
"EagerTensor",
"DataArray",
]
# who_ls is a Jupyter line magic to fetch currently defined vars
_VSCode_JupyterVars = _VSCODE_get_ipython().run_line_magic("who_ls", "")
_VSCode_output = []
for _VSCode_var in _VSCode_JupyterVars:
try:
_VSCode_type = type(eval(_VSCode_var))
_VSCode_output.append(
{
"name": _VSCode_var,
"type": _VSCode_type.__name__,
"size": _VSCODE_getsizeof(_VSCode_var),
"supportsDataExplorer": _VSCode_type.__name__
in _VSCode_supportsDataExplorer,
}
)
del _VSCode_type
del _VSCode_var
except: # noqa: E722
pass
builtins.print(_VSCODE_json.dumps(_VSCode_output))
del _VSCODE_get_ipython
del _VSCode_output
del _VSCode_supportsDataExplorer
del _VSCode_JupyterVars
del _VSCODE_json
del _VSCODE_getsizeof