diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bd17d4..d301a92 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,10 +59,10 @@ jobs: cache: pip cache-dependency-path: pyproject.toml - run: pip install --upgrade pip - # ``-e .[dev,visualization,excel]`` so every optional extra is exercised. + # ``-e .[dev,excel]`` so every optional extra is exercised. # Gurobi is not installable on free runners; the relevant tests # skip themselves when ``optlang.gurobi_interface`` cannot import. - - run: pip install -e ".[dev,visualization,excel]" + - run: pip install -e ".[dev,excel]" - run: pytest -q --maxfail=5 --durations=20 docs: @@ -77,7 +77,7 @@ jobs: cache-dependency-path: pyproject.toml - run: pip install --upgrade pip # The package (with autodoc's import-time extras) plus the docs toolchain. - - run: pip install -e ".[excel,visualization]" -r docs/requirements.txt + - run: pip install -e ".[excel]" -r docs/requirements.txt # ``-W --keep-going`` keeps the docs build warning-clean; mirrors the # ReadTheDocs build (docs/conf.py + .readthedocs.yaml). - run: sphinx-build -b html -W --keep-going docs docs/_build/html diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 35b2d10..c8f3257 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -21,7 +21,6 @@ python: path: . extra_requirements: - excel - - visualization - requirements: docs/requirements.txt formats: diff --git a/CHANGELOG.md b/CHANGELOG.md index a13c6d3..879c6b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ Milestones in the raven-python port. For function-level status see [docs/raven_migration.md](https://github.com/SysBioChalmers/raven-python/blob/develop/docs/reference/migration.md); for open work see [docs/todo.md](https://github.com/SysBioChalmers/raven-python/blob/develop/docs/reference/todo.md). +## Unreleased + +* **Removed the `visualization` stub and `[visualization]` extra**, mirroring MATLAB + RAVEN dropping its pathway-map / omics-overlay plotting functions (`drawMap`, + `colorPathway`, etc.) as obsolete. cobrapy + Escher cover this externally. + ## 0.1.0 — 2026-06-10 First release with **published, downloadable KEGG artefacts**, plus a cobra-aligned diff --git a/README.md b/README.md index 039f861..b3cf8fb 100644 --- a/README.md +++ b/README.md @@ -53,8 +53,6 @@ omissions: Planned or partial functionality still on the books (full detail in **[docs/todo.md](docs/reference/todo.md)**): -- [ ] **Visualization (`visualization/`)** — pathway maps (Escher), omics-overlay and - flux-distribution plots. *The main open item.* - [ ] **Metabolomics-based scoring in tINIT / ftINIT** — passing a non-empty `metabolomics` argument currently raises `NotImplementedError`. - [ ] **Published binary release ZIPs** (BLAST / DIAMOND / HMMER) — the resolver in diff --git a/docs/README.md b/docs/README.md index d3ac917..2a6d521 100644 --- a/docs/README.md +++ b/docs/README.md @@ -6,7 +6,7 @@ The rendered documentation is built with **Sphinx** (MyST Markdown) and hosted o Build it locally: ```bash -pip install -e ".[excel,visualization]" +pip install -e ".[excel]" pip install -r docs/requirements.txt sphinx-build -b html docs docs/_build/html # open docs/_build/html/index.html diff --git a/docs/installation.md b/docs/installation.md index f09afe6..4ed3d56 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -18,11 +18,10 @@ Some features need extra packages, exposed as optional extras: | Extra | Pulls in | Needed for | | --- | --- | --- | | `excel` | `openpyxl` | {func}`raven_python.io.excel.export_to_excel` | -| `visualization` | `matplotlib` | visualisation (Phase 6, in progress) | | `dev` | `pytest`, `pytest-cov`, `ruff` | running the test-suite / linting | ```bash -pip install -e ".[excel,visualization,dev]" +pip install -e ".[excel,dev]" ``` ## Solvers diff --git a/docs/reference/api/index.md b/docs/reference/api/index.md index 93224e9..5381a7e 100644 --- a/docs/reference/api/index.md +++ b/docs/reference/api/index.md @@ -23,8 +23,3 @@ analysis comparison resolvers ``` - -:::{note} -The `visualization` subpackage is a stub — pathway-map and omics-overlay visualisation -(Phase 6) is not yet implemented. -::: diff --git a/docs/reference/todo.md b/docs/reference/todo.md index ac40abc..174f47b 100644 --- a/docs/reference/todo.md +++ b/docs/reference/todo.md @@ -6,17 +6,6 @@ catalogue of raven-python improvements that should also be back-ported into MATL ## Major -### Visualization (`visualization/`) - -Not started. RAVEN has limited plotting (`drawMap` etc., MATLAB-bound). For raven-python the most -useful targets are: - -* Pathway maps / Escher integration for context-specific models. -* Omics overlay (gene-score / expression heatmaps on the reaction set). -* Flux distribution overlays. - -cobrapy + Escher already covers a lot here — likely a thin integration layer rather than a port. - ### Metabolomics-based scoring in ftINIT The metabolomics-detected metabolite production-reward block in [`init.ftinit`](https://github.com/SysBioChalmers/raven-python/blob/develop/src/raven_python/init/ftinit.py) diff --git a/pyproject.toml b/pyproject.toml index c847ed3..69a28fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,9 +55,6 @@ dev = [ excel = [ "openpyxl>=3.1", ] -visualization = [ - "matplotlib>=3.5", -] [project.urls] Homepage = "https://github.com/SysBioChalmers/raven-python" diff --git a/src/raven_python/visualization/__init__.py b/src/raven_python/visualization/__init__.py deleted file mode 100644 index 613f1e2..0000000 --- a/src/raven_python/visualization/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -"""Pathway-map and omics-overlay visualisation (stub — not yet implemented).""" -from __future__ import annotations - - -def __getattr__(name: str): - # PEP 562: accessing any attribute of this stub package fails with a clear, - # actionable message rather than a bare AttributeError. Dunder lookups - # (``__path__`` etc.) fall through to normal handling. - if name.startswith("__"): - raise AttributeError(name) - raise NotImplementedError( - f"raven_python.visualization.{name!r} is not implemented yet. Pathway-map " - "and omics-overlay visualisation is on the roadmap; until then export the " - "model via raven_python.io and use an external viewer such as Escher." - ) diff --git a/tests/test_visualization.py b/tests/test_visualization.py deleted file mode 100644 index 5cc2cef..0000000 --- a/tests/test_visualization.py +++ /dev/null @@ -1,9 +0,0 @@ -"""The visualization subpackage is a documented stub (not yet implemented).""" -import pytest - - -def test_visualization_stub_raises_not_implemented(): - import raven_python.visualization as viz - - with pytest.raises(NotImplementedError, match="not implemented yet"): - viz.draw_pathway() # attribute access triggers __getattr__ and raises