more-compute 0.3.0__py3-none-any.whl → 0.3.1__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.
@@ -84,8 +84,8 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
84
84
  top: "50%",
85
85
  left: "50%",
86
86
  transform: "translate(-50%, -50%)",
87
- backgroundColor: "white",
88
- border: "1px solid #d1d5db",
87
+ backgroundColor: "var(--mc-cell-background)",
88
+ border: "1px solid var(--mc-border)",
89
89
  borderRadius: "8px",
90
90
  padding: "16px",
91
91
  width: "320px",
@@ -110,7 +110,7 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
110
110
  fontSize: "14px",
111
111
  fontWeight: 600,
112
112
  margin: 0,
113
- color: "#111827",
113
+ color: "var(--mc-text-color)",
114
114
  }}
115
115
  >
116
116
  Filter
@@ -119,7 +119,7 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
119
119
  onClick={handleClearAll}
120
120
  style={{
121
121
  fontSize: "11px",
122
- color: "#3b82f6",
122
+ color: "var(--mc-primary)",
123
123
  background: "none",
124
124
  border: "none",
125
125
  cursor: "pointer",
@@ -142,9 +142,9 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
142
142
  width: "100%",
143
143
  padding: "8px 10px",
144
144
  borderRadius: "6px",
145
- border: "1px solid #d1d5db",
146
- backgroundColor: "white",
147
- color: "#111827",
145
+ border: "1px solid var(--mc-border)",
146
+ backgroundColor: "var(--mc-input-background)",
147
+ color: "var(--mc-text-color)",
148
148
  fontSize: "12px",
149
149
  marginBottom: "12px",
150
150
  cursor: "pointer",
@@ -166,9 +166,9 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
166
166
  width: "100%",
167
167
  padding: "8px 10px",
168
168
  borderRadius: "6px",
169
- border: "1px solid #d1d5db",
170
- backgroundColor: "white",
171
- color: "#111827",
169
+ border: "1px solid var(--mc-border)",
170
+ backgroundColor: "var(--mc-input-background)",
171
+ color: "var(--mc-text-color)",
172
172
  fontSize: "12px",
173
173
  marginBottom: "12px",
174
174
  boxSizing: "border-box",
@@ -182,7 +182,7 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
182
182
  overflowY: "auto",
183
183
  marginBottom: "16px",
184
184
  maxHeight: "240px",
185
- border: "1px solid #e5e7eb",
185
+ border: "1px solid var(--mc-border)",
186
186
  borderRadius: "6px",
187
187
  padding: "4px",
188
188
  }}
@@ -200,12 +200,12 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
200
200
  padding: "8px 6px",
201
201
  cursor: "pointer",
202
202
  fontSize: "12px",
203
- color: "#374151",
203
+ color: "var(--mc-text-color)",
204
204
  borderRadius: "4px",
205
205
  transition: "background-color 0.15s",
206
206
  }}
207
207
  onMouseEnter={(e) =>
208
- (e.currentTarget.style.backgroundColor = "#f3f4f6")
208
+ (e.currentTarget.style.backgroundColor = "var(--mc-secondary)")
209
209
  }
210
210
  onMouseLeave={(e) =>
211
211
  (e.currentTarget.style.backgroundColor = "transparent")
@@ -249,12 +249,12 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
249
249
  padding: "8px 6px",
250
250
  cursor: "pointer",
251
251
  fontSize: "12px",
252
- color: "#374151",
252
+ color: "var(--mc-text-color)",
253
253
  borderRadius: "4px",
254
254
  transition: "background-color 0.15s",
255
255
  }}
256
256
  onMouseEnter={(e) =>
257
- (e.currentTarget.style.backgroundColor = "#f3f4f6")
257
+ (e.currentTarget.style.backgroundColor = "var(--mc-secondary)")
258
258
  }
259
259
  onMouseLeave={(e) =>
260
260
  (e.currentTarget.style.backgroundColor = "transparent")
@@ -303,12 +303,12 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
303
303
  padding: "8px 6px",
304
304
  cursor: "pointer",
305
305
  fontSize: "12px",
306
- color: "#374151",
306
+ color: "var(--mc-text-color)",
307
307
  borderRadius: "4px",
308
308
  transition: "background-color 0.15s",
309
309
  }}
310
310
  onMouseEnter={(e) =>
311
- (e.currentTarget.style.backgroundColor = "#f3f4f6")
311
+ (e.currentTarget.style.backgroundColor = "var(--mc-secondary)")
312
312
  }
313
313
  onMouseLeave={(e) =>
314
314
  (e.currentTarget.style.backgroundColor = "transparent")
@@ -352,12 +352,12 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
352
352
  padding: "8px 6px",
353
353
  cursor: "pointer",
354
354
  fontSize: "12px",
355
- color: "#374151",
355
+ color: "var(--mc-text-color)",
356
356
  borderRadius: "4px",
357
357
  transition: "background-color 0.15s",
358
358
  }}
359
359
  onMouseEnter={(e) =>
360
- (e.currentTarget.style.backgroundColor = "#f3f4f6")
360
+ (e.currentTarget.style.backgroundColor = "var(--mc-secondary)")
361
361
  }
362
362
  onMouseLeave={(e) =>
363
363
  (e.currentTarget.style.backgroundColor = "transparent")
@@ -390,9 +390,9 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
390
390
  padding: "8px 16px",
391
391
  fontSize: "12px",
392
392
  borderRadius: "6px",
393
- border: "1px solid #d1d5db",
394
- backgroundColor: "white",
395
- color: "#374151",
393
+ border: "1px solid var(--mc-border)",
394
+ backgroundColor: "var(--mc-secondary)",
395
+ color: "var(--mc-text-color)",
396
396
  cursor: "pointer",
397
397
  fontWeight: 500,
398
398
  }}
@@ -410,8 +410,8 @@ const FilterPopup: React.FC<FilterPopupProps> = ({
410
410
  fontSize: "12px",
411
411
  borderRadius: "6px",
412
412
  border: "none",
413
- backgroundColor: "#3b82f6",
414
- color: "white",
413
+ backgroundColor: "var(--mc-primary)",
414
+ color: "var(--mc-button-foreground)",
415
415
  cursor: "pointer",
416
416
  fontWeight: 500,
417
417
  }}
kernel_run.py CHANGED
@@ -24,6 +24,7 @@ class NotebookLauncher:
24
24
  self.debug = debug
25
25
  self.notebook_path = notebook_path
26
26
  self.is_windows = platform.system() == "Windows"
27
+ self.cleaning_up = False # Flag to prevent multiple cleanup calls
27
28
  root_dir = notebook_path.parent if notebook_path.parent != Path('') else Path.cwd()
28
29
  os.environ["MORECOMPUTE_ROOT"] = str(root_dir.resolve())
29
30
  os.environ["MORECOMPUTE_NOTEBOOK_PATH"] = str(self.notebook_path)
@@ -262,8 +263,14 @@ class NotebookLauncher:
262
263
  self.cleanup()
263
264
  sys.exit(1)
264
265
 
265
- def cleanup(self):
266
+ def cleanup(self, force=False):
266
267
  """Clean up processes on exit"""
268
+ if self.cleaning_up:
269
+ return # Already cleaning up, don't run again
270
+ self.cleaning_up = True
271
+
272
+ timeout = 0.5 if force else 2 # Shorter timeout on force exit
273
+
267
274
  if self.frontend_process:
268
275
  try:
269
276
  if self.is_windows:
@@ -274,11 +281,14 @@ class NotebookLauncher:
274
281
  stderr=subprocess.DEVNULL
275
282
  )
276
283
  else:
277
- self.frontend_process.terminate()
278
- try:
279
- self.frontend_process.wait(timeout=5)
280
- except subprocess.TimeoutExpired:
281
- self.frontend_process.kill()
284
+ if force:
285
+ self.frontend_process.kill() # Force kill immediately
286
+ else:
287
+ self.frontend_process.terminate()
288
+ try:
289
+ self.frontend_process.wait(timeout=timeout)
290
+ except subprocess.TimeoutExpired:
291
+ self.frontend_process.kill()
282
292
  except Exception:
283
293
  pass
284
294
 
@@ -292,11 +302,14 @@ class NotebookLauncher:
292
302
  stderr=subprocess.DEVNULL
293
303
  )
294
304
  else:
295
- self.backend_process.terminate()
296
- try:
297
- self.backend_process.wait(timeout=5)
298
- except subprocess.TimeoutExpired:
299
- self.backend_process.kill()
305
+ if force:
306
+ self.backend_process.kill() # Force kill immediately
307
+ else:
308
+ self.backend_process.terminate()
309
+ try:
310
+ self.backend_process.wait(timeout=timeout)
311
+ except subprocess.TimeoutExpired:
312
+ self.backend_process.kill()
300
313
  except Exception:
301
314
  pass
302
315
 
@@ -316,8 +329,8 @@ class NotebookLauncher:
316
329
  print("[CTRL-C AGAIN TO EXIT]")
317
330
  else:
318
331
  print("\n Thanks for using MoreCompute!\n")
319
- self.cleanup()
320
- sys.exit(0)
332
+ self.cleanup(force=True) # Force immediate cleanup
333
+ os._exit(0) # Hard exit without raising SystemExit
321
334
 
322
335
  # Windows signal handling is different
323
336
  if not self.is_windows:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: more-compute
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: An interactive notebook environment for local and GPU computing
5
5
  Home-page: https://github.com/DannyMang/MORECOMPUTE
6
6
  Author: MoreCompute Team
@@ -1,4 +1,4 @@
1
- kernel_run.py,sha256=XAgUmZO9EVPXMlQe8RO8w4s_NveB9U7J6S-CyF12D0o,15847
1
+ kernel_run.py,sha256=sQchzBOWgynXOKkSMp8T8BAkljw5CqDFrHX2Y0U6yto,16526
2
2
  frontend/.DS_Store,sha256=uQeHnkKyuTF1AVax3NPqtN0uCH6XNXAxL9Nkb6Q9cGw,8196
3
3
  frontend/.gitignore,sha256=IH4mX_SQH5rZ-W2M4IUw4E-fxgCBVHKmbQpEYJbWVM0,480
4
4
  frontend/README.md,sha256=YLVf9995r3JZD5UkII5GZCvDK9wXXNrUE0loHA4vlY8,1450
@@ -30,7 +30,7 @@ frontend/components/output/CellOutput.tsx,sha256=KLRzwEchvBoeoai8TbabKEwO4tHmog3
30
30
  frontend/components/output/ErrorDisplay.tsx,sha256=kYfip5zikcFIuN7WW47RVjoqwDujC1q_yMbgHrHl0E0,4996
31
31
  frontend/components/output/MarkdownRenderer.tsx,sha256=RtZ5yNRxDXIh_NkNsNiy30wMGIW7V1gfhsjecgMdc80,3341
32
32
  frontend/components/popups/ComputePopup.tsx,sha256=B7AwwjpJ9_nNI5qSN53jdR2tAulB5yl7spjMXjH4yDM,44021
33
- frontend/components/popups/FilterPopup.tsx,sha256=4kx9txg8cWeC6XHlh0pu0-BAfZkLTDYEU93fMdzn86M,13818
33
+ frontend/components/popups/FilterPopup.tsx,sha256=KRIzRvVxEF47ELWIAvrqv7BZQYmEo_zOX8Nbpz0zEik,14133
34
34
  frontend/components/popups/FolderPopup.tsx,sha256=V2tDAbztvNIUyPWtFiwjeIoCmFGQyDosQgST_JsAzLo,5215
35
35
  frontend/components/popups/MetricsPopup.tsx,sha256=ublYbOQ-pSU_w48F10uFjDYctysEwmri9lrji5YHIC4,6034
36
36
  frontend/components/popups/PackagesPopup.tsx,sha256=faeXL7hGFIEUBU6PUrTIr9P5Lw-81GGKWK1ldnIEDcc,3675
@@ -64,9 +64,9 @@ frontend/public/fonts/Fira.ttf,sha256=dbSM4W7Drd9n_EkfXq8P31KuxbjZ1wtuFiZ8aFebvT
64
64
  frontend/public/fonts/Tiempos.woff2,sha256=h83bJKvAK301wXCMIvK7ZG5j0H2K3tzAfgo0yk4z8OE,13604
65
65
  frontend/public/fonts/VeraMono.ttf,sha256=2kKB3H2xej385kpiztkodcWJU0AFXsi6JKORTrl7NJ0,49224
66
66
  frontend/types/notebook.ts,sha256=v23RaZe6H3lU5tq6sqnJDPxC2mu0NZFDCJfiN0mgvSs,1359
67
- more_compute-0.3.0.dist-info/licenses/LICENSE,sha256=0Ot-XIetYt06iay6IhtpJkruD-cLZtjyv7_aIEE-oSc,1073
67
+ more_compute-0.3.1.dist-info/licenses/LICENSE,sha256=0Ot-XIetYt06iay6IhtpJkruD-cLZtjyv7_aIEE-oSc,1073
68
68
  morecompute/__init__.py,sha256=pcMVq8Q7qb42AOn7tqgoZJOi3epDDBnEriiv2WVKnXY,87
69
- morecompute/__version__.py,sha256=VrXpHDu3erkzwl_WXrqINBm9xWkcyUy53IQOj042dOs,22
69
+ morecompute/__version__.py,sha256=r4xAFihOf72W9TD-lpMi6ntWSTKTP2SlzKP1ytkjRbI,22
70
70
  morecompute/cli.py,sha256=kVvzvPBqF8xO6UuhU_-TBn99nKwJ405R2mAS6zU0KBc,734
71
71
  morecompute/notebook.py,sha256=KEcv0eOEh9N7bPVGoRuKJb47G9MmpQ5zz1B6Dm58w18,4651
72
72
  morecompute/process_worker.py,sha256=KsE3r-XpkYGuyO4w3t54VKkD51LfNHAZc3TYattMtrg,7185
@@ -95,8 +95,8 @@ morecompute/utils/shell_utils.py,sha256=fGFLhQLZU-lmMGALbbS-fKPkhQtmMhZ1FkgQ3Teo
95
95
  morecompute/utils/special_commands.py,sha256=IyF9MTINMNNo3P_f56Q6yS_P2HNjA9vohYVxEV7KYnc,17331
96
96
  morecompute/utils/system_environment_util.py,sha256=32mQRubo0i4X61o-825T7m-eUSidcEp07qkInP1sWZA,4774
97
97
  morecompute/utils/zmq_util.py,sha256=tx7-iS04UN69OFtBzkxcEnRhT7xtI9EzRnrZ_nsH_O0,1889
98
- more_compute-0.3.0.dist-info/METADATA,sha256=86In89hNjbgE5pKBac7gAQ9YKQD-hVbL3b9IecnskMo,3631
99
- more_compute-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
- more_compute-0.3.0.dist-info/entry_points.txt,sha256=xp7z9eRPNRM4oxkZZVlyXkhkSjN1AjoYI_B7qpDJ1bI,49
101
- more_compute-0.3.0.dist-info/top_level.txt,sha256=Tamm6ADzjwaQa1z27O7Izcyhyt9f0gVjMv1_tC810aI,32
102
- more_compute-0.3.0.dist-info/RECORD,,
98
+ more_compute-0.3.1.dist-info/METADATA,sha256=sJSEnJl02gb23g01UgOx8LXmdb9RUtuweZ7Z-Ak43eA,3631
99
+ more_compute-0.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
+ more_compute-0.3.1.dist-info/entry_points.txt,sha256=xp7z9eRPNRM4oxkZZVlyXkhkSjN1AjoYI_B7qpDJ1bI,49
101
+ more_compute-0.3.1.dist-info/top_level.txt,sha256=Tamm6ADzjwaQa1z27O7Izcyhyt9f0gVjMv1_tC810aI,32
102
+ more_compute-0.3.1.dist-info/RECORD,,
@@ -1 +1 @@
1
- __version__ = "0.3.0"
1
+ __version__ = "0.3.1"