arrayview 0.47.1__tar.gz → 0.47.3__tar.gz
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-0.47.1 → arrayview-0.47.3}/PKG-INFO +1 -1
- {arrayview-0.47.1 → arrayview-0.47.3}/pyproject.toml +1 -1
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_preferences.py +1 -1
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_viewer.html +6 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_vscode_extension.py +1 -1
- arrayview-0.47.3/src/arrayview/arrayview-opener.vsix +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/conftest.py +15 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_api.py +612 -4098
- arrayview-0.47.3/tests/test_browser.py +1010 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_launch_blackbox.py +69 -283
- arrayview-0.47.3/tests/test_vsix_bundle.py +19 -0
- arrayview-0.47.1/src/arrayview/arrayview-opener.vsix +0 -0
- arrayview-0.47.1/tests/lifecycle_matrix.py +0 -416
- arrayview-0.47.1/tests/test_bootstrap_app.py +0 -114
- arrayview-0.47.1/tests/test_browser.py +0 -7533
- arrayview-0.47.1/tests/test_colorbar_hover_highlight.py +0 -156
- arrayview-0.47.1/tests/test_display_opener_results.py +0 -536
- arrayview-0.47.1/tests/test_doctor_commands.py +0 -104
- arrayview-0.47.1/tests/test_invocation_contract_matrix.py +0 -232
- arrayview-0.47.1/tests/test_launch_diagnostics.py +0 -137
- arrayview-0.47.1/tests/test_launch_execution_ownership.py +0 -283
- arrayview-0.47.1/tests/test_launch_plan.py +0 -816
- arrayview-0.47.1/tests/test_launch_trace.py +0 -231
- arrayview-0.47.1/tests/test_lifecycle_contract.py +0 -2511
- arrayview-0.47.1/tests/test_loading_server.py +0 -107
- arrayview-0.47.1/tests/test_mode_consistency.py +0 -1248
- arrayview-0.47.1/tests/test_mode_matrix.py +0 -658
- arrayview-0.47.1/tests/test_preferences_ui.py +0 -185
- arrayview-0.47.1/tests/test_public_invocation_regressions.py +0 -350
- arrayview-0.47.1/tests/test_render_failure_reporting.py +0 -74
- arrayview-0.47.1/tests/test_render_progress.py +0 -275
- arrayview-0.47.1/tests/test_roi_hud.py +0 -200
- arrayview-0.47.1/tests/test_server_identity_status.py +0 -82
- arrayview-0.47.1/tests/test_session_spec.py +0 -93
- arrayview-0.47.1/tests/test_spawn_ownership.py +0 -175
- arrayview-0.47.1/tests/test_tunnel_warm_path.py +0 -160
- arrayview-0.47.1/tests/test_tutorial_browser.py +0 -481
- arrayview-0.47.1/tests/test_value_formatting.py +0 -126
- arrayview-0.47.1/tests/test_view_handle_lifecycle.py +0 -110
- arrayview-0.47.1/tests/test_view_launch_execution.py +0 -311
- arrayview-0.47.1/tests/test_vscode_ack_protocol.py +0 -485
- arrayview-0.47.1/tests/test_window_level_preview.py +0 -101
- {arrayview-0.47.1 → arrayview-0.47.3}/.gitignore +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/LICENSE +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/README.md +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/ARCHITECTURE.md +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/__init__.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/__main__.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_analysis.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_app.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_bootstrap_app.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_config.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_diagnostics.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_dicom.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_diff.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_extra_ports.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_icon.png +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_imaging.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_instance_registry.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_io.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_launch_plan.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_launch_trace.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_launcher.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_lifecycle.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_overlays.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_platform.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_render.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_analysis.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_drop.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_export.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_loading.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_persistence.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_preload.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_query.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_rendering.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_segmentation.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_state.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_vectorfield.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_routes_websocket.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_segmentation.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_server.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_session.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_session_spec.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_shell.html +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_source_safety.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_synthetic_mri.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_torch.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_tutorial.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_vectorfield.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_vscode.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_vscode_browser.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_vscode_signal.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/_watch.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/gsap.min.js +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/src/arrayview/todo.md +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/capture_patient_loading.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/capture_v_animation.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/make_vectorfield_test_arrays.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_1d_arrays.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_backend_shared.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_cli.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_config.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_dicom.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_drop_import.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_instance_registry.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_io.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_large_arrays.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_mode_roundtrip.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_nifti_meta.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_nifti_series.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_rgb_pixel_art.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_safe_server_stop.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_source_safety.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_torch.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/test_tutorial.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/ui_audit.py +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/v_anim_frames/.gitkeep +0 -0
- {arrayview-0.47.1 → arrayview-0.47.3}/tests/visual_smoke.py +0 -0
|
@@ -37,7 +37,7 @@ def _response_payload() -> dict:
|
|
|
37
37
|
if not native_available:
|
|
38
38
|
defaults["window"]["default"] = "browser"
|
|
39
39
|
defaults["window"]["terminal"] = "browser"
|
|
40
|
-
for key in ("
|
|
40
|
+
for key in ("terminal", "vscode", "jupyter", "julia"):
|
|
41
41
|
schema["window"][key] = [
|
|
42
42
|
value for value in schema["window"][key] if value != "native"
|
|
43
43
|
]
|
|
@@ -7086,6 +7086,7 @@
|
|
|
7086
7086
|
let _mvPrevZoom = 1.0;
|
|
7087
7087
|
let _cmvPrevSquareStretch = false;
|
|
7088
7088
|
let _qmriPrevZoom = 1.0; // saved on enterQmri, restored on exitQmri (mirrors _mvPrevZoom)
|
|
7089
|
+
let _qmriPrevActiveDim = null; // scroll dim before qMRI moved it off the map dim; null while rebuilding keeps the original
|
|
7089
7090
|
let _comparePrevZoom = 1.0; // saved on enterCompareMode, restored on exitCompareMode
|
|
7090
7091
|
let _comparePrevNormalView = null; // Phase 4: saved primary View, restored on exitCompareMode
|
|
7091
7092
|
let _eggsVisible = true;
|
|
@@ -35472,6 +35473,7 @@
|
|
|
35472
35473
|
if (multiViewActive) exitMultiView();
|
|
35473
35474
|
if (stackMosaicActive) exitStackMosaic();
|
|
35474
35475
|
_qmriPrevZoom = userZoom; // save prior zoom so exitQmri can restore (mirrors enterMultiView)
|
|
35476
|
+
if (_qmriPrevActiveDim === null) _qmriPrevActiveDim = activeDim;
|
|
35475
35477
|
userZoom = 1.0;
|
|
35476
35478
|
qvPan.reset();
|
|
35477
35479
|
// Opening straight into qMRI never draws the main canvas, so its
|
|
@@ -35994,6 +35996,10 @@
|
|
|
35994
35996
|
wrap.innerHTML = '';
|
|
35995
35997
|
wrap.className = '';
|
|
35996
35998
|
userZoom = _qmriPrevZoom; // restore prior zoom (mirrors exitMultiView line 10521)
|
|
35999
|
+
if (!_qmriSyntheticRebuilding && _qmriPrevActiveDim !== null) {
|
|
36000
|
+
if (_qmriPrevActiveDim < shape.length) activeDim = _qmriPrevActiveDim;
|
|
36001
|
+
_qmriPrevActiveDim = null;
|
|
36002
|
+
}
|
|
35997
36003
|
if (!_qmriSyntheticRebuilding) updateView();
|
|
35998
36004
|
_reconcileUI();
|
|
35999
36005
|
renderInfo();
|
|
@@ -58,7 +58,7 @@ _VSCODE_EXT_FRESH_INSTALL = False # True if we just installed it this session
|
|
|
58
58
|
_VSCODE_EXT_RELOAD_REQUIRED = False # installed files are newer than the live host
|
|
59
59
|
_VSCODE_EXT_INSTALL_FAILED = False # automatic install could not complete safely
|
|
60
60
|
_VSCODE_EXT_NO_LIVE_WINDOW = False # no live host claims this terminal's window id
|
|
61
|
-
_VSCODE_EXT_VERSION = "0.15.
|
|
61
|
+
_VSCODE_EXT_VERSION = "0.15.63" # current bundled extension version
|
|
62
62
|
_VSCODE_CONFIGURED_PORTS: set[int] = set()
|
|
63
63
|
# Version-skew notices already printed, so a long-lived process (Jupyter, a
|
|
64
64
|
# script opening several arrays) states the mismatch once instead of per call.
|
|
Binary file
|
|
@@ -34,6 +34,21 @@ def isolated_runtime_directory(tmp_path_factory, monkeypatch):
|
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
@pytest.fixture(autouse=True)
|
|
38
|
+
def no_leaked_fake_sessions():
|
|
39
|
+
"""Drop anything a test put in the shared session table that isn't a session.
|
|
40
|
+
|
|
41
|
+
The test server is shared by the whole run, so one stray placeholder makes
|
|
42
|
+
every later load in every later file fail.
|
|
43
|
+
"""
|
|
44
|
+
from arrayview._session import SESSIONS, Session
|
|
45
|
+
|
|
46
|
+
yield
|
|
47
|
+
for sid, value in list(SESSIONS.items()):
|
|
48
|
+
if not isinstance(value, Session):
|
|
49
|
+
SESSIONS.pop(sid, None)
|
|
50
|
+
|
|
51
|
+
|
|
37
52
|
# ---------------------------------------------------------------------------
|
|
38
53
|
# Server
|
|
39
54
|
# ---------------------------------------------------------------------------
|