Development
The refactored codebase is organized by pipeline phase. Each phase generally contains:
a CLI module, for example
p6_cli.pya runner module, for example
p6_runner.pyimplementation modules and registries
optional job-submission helpers for cluster modes
Source Layout
streamline/
p1_data_process/
p2_impute_scale/
p3_feature_learning/
p4_feature_importance/
p5_feature_selection/
p6_modeling/
p7_ensembles/
p8_summary_statistics/
p9_compare_datasets/
p10_replication/
p11_reporting/
pipeline/
utils/
Adding Methods
Prefer the existing registry patterns when adding new components:
Area |
Location |
|---|---|
Imputers/scalers |
|
Feature learners |
|
Feature importance methods |
|
Feature selectors |
|
Models |
|
Ensembles |
|
Tests
The default pytest configuration collects only the current main end-to-end tests. Legacy and phase-level subtests were removed from the maintained v1.0.0 test path so routine testing stays focused on the binary, multiclass, and regression demo pipelines.
Run one main test while developing:
pytest streamline/tests/test_complete_binary.py
pytest streamline/tests/test_complete_multiclass.py
pytest streamline/tests/test_complete_regression.py
Run the default main suite when changing shared phase behavior:
pytest
Run the optional TabPFN smoke test directly when changing TabPFN handling:
pytest streamline/tests/subtests/tabpfn_smoke.py -q -rs
STREAMLINE supports Python 3.10 and newer. The CI pytest workflow exercises the main suite on Python 3.10, 3.11, 3.12, and 3.13.
Documentation
Build the docs locally with:
pip install -r docs/requirements.txt
sphinx-build -b html docs/source docs/build/html
Keep examples synchronized with run_configs/, sample_runcommands.txt, and
the notebook parameter names.