Integrate forked CurveCurator GPU API into drevalpy.curation#422
Draft
nictru wants to merge 15 commits into
Draft
Integrate forked CurveCurator GPU API into drevalpy.curation#422nictru wants to merge 15 commits into
nictru wants to merge 15 commits into
Conversation
Replace the external CurveCurator split workflow with in-process fitting via the forked Python API, including data-aware device selection and a direct fit-curves command.
Pin CurveCurator to the GitHub source so installs do not depend on a sibling checkout.
Move split/fit/combine logic out of datasets and cli_fit_curves into a shared package, add `drevalpy curation` for pipelines, and keep `drevalpy-fit-curves` as a legacy alias to the unified workflow.
Pass prepared input tables directly to run_pipeline_api instead of writing temporary TSV files, and pin curve-curator to the fork commit with the new data= contract. Consolidate CurveCurator tests under tests/curation/_curvecurator and add coverage for in-memory table pass-through and synthetic workflow paths.
Delete unused runner/device modules and cli_preprocess_custom, move viability preprocess/postprocess into curation._curvecurator.nfcore, and simplify the in-memory runner around the DataFrame-first fork API.
Resolve pipeline.py context typing for Typer 0.26 and regenerate poetry.lock after integrating the development branch.
Use str path_data in nfcore tests and replace append-or-return lambda with an explicit split_to_disk stub.
Use _click.Context like pipeline.py so typeguard accepts the callback signature on Windows CI.
Lazy-import fit_curves in loader so importing curation does not loop back through datasets during module init.
Make split and curate DataFrame-first, keep serialization in io.py, and have the curation CLI and nf-core hooks read inputs, call in-memory functions, and write outputs.
Replace append-or-return lambdas with explicit fake helpers so mypy accepts the mocked callables.
Drop viability-preprocess/postprocess commands and nfcore hooks; drugresponseeval will adopt drevalpy curation directly.
Custom dataset loading now uses drevalpy.curation in loader.py instead of a thin compatibility wrapper.
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.
Summary
curve_curator_gpuAPI, including GPU device routing and OOM fallback.drevalpy.curationas the public workflow (split→curvecurator→combine) with stepwise CLI commands and nf-core viability hooks.run_pipeline_api, and remove legacy runner/shim modules.Test plan
poetry run pytest tests/curation/_curvecurator tests/cli/test_curation.py tests/cli/test_fit_curves_legacy.py -qpoetry run pytest tests/test_dataset.py::test_curvecurator_measures -qcloses #405