arrayview 0.26.1__py3-none-any.whl → 0.26.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.
- arrayview/_stdio_server.py +51 -2
- {arrayview-0.26.1.dist-info → arrayview-0.26.2.dist-info}/METADATA +1 -1
- {arrayview-0.26.1.dist-info → arrayview-0.26.2.dist-info}/RECORD +6 -6
- {arrayview-0.26.1.dist-info → arrayview-0.26.2.dist-info}/WHEEL +0 -0
- {arrayview-0.26.1.dist-info → arrayview-0.26.2.dist-info}/entry_points.txt +0 -0
- {arrayview-0.26.1.dist-info → arrayview-0.26.2.dist-info}/licenses/LICENSE +0 -0
arrayview/_stdio_server.py
CHANGED
|
@@ -115,14 +115,19 @@ def _handle_register(msg: dict) -> None:
|
|
|
115
115
|
name = msg.get("name") or __import__("os").path.basename(file_path)
|
|
116
116
|
options = msg.get("options", {})
|
|
117
117
|
|
|
118
|
-
from ._io import
|
|
118
|
+
from ._io import list_array_keys
|
|
119
119
|
|
|
120
|
+
array_keys = list_array_keys(file_path)
|
|
121
|
+
key = array_keys[0]["key"] if array_keys else None
|
|
120
122
|
data, spatial_meta = load_data_with_meta(
|
|
121
123
|
file_path,
|
|
122
|
-
key=
|
|
124
|
+
key=key,
|
|
123
125
|
)
|
|
124
126
|
session = Session(data=data, filepath=file_path, name=name)
|
|
125
127
|
session.spatial_meta = spatial_meta
|
|
128
|
+
if len(array_keys) > 1:
|
|
129
|
+
session.array_keys = array_keys
|
|
130
|
+
session.array_filepath = file_path
|
|
126
131
|
if spatial_meta is not None:
|
|
127
132
|
session.original_volume = data
|
|
128
133
|
|
|
@@ -154,6 +159,48 @@ def _handle_metadata(msg: dict) -> None:
|
|
|
154
159
|
_write_json(_build_metadata(session))
|
|
155
160
|
|
|
156
161
|
|
|
162
|
+
def _handle_reload_key(sid: str, msg: dict) -> None:
|
|
163
|
+
"""Reload a session's data from a multi-array file with a different key."""
|
|
164
|
+
session = SESSIONS.get(sid)
|
|
165
|
+
if not session:
|
|
166
|
+
_write_error("session not found")
|
|
167
|
+
return
|
|
168
|
+
array_filepath = getattr(session, "array_filepath", None)
|
|
169
|
+
if not array_filepath:
|
|
170
|
+
_write_error("session has no array keys")
|
|
171
|
+
return
|
|
172
|
+
|
|
173
|
+
try:
|
|
174
|
+
body = json.loads(msg.get("body") or "{}")
|
|
175
|
+
except Exception:
|
|
176
|
+
_write_error("invalid JSON body")
|
|
177
|
+
return
|
|
178
|
+
key = body.get("key")
|
|
179
|
+
if not key:
|
|
180
|
+
_write_error("key is required")
|
|
181
|
+
return
|
|
182
|
+
|
|
183
|
+
try:
|
|
184
|
+
from ._io import load_data
|
|
185
|
+
|
|
186
|
+
data = load_data(array_filepath, key=key)
|
|
187
|
+
except Exception as e:
|
|
188
|
+
_write_error(str(e))
|
|
189
|
+
return
|
|
190
|
+
|
|
191
|
+
session.data = data
|
|
192
|
+
session.shape = data.shape
|
|
193
|
+
session.data_version += 1
|
|
194
|
+
session.raw_cache.clear()
|
|
195
|
+
session.rgba_cache.clear()
|
|
196
|
+
session.mosaic_cache.clear()
|
|
197
|
+
session._raw_bytes = 0
|
|
198
|
+
session._rgba_bytes = 0
|
|
199
|
+
session._mosaic_bytes = 0
|
|
200
|
+
session._estimated_mem = session._estimate_memory()
|
|
201
|
+
_write_json({"ok": True})
|
|
202
|
+
|
|
203
|
+
|
|
157
204
|
def _handle_sessions() -> None:
|
|
158
205
|
"""Return list of active sessions."""
|
|
159
206
|
_write_json([_session_summary(s) for s in SESSIONS.values()])
|
|
@@ -409,6 +456,8 @@ def _handle_fetch_proxy(msg: dict) -> None:
|
|
|
409
456
|
_handle_metadata({"sid": sid})
|
|
410
457
|
elif route == "clearcache" and sid:
|
|
411
458
|
_handle_clearcache({"sid": sid})
|
|
459
|
+
elif route == "session" and len(parts) >= 3 and parts[2] == "reload-key":
|
|
460
|
+
_handle_reload_key(parts[1], msg)
|
|
412
461
|
elif route == "sessions":
|
|
413
462
|
_handle_sessions()
|
|
414
463
|
elif route == "histogram" and sid:
|
|
@@ -29,7 +29,7 @@ arrayview/_segmentation.py,sha256=aENWHmefrKDScXhcZL1X3KgYXE784dpMkmFFo83qnrw,73
|
|
|
29
29
|
arrayview/_server.py,sha256=HpgoSxW76Rp8q_BnBBtuHdrpmdzHfxVRphSoydtTkR8,7733
|
|
30
30
|
arrayview/_session.py,sha256=OD3f2Q2gubZt1ftoIwfPX3SfKmCvPYy_FbplmmSnLSg,17427
|
|
31
31
|
arrayview/_shell.html,sha256=xzHIB-kRX12okubZoqdrgsWDY8CCLteg5jtXxDQru8U,11624
|
|
32
|
-
arrayview/_stdio_server.py,sha256=
|
|
32
|
+
arrayview/_stdio_server.py,sha256=ECwUGHuO6KUx4TlQPPzqFZoL48HOTFc0n2ckCPo69Mc,33954
|
|
33
33
|
arrayview/_synthetic_mri.py,sha256=zb613sIke-yljrILKYn_f-1SB6T4XsB4f916STgAp4M,6756
|
|
34
34
|
arrayview/_torch.py,sha256=13sqIMCUu_-b9SQ9KfDCExDz2UMStL87EDVjnbJxAEo,7536
|
|
35
35
|
arrayview/_vectorfield.py,sha256=eDqMCMEGjO8Jdt-6Auh01cz3WD9dbF7xYUWD9xHAf1E,8115
|
|
@@ -41,8 +41,8 @@ arrayview/_vscode_shm.py,sha256=Rm5DapeorNwhnLnVz5fkXcctkQqTzii9uLxnOxxIMU4,2238
|
|
|
41
41
|
arrayview/_vscode_signal.py,sha256=rSDPEjFeX4dl2PnlBMlVsFO_lmRhgJ7eHlNmNDY4h9U,33840
|
|
42
42
|
arrayview/arrayview-opener.vsix,sha256=uxIm_06uI9RC7N54SpckwhkjIh0yKLXDv613hvJTgV0,19098
|
|
43
43
|
arrayview/gsap.min.js,sha256=VGihm4idI0E1uqrWezWsiScB9F_jMosn7qs6pPSkeac,72304
|
|
44
|
-
arrayview-0.26.
|
|
45
|
-
arrayview-0.26.
|
|
46
|
-
arrayview-0.26.
|
|
47
|
-
arrayview-0.26.
|
|
48
|
-
arrayview-0.26.
|
|
44
|
+
arrayview-0.26.2.dist-info/METADATA,sha256=sazLVlN3xN1zUgSTLeUfNDe26FsnvIVDaZ7chzzuSEI,2161
|
|
45
|
+
arrayview-0.26.2.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
|
|
46
|
+
arrayview-0.26.2.dist-info/entry_points.txt,sha256=FQSz3M11B-zaVLDyXofKUDvMhHASz7OjmoLgI4nn7ko,105
|
|
47
|
+
arrayview-0.26.2.dist-info/licenses/LICENSE,sha256=34OivjM9faB2QaPjZpMRTIiSx31V3U9cEyQ6F2k-bH0,1062
|
|
48
|
+
arrayview-0.26.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|