[codex] Modernize Python compatibility, dependencies, tests, and docs#15
[codex] Modernize Python compatibility, dependencies, tests, and docs#15tuhulab wants to merge 5 commits into
Conversation
|
@tuhulab i tried using your suggestion for installing the full environment using pip install .e [full], but i got an error regarding version availability such as muon ! |
|
Wow, thank you @tuhulab for all of these updates, this is super helpful!! I will work on reviewing the changes. As a note, Jolene |
|
Should now be resolved with sketchKH==0.1.3 |
|
I ran into an issue with the demo workflow on this PR branch that did not occur with the original QUICHE setup when I first ran the demo notebook after the initial release. Using the same demo dataset ( This occurs even with very small This behavior appears in the PR15 environment (Python ≥3.10, updated dependency stack, using Based on prior use of the original release environment, this workflow previously ran successfully on the same demo data without this error. This suggests a potential regression or compatibility issue introduced by the updated environment, rather than a data-size or parameter issue. Happy to provide a minimal reproducible example if helpful. Any suggestions would be much appreciated. |
Summary
This PR modernizes QUICHE for current Python tooling while preserving the existing public API surface (
quiche.pp,quiche.tl,quiche.pl) and stabilizing install/test workflows.It addresses compatibility and maintenance pain points caused by old grammar-era packaging metadata, outdated pins, and eager imports of heavy optional dependencies.
Problem and user impact
Before this change:
pyproject.toml.This made installation brittle, especially for users on modern Python versions, and increased regression risk.
Root causes
What this PR changes
1) Packaging and dependency modernization
pyproject.tomlmetadata to PEP 621 format.>=3.10,<3.13.plotfulldevvenv_quiche.ymlto align with Python 3.10-3.12 and modern stack versions.2) Compatibility and correctness fixes (API-preserving)
except:handlers with explicit handling.compute_spatial_niches(khop=...)now passeskcorrectly.compute_spatial_nichesnow preserves row alignment viaobs_names.metricvariable in plotting defaults.generate_colors.3) Test suite + CI
tests/with deterministic synthetic fixtures and coverage for:4) Documentation
Validation performed
Local validation on Python 3.11:
pytest -q-> 19 passedpytest --cov=quiche --cov-report=term-missing-> 19 passed(One pandas FutureWarning remains in an existing statistical helper; behavior is unaffected.)
Backward compatibility statement
pip install .stays lightweight; conda remains the recommended route for R-backed analysis.Commit structure
packaging/deps: modernize metadata and envcode-compat: guard optional deps and fix runtime bugstests-ci: add synthetic tests and py3.10-3.12 matrixdocs: document migration, install paths, and limits