julearn 0.3.6.dev6__tar.gz → 0.3.6.dev17__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 (250) hide show
  1. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/ci-docs.yml +1 -1
  2. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/ci.yml +1 -1
  3. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/publish.yml +1 -1
  4. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/PKG-INFO +1 -1
  5. julearn-0.3.6.dev17/docs/changes/newsfragments/303.feature +1 -0
  6. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/_version.py +3 -3
  7. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/api.py +28 -0
  8. julearn-0.3.6.dev17/julearn/config.py +118 -0
  9. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn.egg-info/PKG-INFO +1 -1
  10. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn.egg-info/SOURCES.txt +1 -0
  11. julearn-0.3.6.dev6/julearn/config.py +0 -56
  12. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  13. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  14. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
  15. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  16. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/dependabot.yml +0 -0
  17. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/check-stale.yml +0 -0
  18. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/docs-preview.yml +0 -0
  19. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/docs.yml +0 -0
  20. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.github/workflows/lint.yml +0 -0
  21. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.gitignore +0 -0
  22. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/.pre-commit-config.yaml +0 -0
  23. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/AUTHORS.rst +0 -0
  24. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/LICENSE.md +0 -0
  25. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/README.md +0 -0
  26. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/codecov.yml +0 -0
  27. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/Makefile +0 -0
  28. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_static/css/custom.css +0 -0
  29. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_static/js/custom.js +0 -0
  30. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_templates/class.rst +0 -0
  31. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_templates/function.rst +0 -0
  32. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_templates/function_warning.rst +0 -0
  33. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/_templates/versions.html +0 -0
  34. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/base.rst +0 -0
  35. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/config.rst +0 -0
  36. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/index.rst +0 -0
  37. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/inspect.rst +0 -0
  38. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/main.rst +0 -0
  39. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/model_selection.rst +0 -0
  40. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/models.rst +0 -0
  41. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/pipeline.rst +0 -0
  42. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/prepare.rst +0 -0
  43. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/scoring.rst +0 -0
  44. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/stats.rst +0 -0
  45. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/transformers.rst +0 -0
  46. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/utils.rst +0 -0
  47. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/api/viz.rst +0 -0
  48. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/available_pipeline_steps.rst +0 -0
  49. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/changes/contributors.inc +0 -0
  50. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/changes/newsfragments/.gitignore +0 -0
  51. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/changes/newsfragments/301.misc +0 -0
  52. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/conf.py +0 -0
  53. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/configuration.rst +0 -0
  54. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/contributing.rst +0 -0
  55. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/examples.rst +0 -0
  56. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/faq.rst +0 -0
  57. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/getting_started.rst +0 -0
  58. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/corrected_ttest.png +0 -0
  59. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/final_estimator.png +0 -0
  60. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/iris_X.png +0 -0
  61. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/iris_df.png +0 -0
  62. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/iris_y.png +0 -0
  63. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/joblib_htcondor/condor_q.png +0 -0
  64. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/joblib_htcondor/ui_main.png +0 -0
  65. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/joblib_htcondor/ui_open.png +0 -0
  66. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
  67. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo.png +0 -0
  68. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_calm.png +0 -0
  69. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_confbias.png +0 -0
  70. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_cv.png +0 -0
  71. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_generalization.png +0 -0
  72. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_it.png +0 -0
  73. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_ml.png +0 -0
  74. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/julearn_logo_mlit.png +0 -0
  75. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/multiple_scorers_run_cv.png +0 -0
  76. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/plot_scores.png +0 -0
  77. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/scores_run_cv.png +0 -0
  78. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/scores_run_cv_splitter.png +0 -0
  79. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/images/scores_run_cv_train.png +0 -0
  80. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/index.rst +0 -0
  81. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/links.inc +0 -0
  82. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/maintaining.rst +0 -0
  83. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/redirect.html +0 -0
  84. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/CBPM.rst +0 -0
  85. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/confound_removal.rst +0 -0
  86. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
  87. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
  88. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/index.rst +0 -0
  89. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/joblib.rst +0 -0
  90. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/model_inspect.rst +0 -0
  91. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/stacked_models.rst +0 -0
  92. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/selected_deeper_topics/target_transformers.rst +0 -0
  93. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/cross_validation.rst +0 -0
  94. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/data.rst +0 -0
  95. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/index.rst +0 -0
  96. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/model_comparison.rst +0 -0
  97. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/model_evaluation.rst +0 -0
  98. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/what_really_need_know/pipeline.rst +0 -0
  99. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/docs/whats_new.rst +0 -0
  100. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/README.rst +0 -0
  101. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
  102. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/plot_example_regression.py +0 -0
  103. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
  104. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/run_combine_pandas.py +0 -0
  105. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/run_grouped_cv.py +0 -0
  106. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/00_starting/run_simple_binary_classification.py +0 -0
  107. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/01_model_comparison/README.rst +0 -0
  108. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
  109. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/02_inspection/README.rst +0 -0
  110. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
  111. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
  112. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/02_inspection/plot_preprocess.py +0 -0
  113. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
  114. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/README.rst +0 -0
  115. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_apply_to_target.py +0 -0
  116. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
  117. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_generate_target.py +0 -0
  118. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
  119. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
  120. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
  121. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/03_complex_models/run_stacked_models.py +0 -0
  122. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/04_confounds/README.rst +0 -0
  123. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
  124. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/04_confounds/run_return_confounds.py +0 -0
  125. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/05_customization/README.rst +0 -0
  126. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/05_customization/run_custom_scorers_regression.py +0 -0
  127. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/README.rst +0 -0
  128. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_cbpm_docs.py +0 -0
  129. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_confound_removal_docs.py +0 -0
  130. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_cv_splitters_docs.py +0 -0
  131. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_data_docs.py +0 -0
  132. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_hyperparameters_docs.py +0 -0
  133. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_model_comparison_docs.py +0 -0
  134. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_model_evaluation_docs.py +0 -0
  135. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_model_inspection_docs.py +0 -0
  136. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_pipeline_docs.py +0 -0
  137. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_stacked_models_docs.py +0 -0
  138. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/99_docs/run_target_transformer_docs.py +0 -0
  139. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/README.rst +0 -0
  140. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
  141. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
  142. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/ignore_words.txt +0 -0
  143. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/__init__.py +0 -0
  144. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/base/__init__.py +0 -0
  145. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/base/column_types.py +0 -0
  146. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/base/estimators.py +0 -0
  147. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/base/tests/test_base_estimators.py +0 -0
  148. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/base/tests/test_column_types.py +0 -0
  149. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/conftest.py +0 -0
  150. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/external/optuna_searchcv.py +0 -0
  151. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/__init__.py +0 -0
  152. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/_cv.py +0 -0
  153. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/_pipeline.py +0 -0
  154. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/_preprocess.py +0 -0
  155. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/inspector.py +0 -0
  156. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/tests/test_cv.py +0 -0
  157. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/tests/test_inspector.py +0 -0
  158. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/tests/test_pipeline.py +0 -0
  159. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/inspect/tests/test_preprocess.py +0 -0
  160. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/__init__.py +0 -0
  161. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/_optuna_searcher.py +0 -0
  162. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/_skopt_searcher.py +0 -0
  163. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/available_searchers.py +0 -0
  164. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
  165. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/final_model_cv.py +0 -0
  166. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/stratified_bootstrap.py +0 -0
  167. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_available_searchers.py +0 -0
  168. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
  169. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_final_model_cv.py +0 -0
  170. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_optuna_searcher.py +0 -0
  171. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_skopt_searcher.py +0 -0
  172. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
  173. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/model_selection/utils.py +0 -0
  174. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/__init__.py +0 -0
  175. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/available_models.py +0 -0
  176. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/dynamic.py +0 -0
  177. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/tests/test_available_models.py +0 -0
  178. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/tests/test_dynamic.py +0 -0
  179. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/models/tests/test_models.py +0 -0
  180. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/__init__.py +0 -0
  181. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/merger.py +0 -0
  182. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/pipeline_creator.py +0 -0
  183. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/target_pipeline.py +0 -0
  184. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/target_pipeline_creator.py +0 -0
  185. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/tests/test_merger.py +0 -0
  186. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/tests/test_pipeline_creator.py +0 -0
  187. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
  188. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
  189. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/prepare.py +0 -0
  190. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/scoring/__init__.py +0 -0
  191. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/scoring/available_scorers.py +0 -0
  192. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/scoring/metrics.py +0 -0
  193. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/scoring/tests/test_available_scorers.py +0 -0
  194. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/scoring/tests/test_metrics.py +0 -0
  195. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/stats/__init__.py +0 -0
  196. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/stats/corrected_ttest.py +0 -0
  197. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/stats/tests/test_corrected_ttest.py +0 -0
  198. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/tests/test_api.py +0 -0
  199. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/tests/test_config.py +0 -0
  200. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/tests/test_prepare.py +0 -0
  201. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/__init__.py +0 -0
  202. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/available_transformers.py +0 -0
  203. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/cbpm.py +0 -0
  204. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/confound_remover.py +0 -0
  205. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/__init__.py +0 -0
  206. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/change_column_types.py +0 -0
  207. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/drop_columns.py +0 -0
  208. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/filter_columns.py +0 -0
  209. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/pick_columns.py +0 -0
  210. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/set_column_types.py +0 -0
  211. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
  212. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
  213. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
  214. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/dataframe/tests/test_set_column_types.py +0 -0
  215. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/ju_column_transformer.py +0 -0
  216. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/__init__.py +0 -0
  217. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/available_target_transformers.py +0 -0
  218. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/ju_generated_target_model.py +0 -0
  219. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/ju_target_transformer.py +0 -0
  220. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/ju_transformed_target_model.py +0 -0
  221. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/target_confound_remover.py +0 -0
  222. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
  223. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/tests/test_ju_generated_target_model.py +0 -0
  224. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
  225. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +0 -0
  226. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
  227. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/tests/test_available_transformers.py +0 -0
  228. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/tests/test_cbpm.py +0 -0
  229. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/tests/test_confounds.py +0 -0
  230. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/transformers/tests/test_jucolumntransformers.py +0 -0
  231. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/__init__.py +0 -0
  232. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/_cv.py +0 -0
  233. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/checks.py +0 -0
  234. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/logging.py +0 -0
  235. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/testing.py +0 -0
  236. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/tests/test_logging.py +0 -0
  237. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/tests/test_version.py +0 -0
  238. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/typing.py +0 -0
  239. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/utils/versions.py +0 -0
  240. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/viz/__init__.py +0 -0
  241. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/viz/_scores.py +0 -0
  242. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn/viz/res/julearn_logo_generalization.png +0 -0
  243. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn.egg-info/dependency_links.txt +0 -0
  244. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn.egg-info/requires.txt +0 -0
  245. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/julearn.egg-info/top_level.txt +0 -0
  246. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/pyproject.toml +0 -0
  247. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/setup.cfg +0 -0
  248. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/setup.py +0 -0
  249. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/tox.ini +0 -0
  250. {julearn-0.3.6.dev6 → julearn-0.3.6.dev17}/uv.lock +0 -0
@@ -53,7 +53,7 @@ jobs:
53
53
  echo '</coverage>' >> coverage.xml
54
54
  if: matrix.python-version == 3.12
55
55
  - name: Upload mock coverage to Codecov
56
- uses: codecov/codecov-action@v5
56
+ uses: codecov/codecov-action@v6
57
57
  with:
58
58
  token: ${{ secrets.CODECOV_TOKEN }}
59
59
  fail_ci_if_error: true
@@ -39,7 +39,7 @@ jobs:
39
39
  - name: Test with tox
40
40
  run: |
41
41
  tox
42
- - uses: codecov/codecov-action@v5
42
+ - uses: codecov/codecov-action@v6
43
43
  with:
44
44
  token: ${{ secrets.CODECOV_TOKEN }}
45
45
  fail_ci_if_error: true
@@ -32,7 +32,7 @@ jobs:
32
32
  run:
33
33
  python -m build
34
34
  - uses: pypa/gh-action-pypi-publish@release/v1
35
- - uses: softprops/action-gh-release@v2
35
+ - uses: softprops/action-gh-release@v3
36
36
  with:
37
37
  files: |
38
38
  dist/*.tar.gz
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julearn
3
- Version: 0.3.6.dev6
3
+ Version: 0.3.6.dev17
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>
@@ -0,0 +1 @@
1
+ Allow setting of ``context_func`` for ``joblib-htcondor`` by `Fede Raimondo`_
@@ -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.dev6'
22
- __version_tuple__ = version_tuple = (0, 3, 6, 'dev6')
21
+ __version__ = version = '0.3.6.dev17'
22
+ __version_tuple__ = version_tuple = (0, 3, 6, 'dev17')
23
23
 
24
- __commit_id__ = commit_id = 'gff341ff24'
24
+ __commit_id__ = commit_id = 'g591f6791b'
@@ -10,6 +10,7 @@ from typing import Optional, Union
10
10
  import numpy as np
11
11
  import pandas as pd
12
12
  import sklearn
13
+ from joblib.parallel import get_active_backend
13
14
  from sklearn.base import BaseEstimator
14
15
  from sklearn.model_selection import (
15
16
  cross_validate,
@@ -17,6 +18,7 @@ from sklearn.model_selection import (
17
18
  from sklearn.model_selection._search import BaseSearchCV
18
19
  from sklearn.pipeline import Pipeline
19
20
 
21
+ from .config import _joblib_htcondor_context_func
20
22
  from .inspect import Inspector
21
23
  from .model_selection.utils import check_cv
22
24
  from .pipeline import PipelineCreator
@@ -382,6 +384,28 @@ def _validate_api_params( # noqa: C901
382
384
  return out
383
385
 
384
386
 
387
+ def _check_configure_joblib_backend() -> None:
388
+ """Check and configure if we are running in a joblib parallel backend."""
389
+ backend, _ = get_active_backend()
390
+
391
+ # If we are in an HTCondor backend, we need to set the context function to
392
+ # set the global configuration variables from both julearn and scikit-
393
+ # learn, as these are not automatically propagated to the workers in
394
+ # non-shared memory backends.
395
+ if backend.__class__.__name__ == "_HTCondorBackend":
396
+ if hasattr(backend, "_context_func"):
397
+ backend._context_func = _joblib_htcondor_context_func(
398
+ current_func=backend._context_func
399
+ )
400
+ else:
401
+ raise_error(
402
+ "Running in an HTCondor backend, but it does not have a "
403
+ "_context_func attribute. Global configuration variables "
404
+ "will not be propagated to the workers. Please update your "
405
+ "joblib-htcondor package to version 0.2.3 or higher."
406
+ )
407
+
408
+
385
409
  def run_cross_validation(
386
410
  X: list[str], # noqa: N803
387
411
  y: str,
@@ -613,6 +637,8 @@ def run_cross_validation(
613
637
  else:
614
638
  _sklearn_deprec_fit_params["fit_params"] = fit_params
615
639
 
640
+ _check_configure_joblib_backend()
641
+
616
642
  scores = cross_validate(
617
643
  pipeline,
618
644
  df_X,
@@ -835,6 +861,8 @@ def run_fit(
835
861
  else:
836
862
  _sklearn_deprec_fit_params["fit_params"] = fit_params
837
863
 
864
+ _check_configure_joblib_backend()
865
+
838
866
  logger.info("Fitting final model")
839
867
  pipeline.fit(df_X, df_y, **fit_params)
840
868
 
@@ -0,0 +1,118 @@
1
+ """Global config module."""
2
+
3
+ # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # License: AGPL
5
+
6
+ from typing import Any
7
+
8
+ from .utils import logger, raise_error
9
+ from .utils.logging import DelayedFmtMessage as __
10
+
11
+
12
+ _global_config = {}
13
+ _global_config["MAX_X_WARNS"] = 5000
14
+ _global_config["max_x_logs"] = 100
15
+ _global_config["disable_x_check"] = False
16
+ _global_config["disable_xtypes_check"] = False
17
+ _global_config["disable_x_verbose"] = False
18
+ _global_config["disable_xtypes_verbose"] = False
19
+ _global_config["enable_parallel_column_transformers"] = False
20
+ _global_config["enable_auto_escape_parenthesis"] = True
21
+
22
+
23
+ def set_config(key: str, value: Any) -> None:
24
+ """Set a global config value.
25
+
26
+ Parameters
27
+ ----------
28
+ key : str
29
+ The key to set.
30
+ value : Any
31
+ The value to set.
32
+
33
+ """
34
+ if key not in _global_config:
35
+ raise_error(f"Global config {key} does not exist")
36
+ logger.info(
37
+ __("Setting global config {key} to {value}", key=key, value=value)
38
+ )
39
+ _global_config[key] = value
40
+
41
+
42
+ def get_config(key: str) -> Any:
43
+ """Get a global config value.
44
+
45
+ Parameters
46
+ ----------
47
+ key : str
48
+ The key to get.
49
+
50
+ Returns
51
+ -------
52
+ Any
53
+ The value of the key.
54
+
55
+ """
56
+ return _global_config.get(key, None)
57
+
58
+
59
+ def _joblib_htcondor_context_func(current_func=None) -> None:
60
+ """Create a function to seet the config variables.
61
+
62
+ Parameters
63
+ ----------
64
+ current_func : function
65
+ The current function that was set in the joblib context. If not None,
66
+ it will be called before setting the config variables (default None).
67
+
68
+ Returns
69
+ -------
70
+ function
71
+ A function to set the config variables.
72
+
73
+ """
74
+ from copy import deepcopy
75
+ from functools import partial
76
+
77
+ import sklearn
78
+
79
+ # Copy the global config
80
+ _config = {}
81
+ _config["julearn_config"] = deepcopy(_global_config)
82
+
83
+ _config["sklearn_config"] = sklearn.get_config()
84
+
85
+ # add the logging configuration
86
+ level = logger.level
87
+ fmt = None
88
+ if len(logger.handlers) > 0:
89
+ fmt = logger.handlers[0].formatter._fmt # type: ignore
90
+
91
+ _config["julearn_logging_config"] = {
92
+ "level": level,
93
+ "output_format": fmt,
94
+ }
95
+
96
+ # Log the current function, if any, to be called before setting the config
97
+ _config["jht_current_func"] = current_func
98
+
99
+ def _set_context_vars(**kwargs):
100
+ # First, call the previous function
101
+ jht_current_func = kwargs.pop("jht_current_func")
102
+ if jht_current_func is not None:
103
+ jht_current_func()
104
+
105
+ # Julearn then sets the config variables. If user has set any variable
106
+ # in the context function, current julearn state should override this
107
+ # setting.
108
+ for key, value in kwargs.items():
109
+ if key == "sklearn_config":
110
+ sklearn.set_config(**value)
111
+ elif key == "julearn_logging_config":
112
+ from julearn.utils import configure_logging
113
+ configure_logging(**value)
114
+ elif key == "julearn_config":
115
+ for k, v in value.items():
116
+ set_config(k, v)
117
+
118
+ return partial(_set_context_vars, **_config) # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julearn
3
- Version: 0.3.6.dev6
3
+ Version: 0.3.6.dev17
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>
@@ -57,6 +57,7 @@ docs/api/viz.rst
57
57
  docs/changes/contributors.inc
58
58
  docs/changes/newsfragments/.gitignore
59
59
  docs/changes/newsfragments/301.misc
60
+ docs/changes/newsfragments/303.feature
60
61
  docs/images/corrected_ttest.png
61
62
  docs/images/final_estimator.png
62
63
  docs/images/iris_X.png
@@ -1,56 +0,0 @@
1
- """Global config module."""
2
-
3
- # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
- # License: AGPL
5
-
6
- from typing import Any
7
-
8
- from .utils import logger, raise_error
9
- from .utils.logging import DelayedFmtMessage as __
10
-
11
-
12
- _global_config = {}
13
- _global_config["MAX_X_WARNS"] = 5000
14
- _global_config["max_x_logs"] = 100
15
- _global_config["disable_x_check"] = False
16
- _global_config["disable_xtypes_check"] = False
17
- _global_config["disable_x_verbose"] = False
18
- _global_config["disable_xtypes_verbose"] = False
19
- _global_config["enable_parallel_column_transformers"] = False
20
- _global_config["enable_auto_escape_parenthesis"] = True
21
-
22
-
23
- def set_config(key: str, value: Any) -> None:
24
- """Set a global config value.
25
-
26
- Parameters
27
- ----------
28
- key : str
29
- The key to set.
30
- value : Any
31
- The value to set.
32
-
33
- """
34
- if key not in _global_config:
35
- raise_error(f"Global config {key} does not exist")
36
- logger.info(
37
- __("Setting global config {key} to {value}", key=key, value=value)
38
- )
39
- _global_config[key] = value
40
-
41
-
42
- def get_config(key: str) -> Any:
43
- """Get a global config value.
44
-
45
- Parameters
46
- ----------
47
- key : str
48
- The key to get.
49
-
50
- Returns
51
- -------
52
- Any
53
- The value of the key.
54
-
55
- """
56
- return _global_config.get(key, None)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes