Skip to content

Update package layout and default imports#64

Merged
enryH merged 12 commits into
mainfrom
updt_src
Jun 15, 2026
Merged

Update package layout and default imports#64
enryH merged 12 commits into
mainfrom
updt_src

Conversation

@enryH

@enryH enryH commented Mar 10, 2026

Copy link
Copy Markdown
Collaborator

Brief summary

  • define a list of core modules to be installed, per default
  • only install module specific dependencies on request

Auto-generated Summary

This pull request improves dependency management and documentation for optional features in the project. It introduces an all optional dependency group in pyproject.toml for 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__.py files to provide better import structure and user guidance.

Dependency management and installation:

  • Added an all optional dependency group in pyproject.toml to bundle all non-core analysis dependencies (e.g., biopython, lifelines, networkx, kmapper, snfpy, etc.), making it easier for users to install optional features with pip install "acore[all]".
  • Updated the main dependencies and organized them by theme (core, scientific computing, enrichment analysis, batch correction, IO, types), and moved vuecore to the docs group for documentation visualization. [1] [2]

Documentation and examples:

  • Updated all example notebooks and scripts to instruct users to install both acore and vuecore (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:

  • Added try/except blocks in __init__.py files 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:

  • Updated src/acore/__init__.py to explicitly import all submodules and include them in __all__, improving discoverability and import structure.

Minor updates:

  • Updated jupytext_version metadata 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

@enryH enryH marked this pull request as ready for review June 15, 2026 11:38

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread pyproject.toml Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ImportError messages for optional analysis modules (TDA, network, Kaplan–Meier, publications).
  • Update pyproject.toml to define an all extra for non-core dependencies and move vuecore into the docs extra.
  • 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.

Comment thread src/acore/tda_analysis/__init__.py Outdated
Comment thread src/acore/publications_analysis/__init__.py Outdated
Comment thread src/acore/network_analysis/__init__.py Outdated
Comment thread src/acore/kaplan_meier_analysis/__init__.py Outdated
Comment thread pyproject.toml Outdated
Comment thread pyproject.toml Outdated
@enryH enryH merged commit e0ed4d9 into main Jun 15, 2026
11 checks passed
@enryH enryH deleted the updt_src branch June 15, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants