-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathconstants.ts
More file actions
149 lines (120 loc) · 4.81 KB
/
constants.ts
File metadata and controls
149 lines (120 loc) · 4.81 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import * as path from 'node:path';
import type { ConsoleType, VariableType } from '../types';
export const EXTENSION_ID = 'vscode-deephaven' as const;
export const CONFIG_KEY = {
root: 'deephaven',
coreServers: 'coreServers',
enterpriseServers: 'enterpriseServers',
} as const;
export const CENSORED_TEXT = '********' as const;
export const DEFAULT_CONSOLE_TYPE = 'python' as const;
// export const DHFS_SCHEME = 'dhfs';
// 600 seconds is based on default `auto_delete_timeout` in
// `ControllerClient.make_temporary_config`
export const DEFAULT_TEMPORARY_QUERY_AUTO_TIMEOUT_MS = 600000 as const;
export const DEFAULT_TEMPORARY_QUERY_TIMEOUT_MS = 60000 as const;
export const DH_PANEL_VIEW_TYPE = 'dhPanel';
export const INTERACTIVE_CONSOLE_QUERY_TYPE = 'InteractiveConsole';
export const INTERACTIVE_CONSOLE_TEMPORARY_QUEUE_NAME =
'InteractiveConsoleTemporaryQueue';
export const PYTHON_ENV_WAIT = 1500 as const;
export const PIP_SERVER_STATUS_CHECK_INTERVAL = 3000;
export const PIP_SERVER_STATUS_CHECK_TIMEOUT = 30000;
export const STATUS_BAR_DISCONNECTED_TEXT = 'Deephaven: Disconnected';
export const STATUS_BAR_DISCONNECT_TEXT = 'Deephaven: Disconnect';
export const STATUS_BAR_CONNECTING_TEXT = 'Deephaven: Connecting...';
export const DOWNLOAD_LOGS_TEXT = 'Download Logs';
// For drag-and-dropping uris
export const MIME_TYPE = {
uriList: 'text/uri-list',
} as const;
export const SERVER_LANGUAGE_SET = new Set([
'python',
'groovy',
]) as ReadonlySet<ConsoleType>;
export const PIP_SERVER_SUPPORTED_PLATFORMS = new Set<NodeJS.Platform>([
'darwin',
'linux',
]);
export const TMP_DIR_ROOT = path.join(__dirname, 'tmp');
export const VIEW_ID = {
serverTree: `${EXTENSION_ID}.serverTree`,
serverConnectionTree: `${EXTENSION_ID}.serverConnectionTree`,
serverConnectionPanelTree: `${EXTENSION_ID}.serverConnectionPanelTree`,
} as const;
export type ViewID = (typeof VIEW_ID)[keyof typeof VIEW_ID];
export const ICON_ID = {
blank: 'blank',
connected: 'vm-connect',
connecting: 'sync~spin',
disconnected: 'plug',
runAll: 'run-all',
runSelection: 'run',
server: 'server',
serverConnected: 'circle-large-filled',
serverRunning: 'circle-large-outline',
serverStopped: 'circle-slash',
varFigure: 'graph',
varElement: 'preview',
varPandas: 'dh-pandas',
varTable: 'dh-table',
} as const;
/* eslint-disable @typescript-eslint/naming-convention */
export const VARIABLE_UNICODE_ICONS = {
'deephaven.plot.express.DeephavenFigure': '📈',
'deephaven.ui.Element': '✨',
Figure: '📈',
HierarchicalTable: '▤',
OtherWidget: '⬜',
'pandas.DataFrame': '🐼',
PartitionedTable: '▤',
Table: '▤',
TableMap: '▤',
Treemap: '▤',
TreeTable: '▤',
} as const satisfies Record<VariableType, string>;
/* eslint-enable @typescript-eslint/naming-convention */
export const CONNECTION_TREE_ITEM_CONTEXT = {
isConnectionConnected: 'isConnectionConnected',
isConnectionConnecting: 'isConnectionConnecting',
isUri: 'isUri',
} as const;
export const PIP_SERVER_STATUS_DIRECTORY = 'pip-server-status';
export const SERVER_TREE_ITEM_CONTEXT = {
canStartServer: 'canStartServer',
isDHEServerRunningConnected: 'isDHEServerRunningConnected',
isDHEServerRunningDisconnected: 'isDHEServerRunningDisconnected',
isManagedServerConnected: 'isManagedServerConnected',
isManagedServerConnecting: 'isManagedServerConnecting',
isManagedServerDisconnected: 'isManagedServerDisconnected',
isServerRunningConnected: 'isServerRunningConnected',
isServerRunningDisconnected: 'isServerRunningDisconnected',
isServerStopped: 'isServerStopped',
} as const;
export type ServerTreeItemContextValue = keyof typeof SERVER_TREE_ITEM_CONTEXT;
export const DEEPHAVEN_POST_MSG = {
loginOptionsRequest: 'io.deephaven.message.LoginOptions.request',
sessionDetailsRequest: 'io.deephaven.message.SessionDetails.request',
} as const;
export const VSCODE_POST_MSG = {
loginOptionsResponse: 'vscode-ext.loginOptions',
sessionDetailsResponse: 'vscode-ext.sessionDetails',
} as const;
/**
* Table to store Python dependency names + versions used to generate a
* requirements.txt file
*/
export const REQUIREMENTS_TABLE_NAME = '__vscode_requirements';
export const REQUIREMENTS_TABLE_NAME_COLUMN_NAME = 'Name';
export const REQUIREMENTS_TABLE_VERSION_COLUMN_NAME = 'Version';
/**
* Query installed Python package names + versions and store in a DH Table.
*/
export const REQUIREMENTS_QUERY_TXT = `from deephaven import new_table
from deephaven.column import string_col
from importlib.metadata import packages_distributions, version
installed = {pkg for pkgs in packages_distributions().values() for pkg in pkgs}
${REQUIREMENTS_TABLE_NAME} = new_table([
string_col("${REQUIREMENTS_TABLE_NAME_COLUMN_NAME}", list(installed)),
string_col("${REQUIREMENTS_TABLE_VERSION_COLUMN_NAME}", [version(pkg) for pkg in installed])
])` as const;