Conversation
- in the future with the default dependencies
- core modules dependencies should be installed always - the other should only be installed on request
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20ac1af3ef
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR restructures acore’s dependency layout by moving several heavy/feature-specific libraries out of the default install and into an all optional extra, while adding clearer import-time guidance for optional-feature modules and updating docs/workflows to match the new install story.
Changes:
- Add guarded imports with user-facing
ImportErrormessages for optional analysis modules (TDA, network, Kaplan–Meier, publications). - Update
pyproject.tomlto define anallextra for non-core dependencies and movevuecoreinto thedocsextra. - Update documentation examples and the markdown-docs workflow to install
vuecore/ extras appropriately.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/acore/tda_analysis/init.py | Wrap kmapper import to provide a clearer error when the optional dependency is missing. |
| src/acore/publications_analysis/init.py | Wrap biopython imports with a clearer missing-dependency error. |
| src/acore/network_analysis/init.py | Wrap network-analysis optional imports and adjust import ordering. |
| src/acore/kaplan_meier_analysis/init.py | Wrap lifelines imports with a clearer missing-dependency error. |
| src/acore/init.py | Expand default package imports and __all__ to expose core modules at the top level. |
| pyproject.toml | Move non-core deps out of default dependencies and introduce optional extras (docs, all). |
| docs/api_examples/*.py | Update example install instructions (and jupytext metadata) to include vuecore. |
| docs/api_examples/*.ipynb | Update example install cells to include vuecore. |
| .github/workflows/updt_markdowns.yml | Install with .[docs,all] to ensure doc builds have optional dependencies available. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Brief summary
Auto-generated Summary
This pull request improves dependency management and documentation for optional features in the project. It introduces an
alloptional dependency group inpyproject.tomlfor non-core analysis modules, updates documentation and example notebooks to install both core and optional dependencies, and adds clearer error messages when optional dependencies are missing. Additionally, it updates the__init__.pyfiles to provide better import structure and user guidance.Dependency management and installation:
alloptional dependency group inpyproject.tomlto bundle all non-core analysis dependencies (e.g.,biopython,lifelines,networkx,kmapper,snfpy, etc.), making it easier for users to install optional features withpip install "acore[all]".vuecoreto thedocsgroup for documentation visualization. [1] [2]Documentation and examples:
acoreandvuecore(and, by implication, other optional dependencies) for full functionality, using%pip install acore vuecore. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Improved error handling for optional dependencies:
__init__.pyfiles of optional modules (e.g.,kaplan_meier_analysis,network_analysis,publications_analysis,tda_analysis) to raise informative errors if required optional dependencies are missing, guiding users to install them via the appropriate pip command. [1] [2] [3] [4]Codebase and import improvements:
src/acore/__init__.pyto explicitly import all submodules and include them in__all__, improving discoverability and import structure.Minor updates:
jupytext_versionmetadata in example scripts for consistency. [1] [2] [3] [4]These changes make the project easier to install, use, and troubleshoot, especially when working with optional analysis modules.- in the future with the default dependencies
Checks