julearn 0.3.6.dev42__tar.gz → 0.3.6.dev72__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. julearn-0.3.6.dev72/.github/workflows/docs-preview.yml +48 -0
  2. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/PKG-INFO +5 -3
  3. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/models.rst +15 -0
  4. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/available_pipeline_steps.rst +14 -0
  5. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/conf.py +2 -15
  6. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly.py +16 -10
  7. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/_version.py +3 -3
  8. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/available_models.py +31 -0
  9. julearn-0.3.6.dev72/julearn/models/tests/test_xgb_cvearlystopping.py +476 -0
  10. julearn-0.3.6.dev72/julearn/models/xgb_cvearlystopping.py +382 -0
  11. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn.egg-info/PKG-INFO +5 -3
  12. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn.egg-info/SOURCES.txt +2 -0
  13. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn.egg-info/requires.txt +5 -2
  14. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/pyproject.toml +6 -2
  15. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/tox.ini +3 -0
  16. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/uv.lock +40 -3
  17. julearn-0.3.6.dev42/.github/workflows/docs-preview.yml +0 -43
  18. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  19. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  20. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
  21. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  22. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/dependabot.yml +0 -0
  23. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/check-stale.yml +0 -0
  24. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/ci-docs.yml +0 -0
  25. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/ci.yml +0 -0
  26. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/docs.yml +0 -0
  27. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/lint.yml +0 -0
  28. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.github/workflows/publish.yml +0 -0
  29. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.gitignore +0 -0
  30. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/.pre-commit-config.yaml +0 -0
  31. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/AUTHORS.rst +0 -0
  32. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/LICENSE.md +0 -0
  33. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/README.md +0 -0
  34. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/codecov.yml +0 -0
  35. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/Makefile +0 -0
  36. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_static/css/custom.css +0 -0
  37. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_static/css/version_selector.css +0 -0
  38. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_static/js/custom.js +0 -0
  39. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/class.rst +0 -0
  40. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/function.rst +0 -0
  41. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/function_warning.rst +0 -0
  42. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/protocol.rst +0 -0
  43. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/type.rst +0 -0
  44. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/_templates/versions.html +0 -0
  45. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/base.rst +0 -0
  46. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/config.rst +0 -0
  47. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/index.rst +0 -0
  48. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/inspect.rst +0 -0
  49. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/main.rst +0 -0
  50. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/model_selection.rst +0 -0
  51. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/pipeline.rst +0 -0
  52. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/prepare.rst +0 -0
  53. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/scoring.rst +0 -0
  54. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/stats.rst +0 -0
  55. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/transformers.rst +0 -0
  56. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/utils.rst +0 -0
  57. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/api/viz.rst +0 -0
  58. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/contributors.inc +0 -0
  59. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/newsfragments/.gitignore +0 -0
  60. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/newsfragments/301.misc +0 -0
  61. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/newsfragments/303.feature +0 -0
  62. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/newsfragments/307.bugfix +0 -0
  63. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/changes/newsfragments/307.misc +0 -0
  64. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/configuration.rst +0 -0
  65. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/contributing.rst +0 -0
  66. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/examples.rst +0 -0
  67. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/faq.rst +0 -0
  68. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/getting_started.rst +0 -0
  69. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/corrected_ttest.png +0 -0
  70. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/final_estimator.png +0 -0
  71. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/iris_X.png +0 -0
  72. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/iris_df.png +0 -0
  73. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/iris_y.png +0 -0
  74. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/joblib_htcondor/condor_q.png +0 -0
  75. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/joblib_htcondor/ui_main.png +0 -0
  76. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/joblib_htcondor/ui_open.png +0 -0
  77. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
  78. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo.png +0 -0
  79. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_calm.png +0 -0
  80. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_confbias.png +0 -0
  81. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_cv.png +0 -0
  82. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_generalization.png +0 -0
  83. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_it.png +0 -0
  84. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_ml.png +0 -0
  85. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/julearn_logo_mlit.png +0 -0
  86. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/multiple_scorers_run_cv.png +0 -0
  87. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/plot_scores.png +0 -0
  88. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/scores_run_cv.png +0 -0
  89. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/scores_run_cv_splitter.png +0 -0
  90. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/images/scores_run_cv_train.png +0 -0
  91. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/index.rst +0 -0
  92. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/links.inc +0 -0
  93. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/maintaining.rst +0 -0
  94. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly_files/patches/version_banner.html +0 -0
  95. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly_files/patches/version_banner_rtd.html +0 -0
  96. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly_files/patches/versions.html +0 -0
  97. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly_files/patches/versions_rtd.html +0 -0
  98. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/poly_files/templates/index.html +0 -0
  99. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/redirect.html +0 -0
  100. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/CBPM.rst +0 -0
  101. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/confound_removal.rst +0 -0
  102. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
  103. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
  104. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/index.rst +0 -0
  105. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/joblib.rst +0 -0
  106. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/model_inspect.rst +0 -0
  107. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/stacked_models.rst +0 -0
  108. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/selected_deeper_topics/target_transformers.rst +0 -0
  109. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/cross_validation.rst +0 -0
  110. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/data.rst +0 -0
  111. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/index.rst +0 -0
  112. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/model_comparison.rst +0 -0
  113. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/model_evaluation.rst +0 -0
  114. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/what_really_need_know/pipeline.rst +0 -0
  115. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/docs/whats_new.rst +0 -0
  116. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/README.rst +0 -0
  117. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
  118. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/plot_example_regression.py +0 -0
  119. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
  120. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/run_combine_pandas.py +0 -0
  121. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/run_grouped_cv.py +0 -0
  122. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/00_starting/run_simple_binary_classification.py +0 -0
  123. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/01_model_comparison/README.rst +0 -0
  124. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
  125. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/02_inspection/README.rst +0 -0
  126. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
  127. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
  128. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/02_inspection/plot_preprocess.py +0 -0
  129. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
  130. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/README.rst +0 -0
  131. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_apply_to_target.py +0 -0
  132. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
  133. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_generate_target.py +0 -0
  134. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
  135. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
  136. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
  137. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/03_complex_models/run_stacked_models.py +0 -0
  138. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/04_confounds/README.rst +0 -0
  139. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
  140. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/04_confounds/run_return_confounds.py +0 -0
  141. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/05_customization/README.rst +0 -0
  142. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/05_customization/run_custom_scorers_regression.py +0 -0
  143. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/README.rst +0 -0
  144. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_cbpm_docs.py +0 -0
  145. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_confound_removal_docs.py +0 -0
  146. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_cv_splitters_docs.py +0 -0
  147. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_data_docs.py +0 -0
  148. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_hyperparameters_docs.py +0 -0
  149. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_model_comparison_docs.py +0 -0
  150. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_model_evaluation_docs.py +0 -0
  151. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_model_inspection_docs.py +0 -0
  152. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_pipeline_docs.py +0 -0
  153. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_stacked_models_docs.py +0 -0
  154. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/99_docs/run_target_transformer_docs.py +0 -0
  155. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/README.rst +0 -0
  156. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
  157. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
  158. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/ignore_words.txt +0 -0
  159. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/__init__.py +0 -0
  160. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/api.py +0 -0
  161. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/base/__init__.py +0 -0
  162. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/base/column_types.py +0 -0
  163. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/base/estimators.py +0 -0
  164. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/base/tests/test_base_estimators.py +0 -0
  165. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/base/tests/test_column_types.py +0 -0
  166. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/config.py +0 -0
  167. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/conftest.py +0 -0
  168. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/external/optuna_searchcv.py +0 -0
  169. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/__init__.py +0 -0
  170. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/_cv.py +0 -0
  171. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/_pipeline.py +0 -0
  172. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/_preprocess.py +0 -0
  173. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/inspector.py +0 -0
  174. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/tests/test_cv.py +0 -0
  175. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/tests/test_inspector.py +0 -0
  176. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/tests/test_pipeline.py +0 -0
  177. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/inspect/tests/test_preprocess.py +0 -0
  178. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/__init__.py +0 -0
  179. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/_optuna_searcher.py +0 -0
  180. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/_skopt_searcher.py +0 -0
  181. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/available_searchers.py +0 -0
  182. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
  183. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/final_model_cv.py +0 -0
  184. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/stratified_bootstrap.py +0 -0
  185. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_available_searchers.py +0 -0
  186. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
  187. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_final_model_cv.py +0 -0
  188. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_optuna_searcher.py +0 -0
  189. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_skopt_searcher.py +0 -0
  190. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
  191. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/model_selection/utils.py +0 -0
  192. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/__init__.py +0 -0
  193. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/dynamic.py +0 -0
  194. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/tests/test_available_models.py +0 -0
  195. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/tests/test_dynamic.py +0 -0
  196. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/models/tests/test_models.py +0 -0
  197. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/__init__.py +0 -0
  198. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/merger.py +0 -0
  199. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/pipeline_creator.py +0 -0
  200. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/target_pipeline.py +0 -0
  201. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/target_pipeline_creator.py +0 -0
  202. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/tests/test_merger.py +0 -0
  203. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/tests/test_pipeline_creator.py +0 -0
  204. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
  205. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
  206. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/prepare.py +0 -0
  207. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/scoring/__init__.py +0 -0
  208. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/scoring/available_scorers.py +0 -0
  209. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/scoring/metrics.py +0 -0
  210. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/scoring/tests/test_available_scorers.py +0 -0
  211. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/scoring/tests/test_metrics.py +0 -0
  212. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/stats/__init__.py +0 -0
  213. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/stats/corrected_ttest.py +0 -0
  214. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/stats/tests/test_corrected_ttest.py +0 -0
  215. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/tests/test_api.py +0 -0
  216. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/tests/test_config.py +0 -0
  217. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/tests/test_prepare.py +0 -0
  218. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/__init__.py +0 -0
  219. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/available_transformers.py +0 -0
  220. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/cbpm.py +0 -0
  221. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/confound_remover.py +0 -0
  222. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/__init__.py +0 -0
  223. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/change_column_types.py +0 -0
  224. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/drop_columns.py +0 -0
  225. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/filter_columns.py +0 -0
  226. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/pick_columns.py +0 -0
  227. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/set_column_types.py +0 -0
  228. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
  229. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
  230. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
  231. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/dataframe/tests/test_set_column_types.py +0 -0
  232. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/ju_column_transformer.py +0 -0
  233. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/__init__.py +0 -0
  234. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/available_target_transformers.py +0 -0
  235. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/ju_generated_target_model.py +0 -0
  236. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/ju_target_transformer.py +0 -0
  237. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/ju_transformed_target_model.py +0 -0
  238. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/target_confound_remover.py +0 -0
  239. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
  240. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/tests/test_ju_generated_target_model.py +0 -0
  241. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
  242. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +0 -0
  243. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
  244. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/tests/test_available_transformers.py +0 -0
  245. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/tests/test_cbpm.py +0 -0
  246. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/tests/test_confounds.py +0 -0
  247. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/transformers/tests/test_jucolumntransformers.py +0 -0
  248. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/__init__.py +0 -0
  249. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/_cv.py +0 -0
  250. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/checks.py +0 -0
  251. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/logging.py +0 -0
  252. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/testing.py +0 -0
  253. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/tests/test_logging.py +0 -0
  254. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/tests/test_version.py +0 -0
  255. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/typing.py +0 -0
  256. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/utils/versions.py +0 -0
  257. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/viz/__init__.py +0 -0
  258. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/viz/_scores.py +0 -0
  259. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn/viz/res/julearn_logo_generalization.png +0 -0
  260. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn.egg-info/dependency_links.txt +0 -0
  261. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/julearn.egg-info/top_level.txt +0 -0
  262. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/setup.cfg +0 -0
  263. {julearn-0.3.6.dev42 → julearn-0.3.6.dev72}/setup.py +0 -0
@@ -0,0 +1,48 @@
1
+ name: Build and preview docs
2
+
3
+ on:
4
+ push:
5
+ branches-ignore:
6
+ - "main"
7
+ tags-ignore:
8
+ - v*
9
+ pull_request:
10
+ types:
11
+ - opened
12
+ - reopened
13
+ - synchronize
14
+ - closed
15
+
16
+ concurrency: preview-${{ github.ref }}
17
+
18
+ jobs:
19
+ build-docs:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - uses: actions/setup-python@v6
27
+ if: github.event.action != 'closed' # We don't need the build if we know the preview will be removed
28
+ with:
29
+ python-version-file: "pyproject.toml"
30
+
31
+ - name: Install uv
32
+ if: github.event.action != 'closed' # We don't need the build if we know the preview will be removed
33
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
34
+
35
+ - name: Install Python dependencies
36
+ if: github.event.action != 'closed' # We don't need the build if we know the preview will be removed
37
+ run: |
38
+ uv sync --locked --extra docs
39
+
40
+ - name: Test build docs
41
+ if: github.event.action != 'closed' # We don't need the build if we know the preview will be removed
42
+ run: |
43
+ uv run make -C docs/ local
44
+
45
+ - uses: rossjrw/pr-preview-action@v1
46
+ with:
47
+ source-dir: docs/_build/dev
48
+ if: github.event_name == 'pull_request'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julearn
3
- Version: 0.3.6.dev42
3
+ Version: 0.3.6.dev72
4
4
  Summary: Juelich Machine Learning Library
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Sami Hamdan <s.hamdan@fz-juelich.de>
6
6
  Maintainer-email: Sami Hamdan <s.hamdan@fz-juelich.de>
@@ -59,10 +59,12 @@ Requires-Dist: scikit-optimize<0.11.0,>=0.10.2; extra == "skopt"
59
59
  Provides-Extra: optuna
60
60
  Requires-Dist: optuna<5.0.0,>=4.0.0; extra == "optuna"
61
61
  Requires-Dist: optuna_integration<5.0.0,>=4.0.0; extra == "optuna"
62
+ Provides-Extra: xgboost
63
+ Requires-Dist: xgboost<4.0.0,>=3.0.0; extra == "xgboost"
62
64
  Provides-Extra: docs
63
- Requires-Dist: julearn[optuna,skopt,sphinx,viz]; extra == "docs"
65
+ Requires-Dist: julearn[optuna,skopt,sphinx,viz,xgboost]; extra == "docs"
64
66
  Provides-Extra: all
65
- Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
67
+ Requires-Dist: julearn[optuna,skopt,viz,xgboost]; extra == "all"
66
68
  Dynamic: license-file
67
69
 
68
70
  # julearn
@@ -19,6 +19,21 @@ Functions
19
19
  register_model
20
20
  reset_model_register
21
21
 
22
+ Julearn custom models
23
+ ---------------------
24
+
25
+ This is a list of models implemented by Julearn that are not simple wrappers
26
+ around existing models in other libraries but rather variants of existing
27
+ models or novel models.
28
+
29
+ .. autosummary::
30
+ :nosignatures:
31
+ :toctree: generated/
32
+ :template: class.rst
33
+
34
+ xgb_cvearlystopping.XGBClassifierCVEarlyStopping
35
+ xgb_cvearlystopping.XGBRegressorCVEarlyStopping
36
+
22
37
  Dynamic Selection (DESLib)
23
38
  ==========================
24
39
 
@@ -235,6 +235,20 @@ Ensemble
235
235
  - Y
236
236
  - Y
237
237
  - Y
238
+ * - ``xgb``
239
+ - XGBoost
240
+ - | :class:`~xgboost.XGBClassifier` and
241
+ | :class:`~xgboost.XGBRegressor`
242
+ - Y
243
+ - Y
244
+ - Y
245
+ * - ``xgb_cvearlystopping``
246
+ - XGBoost with Cross-Validation and Early Stopping
247
+ - | :class:`~julearn.models.xgb_cvearlystopping.XGBClassifierCVEarlyStopping` and
248
+ | :class:`~julearn.models.xgb_cvearlystopping.XGBRegressorCVEarlyStopping`
249
+ - Y
250
+ - Y
251
+ - Y
238
252
 
239
253
  Gaussian Processes
240
254
  ~~~~~~~~~~~~~~~~~~
@@ -34,25 +34,11 @@ else:
34
34
  # process the loaded version information as you wish
35
35
  html_context = globals().get("html_context", {})
36
36
 
37
- tag_revisions = [
38
- rev
39
- for rev in html_context["revisions"]
40
- if rev.type_ == GitRefType.TAG and rev.name.startswith("v")
41
- ]
42
-
43
- latest = sorted(tag_revisions, key=lambda x: x.name)[
44
- -1
45
- ] # latest by version
46
-
47
37
  if (
48
38
  html_context["current"].type_ == GitRefType.BRANCH
49
39
  and html_context["current"].name == "main"
50
40
  ):
51
- major, minor, revision = latest.name.split("v")[-1].split(
52
- "."
53
- ) # get version number from tag name
54
- next_dev_version = f"{major}.{minor}.{int(revision) + 1}.dev0"
55
- release = next_dev_version
41
+ release = os.getenv("SETUPTOOLS_SCM_PRETEND_VERSION_FOR_JULEARN")
56
42
  else:
57
43
  release = html_context["current"].name
58
44
 
@@ -245,6 +231,7 @@ intersphinx_mapping = {
245
231
  None,
246
232
  ),
247
233
  "panel": ("https://panel.holoviz.org/", None),
234
+ "xgboost": ("https://xgboost.readthedocs.io/en/stable/", None),
248
235
  }
249
236
 
250
237
  # -- sphinx.ext.extlinks configuration ---------------------------------------
@@ -18,7 +18,7 @@ from sphinx_polyversion.git import (
18
18
  )
19
19
  from sphinx_polyversion.pyvenv import Pip
20
20
  from sphinx_polyversion.setuptools_scm import SetuptoolsScmDriver
21
- from sphinx_polyversion.sphinx import SphinxBuilder
21
+ from sphinx_polyversion.sphinx import Placeholder, SphinxBuilder
22
22
 
23
23
 
24
24
  #: Regex matching the branches to build docs for
@@ -69,9 +69,16 @@ out_dir = root / OUTPUT_DIR
69
69
  logger.info(f"Docs Source directory: {docs_src}")
70
70
  logger.info(f"Output directory: {out_dir}")
71
71
 
72
+
73
+ # Command to ensure that the output directory is clean before building
74
+ # (otherswise old files may remain if they were removed in the new version).
75
+ pre_cmd = ["rm", "-r", Placeholder.OUTPUT_DIR]
76
+
72
77
  # Builders by version:
73
78
  BUILDER = {
74
- None: SphinxBuilder(docs_src, args=SPHINX_ARGS.split()), # default
79
+ None: SphinxBuilder(
80
+ docs_src, args=SPHINX_ARGS.split(), pre_cmd=pre_cmd
81
+ ), # default
75
82
  }
76
83
 
77
84
 
@@ -311,6 +318,7 @@ if not BUILD_ALL:
311
318
  logger.info(f"Updated TAG_REGEX to: {TAG_REGEX}")
312
319
 
313
320
 
321
+ #
314
322
  #: Data passed to templates
315
323
  def data(driver, rev, env):
316
324
  """Create a factory for data passed to templates.
@@ -362,7 +370,7 @@ SetuptoolsScmDriver(
362
370
  # static_dir=static_dir,
363
371
  data_factory=data,
364
372
  root_data_factory=root_data,
365
- ).run()
373
+ ).run(sequential=SEQUENTIAL)
366
374
 
367
375
  if NO_PATCH:
368
376
  logger.info("NO_PATCH is set, skipping HTML patching.")
@@ -538,13 +546,11 @@ for built_dir in out_dir.iterdir():
538
546
  if built_dir.is_dir():
539
547
  if built_dir.name.startswith("v"):
540
548
  logger.info(f"Patching built version directory: {built_dir.name}")
541
- current_version = next(
542
- [
543
- tag
544
- for tag in built_versions["tags"]
545
- if tag.name == built_dir.name
546
- ]
547
- )
549
+ current_version = [ # noqa: RUF015
550
+ tag
551
+ for tag in built_versions["tags"]
552
+ if tag.name == built_dir.name
553
+ ][0]
548
554
  if int(built_dir.name.split(".")[1]) < 3:
549
555
  # Old read_the_docs template
550
556
  version_rtd_html = versions_rtd_template.render(
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.3.6.dev42'
22
- __version_tuple__ = version_tuple = (0, 3, 6, 'dev42')
21
+ __version__ = version = '0.3.6.dev72'
22
+ __version_tuple__ = version_tuple = (0, 3, 6, 'dev72')
23
23
 
24
- __commit_id__ = commit_id = 'g9e05fcdb2'
24
+ __commit_id__ = commit_id = 'gbc239b21b'
@@ -46,6 +46,19 @@ from sklearn.naive_bayes import (
46
46
  )
47
47
  from sklearn.svm import SVC, SVR
48
48
 
49
+
50
+ try: # pragma: no cover
51
+ from xgboost import XGBClassifier, XGBRegressor
52
+
53
+ from .xgb_cvearlystopping import (
54
+ XGBClassifierCVEarlyStopping,
55
+ XGBRegressorCVEarlyStopping,
56
+ )
57
+
58
+ _has_xgboost = True
59
+ except ImportError:
60
+ _has_xgboost = False
61
+
49
62
  from ..utils import logger, raise_error, warn_with_log
50
63
  from ..utils.logging import DelayedFmtMessage as __
51
64
  from ..utils.typing import ModelLike
@@ -137,6 +150,24 @@ _available_models: dict[str, dict[str, Any]] = {
137
150
  },
138
151
  }
139
152
 
153
+ if _has_xgboost is True:
154
+ _available_models["xgb"] = {
155
+ "regression": XGBRegressor,
156
+ "classification": XGBClassifier,
157
+ }
158
+ _available_models["xgb_cvearlystopping"] = {
159
+ "regression": XGBRegressorCVEarlyStopping,
160
+ "classification": XGBClassifierCVEarlyStopping,
161
+ }
162
+ logger.info(
163
+ "XGBoost is available and has been added to the model registry."
164
+ )
165
+ else:
166
+ logger.info(
167
+ "XGBoost is not available and has not been added to the model "
168
+ "registry. To use XGBoost models, please install the xgboost package."
169
+ )
170
+
140
171
  _available_models_reset = deepcopy(_available_models)
141
172
 
142
173