more-compute 0.1.4__py3-none-any.whl → 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frontend/app/globals.css +322 -77
- frontend/app/layout.tsx +98 -82
- frontend/components/Cell.tsx +234 -95
- frontend/components/Notebook.tsx +430 -199
- frontend/components/{AddCellButton.tsx → cell/AddCellButton.tsx} +0 -2
- frontend/components/cell/MonacoCell.tsx +726 -0
- frontend/components/layout/ConnectionBanner.tsx +41 -0
- frontend/components/{Sidebar.tsx → layout/Sidebar.tsx} +16 -11
- frontend/components/modals/ConfirmModal.tsx +154 -0
- frontend/components/modals/SuccessModal.tsx +140 -0
- frontend/components/output/MarkdownRenderer.tsx +116 -0
- frontend/components/popups/ComputePopup.tsx +674 -365
- frontend/components/popups/MetricsPopup.tsx +11 -7
- frontend/components/popups/SettingsPopup.tsx +11 -13
- frontend/contexts/PodWebSocketContext.tsx +247 -0
- frontend/eslint.config.mjs +11 -0
- frontend/lib/monaco-themes.ts +160 -0
- frontend/lib/settings.ts +128 -26
- frontend/lib/themes.json +9973 -0
- frontend/lib/websocket-native.ts +19 -8
- frontend/lib/websocket.ts +59 -11
- frontend/next.config.ts +8 -0
- frontend/package-lock.json +1705 -3
- frontend/package.json +8 -1
- frontend/styling_README.md +18 -0
- kernel_run.py +159 -42
- more_compute-0.2.0.dist-info/METADATA +126 -0
- more_compute-0.2.0.dist-info/RECORD +100 -0
- morecompute/__version__.py +1 -1
- morecompute/execution/executor.py +31 -20
- morecompute/execution/worker.py +68 -7
- morecompute/models/__init__.py +31 -0
- morecompute/models/api_models.py +197 -0
- morecompute/notebook.py +50 -7
- morecompute/server.py +574 -94
- morecompute/services/data_manager.py +379 -0
- morecompute/services/lsp_service.py +335 -0
- morecompute/services/pod_manager.py +122 -20
- morecompute/services/pod_monitor.py +138 -0
- morecompute/services/prime_intellect.py +87 -63
- morecompute/utils/config_util.py +59 -0
- morecompute/utils/special_commands.py +11 -5
- morecompute/utils/zmq_util.py +51 -0
- frontend/components/MarkdownRenderer.tsx +0 -84
- frontend/components/popups/PythonPopup.tsx +0 -292
- more_compute-0.1.4.dist-info/METADATA +0 -173
- more_compute-0.1.4.dist-info/RECORD +0 -86
- /frontend/components/{CellButton.tsx → cell/CellButton.tsx} +0 -0
- /frontend/components/{ErrorModal.tsx → modals/ErrorModal.tsx} +0 -0
- /frontend/components/{CellOutput.tsx → output/CellOutput.tsx} +0 -0
- /frontend/components/{ErrorDisplay.tsx → output/ErrorDisplay.tsx} +0 -0
- {more_compute-0.1.4.dist-info → more_compute-0.2.0.dist-info}/WHEEL +0 -0
- {more_compute-0.1.4.dist-info → more_compute-0.2.0.dist-info}/entry_points.txt +0 -0
- {more_compute-0.1.4.dist-info → more_compute-0.2.0.dist-info}/licenses/LICENSE +0 -0
- {more_compute-0.1.4.dist-info → more_compute-0.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from "react";
|
|
2
|
-
import { RotateCw, Cpu } from "lucide-react";
|
|
3
|
-
|
|
4
|
-
interface PythonEnvironment {
|
|
5
|
-
name: string;
|
|
6
|
-
version: string;
|
|
7
|
-
path: string;
|
|
8
|
-
type: string;
|
|
9
|
-
active?: boolean;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface PythonPopupProps {
|
|
13
|
-
onClose?: () => void;
|
|
14
|
-
onEnvironmentSwitch?: (env: PythonEnvironment) => void;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const PythonPopup: React.FC<PythonPopupProps> = ({
|
|
18
|
-
onClose,
|
|
19
|
-
onEnvironmentSwitch,
|
|
20
|
-
}) => {
|
|
21
|
-
const [environments, setEnvironments] = useState<PythonEnvironment[]>([]);
|
|
22
|
-
const [currentEnv, setCurrentEnv] = useState<PythonEnvironment | null>(null);
|
|
23
|
-
const [loading, setLoading] = useState(true);
|
|
24
|
-
const [error, setError] = useState<string | null>(null);
|
|
25
|
-
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
loadEnvironments();
|
|
28
|
-
}, []);
|
|
29
|
-
|
|
30
|
-
const loadEnvironments = async (full: boolean = true, forceRefresh: boolean = false) => {
|
|
31
|
-
setLoading(true);
|
|
32
|
-
setError(null);
|
|
33
|
-
try {
|
|
34
|
-
const url = `/api/environments?full=${full}${forceRefresh ? '&force_refresh=true' : ''}`;
|
|
35
|
-
const response = await fetch(url);
|
|
36
|
-
if (!response.ok) {
|
|
37
|
-
throw new Error(`Failed to fetch environments: ${response.statusText}`);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const data = await response.json();
|
|
41
|
-
|
|
42
|
-
if (data.status === "success") {
|
|
43
|
-
setEnvironments(
|
|
44
|
-
data.environments.map((env: any) => ({
|
|
45
|
-
...env,
|
|
46
|
-
active: env.path === data.current.path,
|
|
47
|
-
})),
|
|
48
|
-
);
|
|
49
|
-
setCurrentEnv(data.current);
|
|
50
|
-
} else {
|
|
51
|
-
throw new Error(data.message || "Failed to load environments");
|
|
52
|
-
}
|
|
53
|
-
} catch (err: any) {
|
|
54
|
-
setError(err.message || "Failed to load environments");
|
|
55
|
-
} finally {
|
|
56
|
-
setLoading(false);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
if (loading) {
|
|
61
|
-
return (
|
|
62
|
-
<div className="runtime-popup-loading">
|
|
63
|
-
Loading runtime environments...
|
|
64
|
-
</div>
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (error) {
|
|
69
|
-
return <div className="runtime-popup-error">{error}</div>;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return (
|
|
73
|
-
<div className="runtime-popup">
|
|
74
|
-
{/* Python Environment Section */}
|
|
75
|
-
<section className="runtime-section">
|
|
76
|
-
<p className="runtime-subtitle">
|
|
77
|
-
Select the Python interpreter for local execution.
|
|
78
|
-
</p>
|
|
79
|
-
|
|
80
|
-
{/* Current Environment */}
|
|
81
|
-
{currentEnv && (
|
|
82
|
-
<div
|
|
83
|
-
style={{
|
|
84
|
-
padding: "12px",
|
|
85
|
-
borderRadius: "8px",
|
|
86
|
-
border: "2px solid var(--accent)",
|
|
87
|
-
backgroundColor: "var(--accent-bg)",
|
|
88
|
-
marginBottom: "16px",
|
|
89
|
-
}}
|
|
90
|
-
>
|
|
91
|
-
<div
|
|
92
|
-
style={{
|
|
93
|
-
display: "flex",
|
|
94
|
-
alignItems: "center",
|
|
95
|
-
marginBottom: "8px",
|
|
96
|
-
fontSize: "10px",
|
|
97
|
-
fontWeight: 600,
|
|
98
|
-
color: "var(--accent)",
|
|
99
|
-
textTransform: "uppercase",
|
|
100
|
-
letterSpacing: "0.5px",
|
|
101
|
-
}}
|
|
102
|
-
>
|
|
103
|
-
<Cpu size={14} style={{ marginRight: "6px" }} />
|
|
104
|
-
Current Environment
|
|
105
|
-
</div>
|
|
106
|
-
<div style={{ fontWeight: 500, fontSize: "12px", marginBottom: "4px" }}>
|
|
107
|
-
{currentEnv.name}
|
|
108
|
-
</div>
|
|
109
|
-
<div style={{ fontSize: "10px", color: "var(--text-secondary)" }}>
|
|
110
|
-
Python {currentEnv.version} • {currentEnv.type}
|
|
111
|
-
</div>
|
|
112
|
-
<div
|
|
113
|
-
style={{
|
|
114
|
-
fontSize: "9px",
|
|
115
|
-
color: "var(--text-tertiary)",
|
|
116
|
-
marginTop: "6px",
|
|
117
|
-
whiteSpace: "nowrap",
|
|
118
|
-
overflow: "hidden",
|
|
119
|
-
textOverflow: "ellipsis",
|
|
120
|
-
}}
|
|
121
|
-
title={currentEnv.path}
|
|
122
|
-
>
|
|
123
|
-
{currentEnv.path}
|
|
124
|
-
</div>
|
|
125
|
-
</div>
|
|
126
|
-
)}
|
|
127
|
-
|
|
128
|
-
{/* Available Environments */}
|
|
129
|
-
<div className="runtime-subsection">
|
|
130
|
-
<div
|
|
131
|
-
style={{
|
|
132
|
-
display: "flex",
|
|
133
|
-
justifyContent: "space-between",
|
|
134
|
-
alignItems: "center",
|
|
135
|
-
marginBottom: "12px",
|
|
136
|
-
}}
|
|
137
|
-
>
|
|
138
|
-
<h4
|
|
139
|
-
style={{
|
|
140
|
-
fontSize: "11px",
|
|
141
|
-
fontWeight: 600,
|
|
142
|
-
margin: 0,
|
|
143
|
-
color: "var(--text)",
|
|
144
|
-
}}
|
|
145
|
-
>
|
|
146
|
-
Available Environments
|
|
147
|
-
</h4>
|
|
148
|
-
<button
|
|
149
|
-
onClick={() => loadEnvironments(true, true)}
|
|
150
|
-
aria-label="Refresh environments"
|
|
151
|
-
style={{
|
|
152
|
-
display: "flex",
|
|
153
|
-
alignItems: "center",
|
|
154
|
-
justifyContent: "center",
|
|
155
|
-
padding: "6px",
|
|
156
|
-
borderRadius: "4px",
|
|
157
|
-
border: "1px solid var(--border-color)",
|
|
158
|
-
backgroundColor: "var(--background)",
|
|
159
|
-
cursor: "pointer",
|
|
160
|
-
transition: "all 0.15s ease",
|
|
161
|
-
}}
|
|
162
|
-
onMouseEnter={(e) => {
|
|
163
|
-
e.currentTarget.style.backgroundColor = "var(--hover-background)";
|
|
164
|
-
e.currentTarget.style.borderColor = "var(--accent)";
|
|
165
|
-
}}
|
|
166
|
-
onMouseLeave={(e) => {
|
|
167
|
-
e.currentTarget.style.backgroundColor = "var(--background)";
|
|
168
|
-
e.currentTarget.style.borderColor = "var(--border-color)";
|
|
169
|
-
}}
|
|
170
|
-
>
|
|
171
|
-
<RotateCw size={12} style={{ color: "var(--text-secondary)" }} />
|
|
172
|
-
</button>
|
|
173
|
-
</div>
|
|
174
|
-
|
|
175
|
-
<div
|
|
176
|
-
style={{
|
|
177
|
-
maxHeight: "320px",
|
|
178
|
-
overflowY: "auto",
|
|
179
|
-
overflowX: "hidden",
|
|
180
|
-
}}
|
|
181
|
-
>
|
|
182
|
-
{environments.map((env, index) => (
|
|
183
|
-
<div
|
|
184
|
-
key={index}
|
|
185
|
-
onClick={() => {
|
|
186
|
-
if (!env.active && onEnvironmentSwitch) {
|
|
187
|
-
onEnvironmentSwitch(env);
|
|
188
|
-
}
|
|
189
|
-
}}
|
|
190
|
-
style={{
|
|
191
|
-
padding: "12px",
|
|
192
|
-
borderRadius: "6px",
|
|
193
|
-
border: env.active
|
|
194
|
-
? "2px solid var(--accent)"
|
|
195
|
-
: "1.5px solid var(--border-color)",
|
|
196
|
-
marginBottom: "8px",
|
|
197
|
-
cursor: env.active ? "default" : "pointer",
|
|
198
|
-
backgroundColor: env.active
|
|
199
|
-
? "var(--accent-bg)"
|
|
200
|
-
: "var(--background)",
|
|
201
|
-
transition: "all 0.15s ease",
|
|
202
|
-
position: "relative",
|
|
203
|
-
boxShadow: "0 1px 3px rgba(0, 0, 0, 0.05)",
|
|
204
|
-
}}
|
|
205
|
-
onMouseEnter={(e) => {
|
|
206
|
-
if (!env.active) {
|
|
207
|
-
e.currentTarget.style.backgroundColor =
|
|
208
|
-
"var(--hover-background)";
|
|
209
|
-
e.currentTarget.style.borderColor = "var(--accent)";
|
|
210
|
-
e.currentTarget.style.boxShadow =
|
|
211
|
-
"0 2px 8px rgba(0, 0, 0, 0.1)";
|
|
212
|
-
e.currentTarget.style.transform = "translateY(-1px)";
|
|
213
|
-
}
|
|
214
|
-
}}
|
|
215
|
-
onMouseLeave={(e) => {
|
|
216
|
-
if (!env.active) {
|
|
217
|
-
e.currentTarget.style.backgroundColor =
|
|
218
|
-
"var(--background)";
|
|
219
|
-
e.currentTarget.style.borderColor = "var(--border-color)";
|
|
220
|
-
e.currentTarget.style.boxShadow =
|
|
221
|
-
"0 1px 3px rgba(0, 0, 0, 0.05)";
|
|
222
|
-
e.currentTarget.style.transform = "translateY(0)";
|
|
223
|
-
}
|
|
224
|
-
}}
|
|
225
|
-
>
|
|
226
|
-
<div
|
|
227
|
-
style={{
|
|
228
|
-
display: "flex",
|
|
229
|
-
justifyContent: "space-between",
|
|
230
|
-
alignItems: "flex-start",
|
|
231
|
-
}}
|
|
232
|
-
>
|
|
233
|
-
<div style={{ flex: 1, minWidth: 0 }}>
|
|
234
|
-
<div
|
|
235
|
-
style={{
|
|
236
|
-
fontWeight: 500,
|
|
237
|
-
fontSize: "11px",
|
|
238
|
-
marginBottom: "3px",
|
|
239
|
-
color: env.active ? "var(--accent)" : "var(--text)",
|
|
240
|
-
}}
|
|
241
|
-
>
|
|
242
|
-
{env.name}
|
|
243
|
-
</div>
|
|
244
|
-
<div
|
|
245
|
-
style={{
|
|
246
|
-
fontSize: "10px",
|
|
247
|
-
color: "var(--text-secondary)",
|
|
248
|
-
marginBottom: "4px",
|
|
249
|
-
}}
|
|
250
|
-
>
|
|
251
|
-
Python {env.version} • {env.type}
|
|
252
|
-
</div>
|
|
253
|
-
<div
|
|
254
|
-
style={{
|
|
255
|
-
fontSize: "9px",
|
|
256
|
-
color: "var(--text-tertiary)",
|
|
257
|
-
whiteSpace: "nowrap",
|
|
258
|
-
overflow: "hidden",
|
|
259
|
-
textOverflow: "ellipsis",
|
|
260
|
-
}}
|
|
261
|
-
title={env.path}
|
|
262
|
-
>
|
|
263
|
-
{env.path}
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
{env.active && (
|
|
267
|
-
<div
|
|
268
|
-
style={{
|
|
269
|
-
fontSize: "9px",
|
|
270
|
-
fontWeight: 600,
|
|
271
|
-
color: "var(--accent)",
|
|
272
|
-
backgroundColor: "var(--accent-bg)",
|
|
273
|
-
padding: "2px 6px",
|
|
274
|
-
borderRadius: "4px",
|
|
275
|
-
marginLeft: "8px",
|
|
276
|
-
flexShrink: 0,
|
|
277
|
-
}}
|
|
278
|
-
>
|
|
279
|
-
ACTIVE
|
|
280
|
-
</div>
|
|
281
|
-
)}
|
|
282
|
-
</div>
|
|
283
|
-
</div>
|
|
284
|
-
))}
|
|
285
|
-
</div>
|
|
286
|
-
</div>
|
|
287
|
-
</section>
|
|
288
|
-
</div>
|
|
289
|
-
);
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
export default PythonPopup;
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: more-compute
|
|
3
|
-
Version: 0.1.4
|
|
4
|
-
Summary: An interactive notebook environment for local and GPU computing
|
|
5
|
-
Home-page: https://github.com/DannyMang/MORECOMPUTE
|
|
6
|
-
Author: MoreCompute Team
|
|
7
|
-
Author-email: MoreCompute Team <hello@morecompute.dev>
|
|
8
|
-
License: MIT
|
|
9
|
-
Project-URL: Homepage, https://github.com/DannyMang/MORECOMPUTE
|
|
10
|
-
Project-URL: Repository, https://github.com/DannyMang/MORECOMPUTE
|
|
11
|
-
Project-URL: Issues, https://github.com/DannyMang/MORECOMPUTE/issues
|
|
12
|
-
Keywords: jupyter,notebook,gpu,computing,interactive
|
|
13
|
-
Classifier: Development Status :: 3 - Alpha
|
|
14
|
-
Classifier: Intended Audience :: Developers
|
|
15
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
-
Classifier: Operating System :: OS Independent
|
|
17
|
-
Classifier: Programming Language :: Python :: 3
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
-
Requires-Python: >=3.8
|
|
24
|
-
Description-Content-Type: text/markdown
|
|
25
|
-
License-File: LICENSE
|
|
26
|
-
Requires-Dist: fastapi>=0.104.0
|
|
27
|
-
Requires-Dist: uvicorn[standard]>=0.24.0
|
|
28
|
-
Requires-Dist: python-multipart>=0.0.5
|
|
29
|
-
Requires-Dist: nbformat>=5.0.0
|
|
30
|
-
Requires-Dist: click>=8.0.0
|
|
31
|
-
Requires-Dist: pyzmq>=25.0.0
|
|
32
|
-
Requires-Dist: psutil>=5.9.0
|
|
33
|
-
Requires-Dist: httpx>=0.24.0
|
|
34
|
-
Requires-Dist: cachetools>=5.3.0
|
|
35
|
-
Requires-Dist: matplotlib>=3.5.0
|
|
36
|
-
Dynamic: author
|
|
37
|
-
Dynamic: home-page
|
|
38
|
-
Dynamic: license-file
|
|
39
|
-
Dynamic: requires-python
|
|
40
|
-
|
|
41
|
-
# more-compute
|
|
42
|
-
An interactive notebook environment similar to Marimo and Google Colab that runs locally.
|
|
43
|
-
|
|
44
|
-
For references:
|
|
45
|
-
|
|
46
|
-
https://marimo.io/
|
|
47
|
-
|
|
48
|
-
https://colab.google/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
FOR LOCAL DEVELOPMENT:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
pip install -e .
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Installation
|
|
58
|
-
|
|
59
|
-
### Recommended: Using uv
|
|
60
|
-
```bash
|
|
61
|
-
# Install uv
|
|
62
|
-
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
63
|
-
|
|
64
|
-
# Install more-compute
|
|
65
|
-
uv tool install more-compute
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Alternative: Using pip
|
|
69
|
-
```bash
|
|
70
|
-
pip install more-compute
|
|
71
|
-
# you have to add to path manually
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## Usage
|
|
75
|
-
|
|
76
|
-
### Create a new notebook
|
|
77
|
-
```bash
|
|
78
|
-
more-compute new
|
|
79
|
-
```
|
|
80
|
-
This creates a timestamped notebook like `notebook_20241007_153302.ipynb`
|
|
81
|
-
|
|
82
|
-
Or run directly:
|
|
83
|
-
```bash
|
|
84
|
-
python3 kernel_run.py new
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Open an existing notebook
|
|
88
|
-
```bash
|
|
89
|
-
# Open a specific notebook
|
|
90
|
-
more-compute your_notebook.ipynb
|
|
91
|
-
|
|
92
|
-
# Or run directly
|
|
93
|
-
python3 kernel_run.py your_notebook.ipynb
|
|
94
|
-
|
|
95
|
-
# If no path provided, opens default notebook
|
|
96
|
-
more-compute
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Features
|
|
100
|
-
|
|
101
|
-
- **Interactive notebook interface** similar to Google Colab
|
|
102
|
-
- **Support for both `.py` and `.ipynb` files**
|
|
103
|
-
- **Real-time cell execution** with execution timing
|
|
104
|
-
- **Magic commands** support:
|
|
105
|
-
- `!pip install package_name` - Install Python packages
|
|
106
|
-
- `!ls` - List directory contents
|
|
107
|
-
- `!pwd` - Print working directory
|
|
108
|
-
- `!any_shell_command` - Run any shell command
|
|
109
|
-
- **Visual execution feedback**:
|
|
110
|
-
- ✅ Green check icon for successful execution
|
|
111
|
-
- ❌ Red X icon for failed execution
|
|
112
|
-
- Execution timing displayed for each cell
|
|
113
|
-
- **Local development environment** - runs on your machine
|
|
114
|
-
- **Web-based interface** accessible via localhost
|
|
115
|
-
- **Cell management**:
|
|
116
|
-
- Add/delete cells
|
|
117
|
-
- Drag and drop to reorder
|
|
118
|
-
- Code and Markdown cell types
|
|
119
|
-
|
|
120
|
-
## Usage Examples
|
|
121
|
-
|
|
122
|
-
### Installing and Using Libraries
|
|
123
|
-
```python
|
|
124
|
-
# Install packages using magic commands (like Colab)
|
|
125
|
-
!pip install pandas numpy matplotlib
|
|
126
|
-
|
|
127
|
-
# Import and use them
|
|
128
|
-
import pandas as pd
|
|
129
|
-
import numpy as np
|
|
130
|
-
import matplotlib.pyplot as plt
|
|
131
|
-
|
|
132
|
-
# Create some data
|
|
133
|
-
df = pd.DataFrame({
|
|
134
|
-
'x': np.range(10),
|
|
135
|
-
'y': np.random.randn(10)
|
|
136
|
-
})
|
|
137
|
-
|
|
138
|
-
print(df.head())
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Shell Commands
|
|
142
|
-
```bash
|
|
143
|
-
# List files
|
|
144
|
-
!ls -la
|
|
145
|
-
|
|
146
|
-
# Check current directory
|
|
147
|
-
!pwd
|
|
148
|
-
|
|
149
|
-
# Run any shell command
|
|
150
|
-
!echo "Hello from the shell!"
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Data Analysis Example
|
|
154
|
-
```python
|
|
155
|
-
# Load data
|
|
156
|
-
data = pd.read_csv('your_data.csv')
|
|
157
|
-
|
|
158
|
-
# Analyze
|
|
159
|
-
data.describe()
|
|
160
|
-
|
|
161
|
-
# Plot
|
|
162
|
-
plt.figure(figsize=(10, 6))
|
|
163
|
-
plt.plot(data['x'], data['y'])
|
|
164
|
-
plt.title('My Analysis')
|
|
165
|
-
plt.show()
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Development
|
|
169
|
-
|
|
170
|
-
To install in development mode:
|
|
171
|
-
```bash
|
|
172
|
-
pip install -e .
|
|
173
|
-
```
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
kernel_run.py,sha256=yBS0bLg_2x37jfQWzDwDDkEdbm70y46VxYz_oIP50CY,9823
|
|
2
|
-
frontend/.DS_Store,sha256=uQeHnkKyuTF1AVax3NPqtN0uCH6XNXAxL9Nkb6Q9cGw,8196
|
|
3
|
-
frontend/.gitignore,sha256=IH4mX_SQH5rZ-W2M4IUw4E-fxgCBVHKmbQpEYJbWVM0,480
|
|
4
|
-
frontend/README.md,sha256=YLVf9995r3JZD5UkII5GZCvDK9wXXNrUE0loHA4vlY8,1450
|
|
5
|
-
frontend/__init__.py,sha256=L5SAOdfDfKqlgEVCvYQQRDZBTlCxutZKSpJp4018IG4,100
|
|
6
|
-
frontend/eslint.config.mjs,sha256=eA71hsFotYSb8r7NpnjSZqhomanm0Y2Bl_amQ1ieysk,524
|
|
7
|
-
frontend/next-env.d.ts,sha256=ha5a7nXwEZZ88tJcvDQvYtaTFOnZJff0qjRW_Cz_zKY,262
|
|
8
|
-
frontend/next.config.mjs,sha256=n0o6cIIVIoOtI6JlvAK-HUFd2lg1pQPfUwlFS4O6TK0,346
|
|
9
|
-
frontend/next.config.ts,sha256=YUvOJbCJw_GbHhemNGx0uFgDQEAVTGYh59NTAwBHZ8w,133
|
|
10
|
-
frontend/package-lock.json,sha256=M_tcoP7jLAuibnQbNKaNucnU_PDJpteXU5RJHXuKFoY,202440
|
|
11
|
-
frontend/package.json,sha256=VNmvr_yKd9tLmf2zzjld4nxI9OcuiqH3POfwg41ZXso,1093
|
|
12
|
-
frontend/postcss.config.mjs,sha256=FB7yTKJ6mdCJYiEP3yAhLTQ1_c-iG0bNiLRNIvdR364,81
|
|
13
|
-
frontend/tailwind.config.ts,sha256=eP9nVaAuyYo46vGQfCyWbo25_pr2hW830fs1Itcix9Q,620
|
|
14
|
-
frontend/tsconfig.json,sha256=7SvBlRBYmuXAlAteRQTGwEE7ooWuNaPUrZ219dOo61E,598
|
|
15
|
-
frontend/app/favicon.ico,sha256=K4rS0zRVqPc2_DqOv48L3qiEitTA20iigzvQ-c13WTI,25931
|
|
16
|
-
frontend/app/globals.css,sha256=BKXe_SiKaiPCmycFy5jYEkbh9mJqeU7yI-BDDgP6xiM,28926
|
|
17
|
-
frontend/app/layout.tsx,sha256=iHA_C_1DBqYY7Icnq19BwTqp2N-fVEWberjxRqi-PRU,5742
|
|
18
|
-
frontend/app/page.tsx,sha256=p-DgDv8xDnwcRfDJY4rtfSQ2VdYwbnP3G-otWqDR1l0,256
|
|
19
|
-
frontend/components/AddCellButton.tsx,sha256=ob3_tq7SRQbNvbd3UiQRYiCa4Bd7E_YoeDqJOQaHpO0,1068
|
|
20
|
-
frontend/components/Cell.tsx,sha256=MLcmGJTVWiOdi7NhO2VK2w5A7MHNvooDboAQNcg838M,8668
|
|
21
|
-
frontend/components/CellButton.tsx,sha256=BjfazBKzlybA5Syx6tXGTJa1U_jwL8C_IeQKbcHlkyk,1364
|
|
22
|
-
frontend/components/CellOutput.tsx,sha256=D1ZIvOmQvFn_4Y1ahGM5rp0Yr5_Zp_loNJaEUA-GCrA,2073
|
|
23
|
-
frontend/components/ErrorDisplay.tsx,sha256=d6I2WVyDLPsonyDuqsrrN8sc_KHg0VTAW86DfcqfqL0,5978
|
|
24
|
-
frontend/components/ErrorModal.tsx,sha256=kkGHQvgyMYlScKwni04-V_Dq6a0-lg0WodglLARR-uA,3536
|
|
25
|
-
frontend/components/MarkdownRenderer.tsx,sha256=hBOkbQChjOFuGvxltze7GnGW16oE3Rt_afINT7icKX0,2923
|
|
26
|
-
frontend/components/Notebook.tsx,sha256=6EO-obiIA_1S0bF0W7FIubfp0Y98CvnDTOSI8Fx3pC4,16682
|
|
27
|
-
frontend/components/Sidebar.tsx,sha256=EfJ5Pa3FX_zBafu3SNerLbMVlu9y_5naM7a1dI4acOA,1393
|
|
28
|
-
frontend/components/popups/ComputePopup.tsx,sha256=Ivj6wR5l83C87xWcPtrRRpQFkAKpe8v9_7mzhzoWKwA,31199
|
|
29
|
-
frontend/components/popups/FilterPopup.tsx,sha256=4kx9txg8cWeC6XHlh0pu0-BAfZkLTDYEU93fMdzn86M,13818
|
|
30
|
-
frontend/components/popups/FolderPopup.tsx,sha256=V2tDAbztvNIUyPWtFiwjeIoCmFGQyDosQgST_JsAzLo,5215
|
|
31
|
-
frontend/components/popups/MetricsPopup.tsx,sha256=ffkreomH8TyUtJgUpZsJ_R2AFkkb83y5K0rRs0-W_ZY,4935
|
|
32
|
-
frontend/components/popups/PackagesPopup.tsx,sha256=K_9kGlQ-y-njugOLrahbv0KHRh_mXIlzuMg0giRsTb8,3606
|
|
33
|
-
frontend/components/popups/PythonPopup.tsx,sha256=4mo3989glOLBvbzxQlyIczRhFPF9lWKES14uv-dl2Eo,9538
|
|
34
|
-
frontend/components/popups/SettingsPopup.tsx,sha256=djlkfJtUFxdeiTtngWHDx8R7BXIqFgNGVpyVk9evwjg,2644
|
|
35
|
-
frontend/lib/api.ts,sha256=0N4PCSC5pfbq7GvR_6aOdPZ3JGujzi1Rz4V51g8sHP8,10852
|
|
36
|
-
frontend/lib/settings.ts,sha256=TVLMq-d_imiC4kv6f4ufc3vVH4j3CfkJYAYXL7Qalx0,2400
|
|
37
|
-
frontend/lib/websocket-native.ts,sha256=qkwchdTV8uSuL2t7C05NnzOJk_kDHPfcC3AwFL19cC4,5621
|
|
38
|
-
frontend/lib/websocket.ts,sha256=C4Kl5_6ZR5dTYJofNh-R1f3tBYs1yW3BePz6UDqTPpU,3207
|
|
39
|
-
frontend/public/file.svg,sha256=K2eBLDJcGZoCU2zb7qDFk6cvcH0yO3LuPgjbqwZ1O9Q,391
|
|
40
|
-
frontend/public/globe.svg,sha256=thS5vxg5JZV2YayFFJj-HYAp_UOmL7_thvniYkpX588,1035
|
|
41
|
-
frontend/public/next.svg,sha256=VZld-tbstJRaHoVt3KA8XhaqW_E_0htN9qdK55NXvPw,1375
|
|
42
|
-
frontend/public/vercel.svg,sha256=8IEzey_uY1tFW2MnVAaj5_OdagFOJa2Q2rWmfmKhKsQ,128
|
|
43
|
-
frontend/public/window.svg,sha256=ZEdoxKrrR2e84pM0TusMEl-4BKlNgBRAQkByIC2F46E,385
|
|
44
|
-
frontend/public/assets/icons/add.svg,sha256=_R2g6_rQSd9uQ52d_yxLY8kFGvAgJBAOvWUN00aoSkY,511
|
|
45
|
-
frontend/public/assets/icons/check.svg,sha256=MdLhklRIgz5dZqWuUQe0CdBzfA5W63X6RbvOT3C9YTE,261
|
|
46
|
-
frontend/public/assets/icons/copy.svg,sha256=Bd_NXZR-inj4X0WGhkpojErq6F6UXwpdp3DL6rm57r0,355
|
|
47
|
-
frontend/public/assets/icons/folder.svg,sha256=uzpAVxIsuGivdrte56WJOfqCWc1TNN9ldPhrHKEA674,400
|
|
48
|
-
frontend/public/assets/icons/metric.svg,sha256=biafr0qAHRV_8CnMEWrh3Wk3ZMAgbfaL0I1N7Uqfp_U,440
|
|
49
|
-
frontend/public/assets/icons/packages.svg,sha256=70XqerYscy3b-YkLpuNSBalECfmlfRVjgN5Pq4Uvd-I,460
|
|
50
|
-
frontend/public/assets/icons/play.svg,sha256=ca5409xQtDl8rOHp0Dv6t6WWra7QvTupbcGj-OubjL8,326
|
|
51
|
-
frontend/public/assets/icons/python.svg,sha256=uuyGYqFGHCyswya1TScnyy8c4HugLQD1uCbQNRBPZJ8,9605
|
|
52
|
-
frontend/public/assets/icons/setting.svg,sha256=oUwRxiQjyK33aAv4AK1r8FYwIM8RnuwKTTaMU9v_l-U,610
|
|
53
|
-
frontend/public/assets/icons/stop.svg,sha256=98xoeoVwCEFq142v5IYE1GxcD4o3_UGa0pCOu3wzbqw,285
|
|
54
|
-
frontend/public/assets/icons/trash.svg,sha256=ikf6zdvwlLWmmGISVPzrtDlQNMPJ3VskgoCfQCEbCck,398
|
|
55
|
-
frontend/public/assets/icons/up-down.svg,sha256=ocaOoU8RZDKuyrlcPJjESz24GGvas16rytFbC7DXzGg,339
|
|
56
|
-
frontend/public/assets/icons/x.svg,sha256=TPiVYZTK-vRlaG-nLrARcnPIWCJ1xA9sqhr-9Y4Kquk,270
|
|
57
|
-
frontend/public/fonts/Fira.ttf,sha256=dbSM4W7Drd9n_EkfXq8P31KuxbjZ1wtuFiZ8aFebvTw,242896
|
|
58
|
-
frontend/public/fonts/Tiempos.woff2,sha256=h83bJKvAK301wXCMIvK7ZG5j0H2K3tzAfgo0yk4z8OE,13604
|
|
59
|
-
frontend/public/fonts/VeraMono.ttf,sha256=2kKB3H2xej385kpiztkodcWJU0AFXsi6JKORTrl7NJ0,49224
|
|
60
|
-
frontend/types/notebook.ts,sha256=v23RaZe6H3lU5tq6sqnJDPxC2mu0NZFDCJfiN0mgvSs,1359
|
|
61
|
-
more_compute-0.1.4.dist-info/licenses/LICENSE,sha256=0Ot-XIetYt06iay6IhtpJkruD-cLZtjyv7_aIEE-oSc,1073
|
|
62
|
-
morecompute/__init__.py,sha256=pcMVq8Q7qb42AOn7tqgoZJOi3epDDBnEriiv2WVKnXY,87
|
|
63
|
-
morecompute/__version__.py,sha256=Wzf5T3NBDfhQoTnhnRNHSlAsE0XMqbclXG-M81Vas70,22
|
|
64
|
-
morecompute/cli.py,sha256=kVvzvPBqF8xO6UuhU_-TBn99nKwJ405R2mAS6zU0KBc,734
|
|
65
|
-
morecompute/notebook.py,sha256=vSKSjaIZzUbDoPEk2yb4rmM9LA71o44WGqmFen0b70c,3114
|
|
66
|
-
morecompute/process_worker.py,sha256=KsE3r-XpkYGuyO4w3t54VKkD51LfNHAZc3TYattMtrg,7185
|
|
67
|
-
morecompute/server.py,sha256=sAZ9X4CJpd59ZDYjdu7LDYy_Nwd1gQYF9Dn5uRP_uDU,24071
|
|
68
|
-
morecompute/execution/__init__.py,sha256=jPmBmq8BZWbUEY9XFSpqt5FkgX04uNS10WnUlr7Rnms,134
|
|
69
|
-
morecompute/execution/__main__.py,sha256=pAWB_1bn99u8Gb-tVMSMI-NYvbYbDiwbn40L0a0djeA,202
|
|
70
|
-
morecompute/execution/executor.py,sha256=Ngpd_PwQkgvX_ZMEcwGXPKY0OTKtwiI-lrv1ITPF9cA,19399
|
|
71
|
-
morecompute/execution/worker.py,sha256=1XAFMUDbc2A1lO7xUKS9s69Vu6gOMOPdkr8w1pOoQU4,9634
|
|
72
|
-
morecompute/services/pod_manager.py,sha256=eGZyLBiAXVk-rSdQJZOkw5scEHdofwqxNGUJIu78yI0,16684
|
|
73
|
-
morecompute/services/prime_intellect.py,sha256=xHzfKgg8pIKikcMCzgz_5RvXC_LekeIR2gq2hDYRRm4,9129
|
|
74
|
-
morecompute/static/styles.css,sha256=el_NtrUMbAUNSiMVBn1xlG70m3iPv7dyaIbWQMexhsY,19277
|
|
75
|
-
morecompute/utils/__init__.py,sha256=VIxCL3S1pnjEs4cjKGZqZB68_P8FegdeMIqBjJhI5jQ,419
|
|
76
|
-
morecompute/utils/cache_util.py,sha256=lVlXudHvtyvSo_kCSxORJrI85Jod8FrQLbI2f_JOIbA,661
|
|
77
|
-
morecompute/utils/error_utils.py,sha256=e50WLFdD6ngIC30xAgrzdTYtD8tPOIFkKAAh_sPbK0I,11667
|
|
78
|
-
morecompute/utils/notebook_util.py,sha256=3hH94dtXvhizRVTU9a2b38m_51Y4igoXpkjAXUqpVBQ,1353
|
|
79
|
-
morecompute/utils/python_environment_util.py,sha256=l8WWWPwKbypknw8GwL22NXCji5i1FOy1vWG47J6og4g,7441
|
|
80
|
-
morecompute/utils/special_commands.py,sha256=oCmAjKUsIOPIfobaJFDWhN2D5PLkKZtQozR3XAdIMe8,18653
|
|
81
|
-
morecompute/utils/system_environment_util.py,sha256=32mQRubo0i4X61o-825T7m-eUSidcEp07qkInP1sWZA,4774
|
|
82
|
-
more_compute-0.1.4.dist-info/METADATA,sha256=6qFCRZUL5cIf2w811n68rw2n7-AI4tBn4XjA6ADdpf4,3988
|
|
83
|
-
more_compute-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
84
|
-
more_compute-0.1.4.dist-info/entry_points.txt,sha256=xp7z9eRPNRM4oxkZZVlyXkhkSjN1AjoYI_B7qpDJ1bI,49
|
|
85
|
-
more_compute-0.1.4.dist-info/top_level.txt,sha256=Tamm6ADzjwaQa1z27O7Izcyhyt9f0gVjMv1_tC810aI,32
|
|
86
|
-
more_compute-0.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|