Drop scVelo as hard dependency, add as optional pip extra#1314
Merged
Marius1311 merged 2 commits intomainfrom Mar 9, 2026
Merged
Drop scVelo as hard dependency, add as optional pip extra#1314Marius1311 merged 2 commits intomainfrom
Marius1311 merged 2 commits intomainfrom
Conversation
- Remove `scvelo>=0.3` from `[project] dependencies` - Add `optional-dependencies.scvelo = ["scvelo>=0.3"]` for velocity embedding stream/grid plots (already import-guarded in _projection.py) - Keep scVelo in `[dependency-groups] test` for projection tests - Fix stale docstring ref `scvelo.pl.scatter` → `scanpy.pl.embedding` in _base_kernel.py - Drop `scvelo compat:` prefix from 4 legend_loc comments — the code now uses scanpy directly - Remove `scvelo/issues/673` URL comment (bug is in CellRank's own code) - Move top-level `import scvelo` in tests/_helpers.py inside `_create_dummy_adata()` (only used for offline data regeneration)
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.
Final step of the scVelo removal: drop scVelo from hard dependencies and make it an optional pip extra for velocity embedding stream/grid plots.
Changes
pyproject.tomlscvelo>=0.3from[project] dependenciesoptional-dependencies.scvelo = ["scvelo>=0.3"]— used byTmatProjection.plot()forscv.pl.velocity_embedding_stream/grid(already import-guarded via_check_module_importable)scvelo>=0.3in[dependency-groups] test— needed for 5 projection testsSource docstrings & comments
scvelo.pl.scatter→scanpy.pl.embeddingref in_base_kernel.pyrandom walk kwargs docstringscvelo compat:prefix from 4 legend-loc normalization comments (code uses scanpy directly now)scvelo/issues/673URL comment from_term_states_estimator.py(bug is in CellRank's own code)Tests
import scvelointests/_helpers.pyinside_create_dummy_adata()— only used for offline test data regeneration, never at test runtimeWhat stays
docs/conf.pyintersphinx mapping for scvelo — projection docstrings still cross-reference ittests/conftest.pytry/except scvelo import — sets figdir for projection teststests/test_plotting.pytest_scvelo_*test names — historical, functionalCloses the scVelo removal plan (
.github/prompts/PLAN_scvelo_removal.md).Follows #1301 and #1302.