Goal
Split the bulkiest modules into responsibility-focused submodules so the package is easier to navigate and reason about, while preserving public import compatibility during migration.
Ground Rules
- One refactor PR per scope.
- Each PR bumps to the next release candidate version: rc8, rc9, rc10, rc11, etc.
- Keep old public modules as compatibility shims/facades where module paths might matter.
- Add import-shim/schema tests for each move so downstream code keeps working.
- Avoid behavior changes; these should be mechanical organization PRs.
Planned Order
Compatibility Risks
- Console entry points in
setup.py must continue to work.
- Public imports from
mhcflurry.local_parallelism, mhcflurry.class1_neural_network, and mhcflurry.class1_affinity_predictor should continue to resolve during the transition.
- Moving public classes directly can affect pickle/module paths and serialized metadata assumptions; avoid that until a dedicated compatibility audit is done.
Goal
Split the bulkiest modules into responsibility-focused submodules so the package is easier to navigate and reason about, while preserving public import compatibility during migration.
Ground Rules
Planned Order
mhcflurry.cliand move command modules under it.mhcflurry/local_parallelism.pyintomhcflurry/parallelism/.mhcflurry/class1_neural_network.pywithout moving public class paths yet.mhcflurry/class1_affinity_predictor.pywhile keepingClass1AffinityPredictoras the facade.Compatibility Risks
setup.pymust continue to work.mhcflurry.local_parallelism,mhcflurry.class1_neural_network, andmhcflurry.class1_affinity_predictorshould continue to resolve during the transition.