Skip to content

chore(skore-mlflow-project): Move from package to python sub-module#2897

Merged
cakedev0 merged 35 commits into
mainfrom
monopackage-mlflow
May 21, 2026
Merged

chore(skore-mlflow-project): Move from package to python sub-module#2897
cakedev0 merged 35 commits into
mainfrom
monopackage-mlflow

Conversation

@thomass-dev
Copy link
Copy Markdown
Collaborator

Closes #2808.

Move from skore/skore-mlflow-project/src/skore_mlflow_project to skore/skore/src/skore/_plugins/mlflow.


For developers with editable installation, please reinstall the packages:

$ rm -r skore-mlflow-project/
$ pip install -e ./skore* --force-reinstall --no-deps

@thomass-dev thomass-dev self-assigned this May 12, 2026
@thomass-dev thomass-dev changed the base branch from main to monopackage May 12, 2026 08:04
@thomass-dev
Copy link
Copy Markdown
Collaborator Author

thomass-dev commented May 12, 2026

  • move code
  • move tests
  • rename import
  • add plugin to skore/pyproject.toml (keep the architecture)
  • add dependencies + test deps to optional skore/pyproject.toml
  •  update precommit
  • remove protocols
  • what to do with matrix
  • update workflows
  • update pip-compile.sh
  • update lockfiles
  • rewrite the exception raised on missing plugin
  • mypy strict under _plugins
  • warning as errors
  • factorize switch_mpl_backend

should be good!

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

Documentation preview @ 62b85f6

Base automatically changed from monopackage to main May 12, 2026 12:46
Comment thread skore-mlflow-project/supported-versions.json
@glemaitre glemaitre self-requested a review May 20, 2026 19:10
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

Coverage

Coverage Report for skore/
FileStmtsMissBranchBrPartCoverMissing
skore/src/skore
   __init__.py3922094%112–113
   _config.py58312194%71, 118–119
   exceptions.py44000%4, 15, 19, 23
skore/src/skore/_plugins
   __init__.py12000100% 
skore/src/skore/_plugins/hub
   __init__.py920077%15, 20
   exception.py2000100% 
   json.py1012190%16
skore/src/skore/_plugins/hub/artifact
   __init__.py0000100% 
   artifact.py23040100% 
   serializer.py27020100% 
   upload.py26040100% 
skore/src/skore/_plugins/hub/artifact/media
   __init__.py5000100% 
   data.py20000100% 
   inspection.py721020886%46–49, 51, 53, 60, 62, 68, 107
   media.py10000100% 
   model.py10000100% 
   performance.py10618199%43
skore/src/skore/_plugins/hub/artifact/pickle
   __init__.py2000100% 
   pickle.py24020100% 
skore/src/skore/_plugins/hub/authentication
   __init__.py0000100% 
   apikey.py7000100% 
   login.py2844285%37, 42–43, 52
   token.py80080100% 
   uri.py6000100% 
skore/src/skore/_plugins/hub/client
   __init__.py0000100% 
   client.py881018388%140, 187–189, 191–192, 194, 196, 198, 230
skore/src/skore/_plugins/hub/metric
   __init__.py10000100% 
   accuracy.py35000100% 
   brier_score.py35000100% 
   log_loss.py35000100% 
   metric.py5542192%38, 77–78, 84
   precision.py57000100% 
   r2.py35000100% 
   recall.py59000100% 
   rmse.py35000100% 
   roc_auc.py35000100% 
   timing.py7640094%45–46, 104–105
skore/src/skore/_plugins/hub/project
   __init__.py0000100% 
   project.py138626595%84, 109, 124, 323, 403, 433
skore/src/skore/_plugins/hub/report
   __init__.py3000100% 
   cross_validation_report.py121228398%224, 264
   estimator_report.py10000100% 
   report.py60060100% 
skore/src/skore/_plugins/local
   __init__.py2000100% 
   metadata.py8138196%29, 141–142
   project.py93130198%238
   storage.py4226195%45, 189
skore/src/skore/_plugins/mlflow
   __init__.py5000100% 
   project.py2091554592%202, 233–234, 380, 382, 398, 400–405, 407–409
   reports.py155634496%129, 170, 207–208, 270, 283
skore/src/skore/_project
   __init__.py0000100% 
   _summary.py80138398%121
   _widget.py1910442100% 
   dependencies.py19060100% 
   git.py25040100% 
   login.py1736282%62, 71–72
   plugin.py12020100% 
   project.py56216396%132, 141
   types.py3000100% 
skore/src/skore/_sklearn
   __init__.py8000100% 
   _base.py54110098%44
   compare.py5000100% 
   evaluate.py430240100% 
   feature_names.py260120100% 
   find_ml_task.py610462100% 
   metrics.py3160761100% 
   types.py1910094%31
skore/src/skore/_sklearn/_checks
   __init__.py3000100% 
   _utils.py47320393%47, 147, 155
   accessor.py33114096%17
   base.py76524393%128–129, 169, 257–258
   model_checks.py163440497%320, 328, 364, 368
skore/src/skore/_sklearn/_comparison
   __init__.py9000100% 
   inspection_accessor.py2712096%347
   metrics_accessor.py122418496%259–260, 329, 1115
   report.py160568096%577, 583, 641–643
skore/src/skore/_sklearn/_cross_validation
   __init__.py11000100% 
   data_accessor.py36212294%48, 74
   inspection_accessor.py2712096%319
   metrics_accessor.py116316397%211–212, 1074
   report.py2051048695%73, 78, 83, 318, 595, 639, 645, 731–733
skore/src/skore/_sklearn/_estimator
   __init__.py11000100% 
   data_accessor.py48220195%61, 178
   inspection_accessor.py3718297%278
   metrics_accessor.py1250220100% 
   report.py33214921095%60, 74, 280, 353, 438, 695, 787, 806, 808, 814–815, 902–904
skore/src/skore/_sklearn/_plot
   __init__.py3000100% 
   base.py61214196%61–62
   utils.py145366397%254–255, 428
skore/src/skore/_sklearn/_plot/data
   __init__.py2000100% 
   table_report.py177160199%670
skore/src/skore/_sklearn/_plot/inspection
   __init__.py0000100% 
   coefficients.py1810881100% 
   impurity_decrease.py103234398%423, 467
   permutation_importance.py198190199%585
   utils.py320100100% 
skore/src/skore/_sklearn/_plot/metrics
   __init__.py6000100% 
   confusion_matrix.py1980662100% 
   metrics_summary_display.py1330621100% 
   precision_recall_curve.py1130321100% 
   prediction_error.py1660542100% 
   roc_curve.py1190342100% 
skore/src/skore/_sklearn/train_test_split
   __init__.py2000100% 
   train_test_split.py710342100% 
skore/src/skore/_sklearn/train_test_split/warning
   __init__.py8000100% 
   high_class_imbalance_too_few_examples_warning.py1916194%83
   high_class_imbalance_warning.py20060100% 
   random_state_unset_warning.py10020100% 
   shuffle_true_warning.py9020100% 
   stratify_is_set_warning.py10020100% 
   time_based_column_warning.py21040100% 
   train_test_split_warning.py3000100% 
skore/src/skore/_utils
   __init__.py620066%8, 13
   _accessor.py10628301373%12–13, 15, 36, 61–65, 68, 70–71, 76, 81, 83, 85, 92–94, 120–121, 123–124, 126, 132, 164, 218, 238
   _cache.py37021100% 
   _cache_key.py35522585%22, 24, 51, 59, 68
   _callable_name.py9040100% 
   _dataframe.py43418490%27, 46, 48, 63
   _environment.py33110296%49
   _fixes.py8020100% 
   _index.py5020100% 
   _jupyter.py820075%13–14
   _measure_time.py10000100% 
   _parallel.py17000100% 
   _patch.py21128842%30, 35–39, 42–43, 46–47, 58, 60
   _progress_bar.py4244090%53–54, 64–65
   _show_versions.py380120100% 
   _skrub.py36040100% 
   _testing.py1281412289%24, 33, 71–72, 94, 193, 202, 213–218, 220
skore/src/skore/_utils/repr
   __init__.py2000100% 
   base.py54040100% 
   data.py1280301100% 
   html_repr.py40000100% 
   rich_repr.py800223100% 
   utils.py11020100% 
TOTAL7284226182414896% 

Tests Skipped Failures Errors Time
2564 6 💤 0 ❌ 0 🔥 6m 42s ⏱️

@glemaitre glemaitre marked this pull request as ready for review May 21, 2026 08:53
@glemaitre glemaitre requested a review from rouk1 as a code owner May 21, 2026 08:53
Copy link
Copy Markdown
Contributor

@cakedev0 cakedev0 left a comment

Choose a reason for hiding this comment

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

LGTM.

I think Codex found a small bug in the plugin loading (in the dependency checking), but it's not introduced in this PR, and also impact the hub mode, I'll double check and open a dedicated issue/PR for that.

@cakedev0
Copy link
Copy Markdown
Contributor

Codex found a small bug in the plugin loading (in the dependency checking)

I confirm, I'll open a small follow-up PR to fix that.

@cakedev0 cakedev0 added this pull request to the merge queue May 21, 2026
Merged via the queue into main with commit 4e19244 May 21, 2026
41 checks passed
@cakedev0 cakedev0 deleted the monopackage-mlflow branch May 21, 2026 09:43
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.

feat(skore-mlflow-project): Move from package to python sub-module

4 participants