GH: Update of release process#2
Merged
Merged
Conversation
- ColumnPanel: add comboZ dropdown (Z/C:) for selecting a third variable as a color/height axis; updates alongside comboX columns - SelectionPanel: bind comboZ events and include Z column index in ID tuples passed to PlotData - PlotData: add iz, sz, z, zIsString, zIsDate attributes; fromIDs() loads Z column when idx has 8+ elements - GUIPlotPanel: add ColorCtrlPanel with colormap selector, colorbar toggle, and 3D view checkbox; shown automatically when a Z variable is selected - plotSignals(): when Z is set, renders a scatter plot colored by Z using the chosen colormap and optionally adds a colorbar; when 3D is enabled, renders a full 3D scatter plot with Z as the spatial z-axis - set_subplots(): creates 3D axes (projection='3d') when 3D view is active - figure.py (SwappyFigure): gracefully handle non-SwappyAxes (e.g. Axes3D) by adding compatibility shims for set_xlim_/get_xlim_/etc. - _store_limits/_restore_limits: guard against AttributeError on non-Swappy axes (e.g. colorbar axes added by matplotlib) https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
Update README with: - New plot types: scatter+color scale, 3D scatter plot - New plot options: Z/color variable, colormap, colorbar, 3D view - Workflow tip explaining the Z/C dropdown in the column panel https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
requirements.txt: - Add minimum version pins for all packages - numpy>=2.0: required for Python 3.14; removes deprecated bare aliases (np.bool, np.int, np.float, etc. removed in 2.0) - wxpython>=4.2.4: first release with Python 3.14 wheel support - pandas>=2.2, matplotlib>=3.8, scipy>=1.12, xarray>=2024.1, pyarrow>=15.0, openpyxl>=3.1, chardet>=5.0 all confirmed py314 installer.cfg: - Python version: 3.9.9 → 3.14.0 - wxPython: 4.1.1 → 4.2.5 (cp314 wheels available on Windows/macOS) - numpy: 1.22.4 → 2.2.4 - matplotlib: 3.5.2 → 3.10.1 - pandas: 1.4.2 → 2.2.3 - scipy: 1.8.1 → 1.15.2 - pyarrow: 8.0.0 → 19.0.1 - openpyxl: 3.0.10 → 3.1.5 - Pillow: 9.1.1 → 11.1.0 - xarray: 2023.2.0 → 2025.3.0 - chardet: 4.0.0 → 5.2.0 - Retain fatpack==0.7.3 (pure Python, tested functional under py314) - Old py3.9 pins preserved as comments for reference setup.py: - Add python_requires='>=3.9' - Add install_requires with minimum version constraints Note for Linux: wxPython does not publish manylinux wheels on PyPI. Use https://extras.wxpython.org/wxPython4/extras/linux/ for pre-built wheels, or build from source (requires GTK dev headers). https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
This reverts commit 152bb95.
- Rename "Z/C:" label to "z-axis:" in column panel - Remove colormap dropdown (hardcode viridis) and colorbar checkbox (always on) - Add x-y / y-z / x-z plane view buttons that appear when 3D view is active - Require Ctrl+left-click for 3D rotation to avoid conflict with zoom https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
The previous approach relied on ax._cids being non-empty and event.key being set, neither of which is reliable across matplotlib versions. New approach: - ax.mouse_init(rotate_btn=[]) disables built-in left-click rotation - custom button_press handler sets _rotate_btn=[1] only when Ctrl is held (detected via wx.GetKeyState for wx-backend reliability) - custom button_release handler resets _rotate_btn=[] on release https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
Previous approach used mouse_init/_rotate_btn which silently fails in many matplotlib versions. New approach: - Connect a button_press handler that fires AFTER the built-in one - If Ctrl is not held, reset ax.button_pressed=None so _on_move returns early and skips rotation - wx.GetKeyState used for reliable keyboard state detection https://claude.ai/code/session_019co5puUhq1kxsuWG57SPzC
SimonHH
pushed a commit
that referenced
this pull request
May 4, 2026
…tation PR #2 (now in dev) contained an earlier, simpler Z/color and 3D implementation. PR #4's 13 commits are the polished, final version that supersedes PR #2 entirely. Conflicts resolved in 3 files (13 conflict blocks total) by keeping HEAD: - GUIPlotPanel.py: _patch_3d_ctrl_rotate (3-layer toolbar-aware approach), ColorCtrlPanel (btFree + cbPlot3D + camera state), plotSignals (shared z_norm, logZ/flipZ, single colorbar per axis), _store/_restore_limits (3D camera + zlim preservation). - GUISelectionPanel.py: _ClampedComboBox for comboZ, zSel parameter handling. - plotdata.py: auto-merged cleanly (no manual resolution needed). https://claude.ai/code/session_01TRfZkFW9YczDyobkh3cndo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.