more-compute 0.3.1__py3-none-any.whl → 0.3.2__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 CHANGED
@@ -480,6 +480,7 @@ body {
480
480
 
481
481
  .cell:hover {
482
482
  box-shadow: 2px 4px 0 var(--mc-secondary-hover);
483
+ z-index: 11; /* Ensure hovered cell appears above add-cell-line (z-index: 10) */
483
484
  }
484
485
 
485
486
  .cell.active {
@@ -580,9 +580,9 @@ export const MonacoCell: React.FC<CellProps> = ({
580
580
  data-cell-index={index}
581
581
  >
582
582
  {/* Hover Controls */}
583
- {!isMarkdownWithContent && (
584
- <div className="cell-hover-controls">
585
- <div className="cell-actions-right">
583
+ <div className="cell-hover-controls">
584
+ <div className="cell-actions-right">
585
+ {!isMarkdownWithContent && (
586
586
  <CellButton
587
587
  icon={<PlayIcon className="w-6 h-6" />}
588
588
  onClick={(e) => {
@@ -592,35 +592,35 @@ export const MonacoCell: React.FC<CellProps> = ({
592
592
  title={isExecuting ? "Stop execution" : "Run cell"}
593
593
  isLoading={isExecuting}
594
594
  />
595
- <CellButton
596
- icon={<ChevronUpIcon className="w-6 h-6" />}
597
- onClick={(e) => {
598
- e.stopPropagation();
599
- onMoveUp(indexRef.current);
600
- }}
601
- title="Move cell up"
602
- disabled={index === 0}
603
- />
604
- <CellButton
605
- icon={<ChevronDownIcon className="w-6 h-6" />}
606
- onClick={(e) => {
607
- e.stopPropagation();
608
- onMoveDown(indexRef.current);
609
- }}
610
- title="Move cell down"
611
- disabled={index === totalCells - 1}
612
- />
613
- <CellButton
614
- icon={<LinkBreak2Icon className="w-5 h-5" />}
615
- onClick={(e) => {
616
- e.stopPropagation();
617
- onDelete(indexRef.current);
618
- }}
619
- title="Delete cell"
620
- />
621
- </div>
595
+ )}
596
+ <CellButton
597
+ icon={<ChevronUpIcon className="w-6 h-6" />}
598
+ onClick={(e) => {
599
+ e.stopPropagation();
600
+ onMoveUp(indexRef.current);
601
+ }}
602
+ title="Move cell up"
603
+ disabled={index === 0}
604
+ />
605
+ <CellButton
606
+ icon={<ChevronDownIcon className="w-6 h-6" />}
607
+ onClick={(e) => {
608
+ e.stopPropagation();
609
+ onMoveDown(indexRef.current);
610
+ }}
611
+ title="Move cell down"
612
+ disabled={index === totalCells - 1}
613
+ />
614
+ <CellButton
615
+ icon={<LinkBreak2Icon className="w-5 h-5" />}
616
+ onClick={(e) => {
617
+ e.stopPropagation();
618
+ onDelete(indexRef.current);
619
+ }}
620
+ title="Delete cell"
621
+ />
622
622
  </div>
623
- )}
623
+ </div>
624
624
 
625
625
  {/* Cell Content */}
626
626
  <div
@@ -70,9 +70,6 @@ const PackagesPopup: React.FC<PackagesPopupProps> = ({ onClose }) => {
70
70
  return packages.filter(p => p.name.toLowerCase().includes(q));
71
71
  }, [packages, query]);
72
72
 
73
- if (loading) return <div className="packages-list">Loading...</div>;
74
- if (error) return <div className="packages-list">{error}</div>;
75
-
76
73
  return (
77
74
  <div className="packages-container">
78
75
  <div className="packages-toolbar">
@@ -98,12 +95,26 @@ const PackagesPopup: React.FC<PackagesPopupProps> = ({ onClose }) => {
98
95
  <div className="col-version">Version</div>
99
96
  </div>
100
97
  <div className="packages-list">
101
- {filtered.map((pkg) => (
102
- <div key={`${pkg.name}@${pkg.version}`} className="package-row">
103
- <div className="col-name package-name">{pkg.name}</div>
104
- <div className="col-version package-version">{pkg.version}</div>
98
+ {loading ? (
99
+ <div style={{ padding: '20px', textAlign: 'center', color: 'var(--mc-text-color)' }}>
100
+ Loading packages...
101
+ </div>
102
+ ) : error ? (
103
+ <div style={{ padding: '20px', textAlign: 'center', color: '#dc2626' }}>
104
+ {error}
105
+ </div>
106
+ ) : filtered.length === 0 ? (
107
+ <div style={{ padding: '20px', textAlign: 'center', color: 'var(--mc-text-color)', opacity: 0.6 }}>
108
+ {query ? 'No packages found' : 'No packages installed'}
105
109
  </div>
106
- ))}
110
+ ) : (
111
+ filtered.map((pkg) => (
112
+ <div key={`${pkg.name}@${pkg.version}`} className="package-row">
113
+ <div className="col-name package-name">{pkg.name}</div>
114
+ <div className="col-version package-version">{pkg.version}</div>
115
+ </div>
116
+ ))
117
+ )}
107
118
  </div>
108
119
  </div>
109
120
  </div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: more-compute
3
- Version: 0.3.1
3
+ Version: 0.3.2
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
@@ -14,13 +14,13 @@ frontend/styling_README.md,sha256=jvoXKUzJv0rEIU40gz23Z6Xugy4To8P0N9szg_hKrqw,56
14
14
  frontend/tailwind.config.ts,sha256=eP9nVaAuyYo46vGQfCyWbo25_pr2hW830fs1Itcix9Q,620
15
15
  frontend/tsconfig.json,sha256=7SvBlRBYmuXAlAteRQTGwEE7ooWuNaPUrZ219dOo61E,598
16
16
  frontend/app/favicon.ico,sha256=K4rS0zRVqPc2_DqOv48L3qiEitTA20iigzvQ-c13WTI,25931
17
- frontend/app/globals.css,sha256=zx2VGZhPHqrFSwCsW667gJ80BkEwL8E7J_IJNoMuYGQ,33738
17
+ frontend/app/globals.css,sha256=0k9WgoXRHIQjsI5kVSSkKLfYJs04FYOhOY8JvQrSulg,33823
18
18
  frontend/app/layout.tsx,sha256=VMkhvePu0hV0w-huEmTocTr7lZ6DF_7eidrhzCCMwzc,7604
19
19
  frontend/app/page.tsx,sha256=p-DgDv8xDnwcRfDJY4rtfSQ2VdYwbnP3G-otWqDR1l0,256
20
20
  frontend/components/Notebook.tsx,sha256=JImlThoX4F363yShOqdYDjIIO3i1uqfCLRkDlzurinQ,21851
21
21
  frontend/components/cell/AddCellButton.tsx,sha256=ZC2Vck0JIRDxGYhYv3LPYAdKDo13U6008WG_-XoPlIM,1012
22
22
  frontend/components/cell/CellButton.tsx,sha256=j3lRStluVtRXjZOhi9isS3XKsRmM0WTn5SaFDM6GuYg,1386
23
- frontend/components/cell/MonacoCell.tsx,sha256=YunwOlyeRsFqx-sHowhctqMV0RmhcQ1glSl5LO0s7NY,23914
23
+ frontend/components/cell/MonacoCell.tsx,sha256=EqsajBZuQpoOWlNVG7OmmoIyY4pUfW5obiBwpniuQbw,23862
24
24
  frontend/components/layout/ConnectionBanner.tsx,sha256=-m77wKCFpeRJ_AQwnM38jLwCY5vfpqE846xeXmT3p8A,870
25
25
  frontend/components/layout/Sidebar.tsx,sha256=kxgO2mXX11xI6rX478cUqqQ3xB40jlby21y27GTJSLU,1551
26
26
  frontend/components/modals/ConfirmModal.tsx,sha256=3WgXy_wmR8FHZPwzMevfZHFXa0blR4v_SbKG3d5McT4,3652
@@ -33,7 +33,7 @@ frontend/components/popups/ComputePopup.tsx,sha256=B7AwwjpJ9_nNI5qSN53jdR2tAulB5
33
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
- frontend/components/popups/PackagesPopup.tsx,sha256=faeXL7hGFIEUBU6PUrTIr9P5Lw-81GGKWK1ldnIEDcc,3675
36
+ frontend/components/popups/PackagesPopup.tsx,sha256=2DnwNVN8kwC3ff1UN_7cl6qLwAFE9F9H8hYwl7M3jTM,4141
37
37
  frontend/components/popups/SettingsPopup.tsx,sha256=rGwYxjkADnyTtpP0MjVpFPBsGoT1eENN2z7nWjLuzFE,2773
38
38
  frontend/contexts/PodWebSocketContext.tsx,sha256=QyEg1Msyum7h3T6F3j6pn4Ds5sXFT_9WYu5_0YZ2IUI,8256
39
39
  frontend/lib/api.ts,sha256=L6Js3K7RcPCLfVVUz-bKX5hLAVFKCfUSHAKSHk2keAk,11026
@@ -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.1.dist-info/licenses/LICENSE,sha256=0Ot-XIetYt06iay6IhtpJkruD-cLZtjyv7_aIEE-oSc,1073
67
+ more_compute-0.3.2.dist-info/licenses/LICENSE,sha256=0Ot-XIetYt06iay6IhtpJkruD-cLZtjyv7_aIEE-oSc,1073
68
68
  morecompute/__init__.py,sha256=pcMVq8Q7qb42AOn7tqgoZJOi3epDDBnEriiv2WVKnXY,87
69
- morecompute/__version__.py,sha256=r4xAFihOf72W9TD-lpMi6ntWSTKTP2SlzKP1ytkjRbI,22
69
+ morecompute/__version__.py,sha256=vNiWJ14r_cw5t_7UDqDQIVZvladKFGyHH2avsLpN7Vg,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
@@ -74,7 +74,7 @@ morecompute/server.py,sha256=mdN80iBUixq4KUQfu53aoVsNZ6DM9RaBXc-lwt4bxFk,40285
74
74
  morecompute/execution/__init__.py,sha256=jPmBmq8BZWbUEY9XFSpqt5FkgX04uNS10WnUlr7Rnms,134
75
75
  morecompute/execution/__main__.py,sha256=pAWB_1bn99u8Gb-tVMSMI-NYvbYbDiwbn40L0a0djeA,202
76
76
  morecompute/execution/executor.py,sha256=BesGdx10HSGj8PyPrekdQZzc0tXoqidznEaFITOq8JM,20554
77
- morecompute/execution/worker.py,sha256=4yZc_Z4A_nhCv_Lv8MaseSe7KYdXPYK5yDeQeDZoVwM,16004
77
+ morecompute/execution/worker.py,sha256=-_-KD89LVA1DmGa1fTqKekttTOGX_JMtUdO02-SV5DE,16388
78
78
  morecompute/models/__init__.py,sha256=VLJ5GWi2uTNiZBdvl-ipSbmA6EL8FZHZ5oq-rJmm9z0,640
79
79
  morecompute/models/api_models.py,sha256=-ydvi9SeTfdoY9oVPNQS4by-kQGSknx6BHhGD8E2tpo,4553
80
80
  morecompute/services/data_manager.py,sha256=c4GKucetMM-VPNbHyzce6bZRvFfmz8kTd5RppLjoLVc,14329
@@ -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.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,,
98
+ more_compute-0.3.2.dist-info/METADATA,sha256=qO93-kelqgnC3wWl2NzLe_JyMfOnGtBJ3wPY5WqadrI,3631
99
+ more_compute-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
100
+ more_compute-0.3.2.dist-info/entry_points.txt,sha256=xp7z9eRPNRM4oxkZZVlyXkhkSjN1AjoYI_B7qpDJ1bI,49
101
+ more_compute-0.3.2.dist-info/top_level.txt,sha256=Tamm6ADzjwaQa1z27O7Izcyhyt9f0gVjMv1_tC810aI,32
102
+ more_compute-0.3.2.dist-info/RECORD,,
@@ -1 +1 @@
1
- __version__ = "0.3.1"
1
+ __version__ = "0.3.2"
@@ -332,7 +332,14 @@ def worker_main():
332
332
  if lines:
333
333
  last = lines[-1].strip()
334
334
  # Skip comments and empty lines
335
- if last and not last.startswith('#'):
335
+ if not last or last.startswith('#'):
336
+ last = None
337
+ # Skip orphaned closing brackets from multi-line expressions
338
+ # e.g., the ')' from: model = func(\n arg1,\n arg2\n)
339
+ elif last.lstrip().startswith(')') or last.lstrip().startswith('}') or last.lstrip().startswith(']'):
340
+ last = None
341
+
342
+ if last:
336
343
  # Check if it looks like a statement (assignment, import, etc)
337
344
  is_statement = False
338
345