julearn 0.3.5.dev28__tar.gz → 0.3.5.dev56__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 (252) hide show
  1. julearn-0.3.5.dev56/.github/dependabot.yml +14 -0
  2. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/check-stale.yml +1 -1
  3. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/ci-docs.yml +15 -4
  4. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/ci.yml +15 -9
  5. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/docs-preview.yml +6 -9
  6. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/docs.yml +7 -9
  7. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/workflows/lint.yml +4 -5
  8. julearn-0.3.5.dev56/.github/workflows/publish.yml +42 -0
  9. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.pre-commit-config.yaml +9 -10
  10. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/PKG-INFO +24 -17
  11. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/Makefile +4 -13
  12. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/index.rst +1 -1
  13. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/277.enh +1 -1
  14. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/278.doc +1 -1
  15. julearn-0.3.5.dev56/docs/changes/newsfragments/284.misc +1 -0
  16. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/conf.py +53 -31
  17. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/configuration.rst +1 -1
  18. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/links.inc +1 -1
  19. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/whats_new.rst +2 -0
  20. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_confound_removal_docs.py +1 -0
  21. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_cv_splitters_docs.py +1 -0
  22. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_hyperparameters_docs.py +4 -1
  23. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_model_evaluation_docs.py +1 -0
  24. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_model_inspection_docs.py +2 -3
  25. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_pipeline_docs.py +1 -0
  26. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_target_transformer_docs.py +1 -0
  27. julearn-0.3.5.dev56/julearn/_version.py +34 -0
  28. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/api.py +26 -28
  29. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/base/column_types.py +4 -4
  30. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/base/estimators.py +10 -4
  31. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/base/tests/test_base_estimators.py +2 -4
  32. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/base/tests/test_column_types.py +4 -6
  33. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/conftest.py +9 -9
  34. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/external/optuna_searchcv.py +1 -1
  35. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/_cv.py +1 -1
  36. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/_preprocess.py +2 -2
  37. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/inspector.py +2 -3
  38. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/tests/test_pipeline.py +5 -5
  39. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/tests/test_preprocess.py +4 -4
  40. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/_optuna_searcher.py +3 -3
  41. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/_skopt_searcher.py +5 -6
  42. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/available_searchers.py +4 -4
  43. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/final_model_cv.py +3 -2
  44. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_final_model_cv.py +2 -2
  45. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_optuna_searcher.py +4 -4
  46. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_skopt_searcher.py +4 -4
  47. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/available_models.py +6 -7
  48. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/dynamic.py +3 -1
  49. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/tests/test_dynamic.py +2 -1
  50. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/tests/test_models.py +7 -7
  51. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/merger.py +4 -4
  52. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/pipeline_creator.py +18 -18
  53. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/target_pipeline.py +15 -7
  54. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/tests/test_pipeline_creator.py +27 -30
  55. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/tests/test_target_pipeline.py +26 -10
  56. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/prepare.py +14 -13
  57. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/scoring/available_scorers.py +5 -5
  58. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/scoring/tests/test_available_scorers.py +3 -1
  59. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/stats/corrected_ttest.py +2 -2
  60. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/tests/test_api.py +22 -9
  61. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/available_transformers.py +2 -2
  62. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/cbpm.py +11 -3
  63. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/confound_remover.py +14 -11
  64. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/change_column_types.py +7 -5
  65. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/drop_columns.py +4 -4
  66. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/filter_columns.py +3 -3
  67. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/set_column_types.py +7 -5
  68. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/tests/test_set_column_types.py +3 -3
  69. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/ju_column_transformer.py +5 -5
  70. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/available_target_transformers.py +4 -4
  71. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/ju_target_transformer.py +9 -3
  72. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/ju_transformed_target_model.py +7 -2
  73. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/target_confound_remover.py +6 -2
  74. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +10 -5
  75. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/tests/test_target_confound_remover.py +2 -1
  76. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/tests/test_available_transformers.py +3 -1
  77. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/tests/test_cbpm.py +14 -7
  78. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/tests/test_confounds.py +5 -5
  79. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/tests/test_jucolumntransformers.py +2 -4
  80. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/_cv.py +0 -2
  81. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/checks.py +2 -4
  82. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/logging.py +13 -7
  83. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/testing.py +5 -5
  84. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/typing.py +4 -5
  85. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/viz/_scores.py +1 -1
  86. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn.egg-info/PKG-INFO +24 -17
  87. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn.egg-info/SOURCES.txt +3 -2
  88. julearn-0.3.5.dev56/julearn.egg-info/requires.txt +45 -0
  89. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/pyproject.toml +67 -43
  90. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/tox.ini +28 -38
  91. julearn-0.3.5.dev28/.github/workflows/pypi.yml +0 -35
  92. julearn-0.3.5.dev28/docs/sphinxext/gh_substitutions.py +0 -30
  93. julearn-0.3.5.dev28/julearn/_version.py +0 -21
  94. julearn-0.3.5.dev28/julearn.egg-info/requires.txt +0 -38
  95. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  96. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  97. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
  98. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  99. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/.gitignore +0 -0
  100. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/AUTHORS.rst +0 -0
  101. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/LICENSE.md +0 -0
  102. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/README.md +0 -0
  103. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/codecov.yml +0 -0
  104. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_static/css/custom.css +0 -0
  105. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_static/js/custom.js +0 -0
  106. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_templates/class.rst +0 -0
  107. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_templates/function.rst +0 -0
  108. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_templates/function_warning.rst +0 -0
  109. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/_templates/versions.html +0 -0
  110. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/base.rst +0 -0
  111. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/config.rst +0 -0
  112. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/inspect.rst +0 -0
  113. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/main.rst +0 -0
  114. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/model_selection.rst +0 -0
  115. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/models.rst +0 -0
  116. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/pipeline.rst +0 -0
  117. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/prepare.rst +0 -0
  118. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/scoring.rst +0 -0
  119. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/stats.rst +0 -0
  120. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/transformers.rst +0 -0
  121. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/utils.rst +0 -0
  122. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/api/viz.rst +0 -0
  123. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/available_pipeline_steps.rst +0 -0
  124. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/contributors.inc +0 -0
  125. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/.gitignore +0 -0
  126. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/279.doc +0 -0
  127. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/282.doc +0 -0
  128. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/changes/newsfragments/283.doc +0 -0
  129. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/contributing.rst +0 -0
  130. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/examples.rst +0 -0
  131. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/faq.rst +0 -0
  132. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/getting_started.rst +0 -0
  133. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/corrected_ttest.png +0 -0
  134. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/final_estimator.png +0 -0
  135. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/iris_X.png +0 -0
  136. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/iris_df.png +0 -0
  137. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/iris_y.png +0 -0
  138. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/joblib_htcondor/condor_q.png +0 -0
  139. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/joblib_htcondor/ui_main.png +0 -0
  140. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/joblib_htcondor/ui_open.png +0 -0
  141. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
  142. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo.png +0 -0
  143. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_calm.png +0 -0
  144. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_confbias.png +0 -0
  145. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_cv.png +0 -0
  146. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_generalization.png +0 -0
  147. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_it.png +0 -0
  148. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_ml.png +0 -0
  149. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/julearn_logo_mlit.png +0 -0
  150. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/multiple_scorers_run_cv.png +0 -0
  151. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/plot_scores.png +0 -0
  152. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/scores_run_cv.png +0 -0
  153. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/scores_run_cv_splitter.png +0 -0
  154. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/images/scores_run_cv_train.png +0 -0
  155. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/index.rst +0 -0
  156. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/maintaining.rst +0 -0
  157. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/redirect.html +0 -0
  158. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/CBPM.rst +0 -0
  159. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/confound_removal.rst +0 -0
  160. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
  161. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
  162. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/index.rst +0 -0
  163. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/joblib.rst +0 -0
  164. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/model_inspect.rst +0 -0
  165. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/stacked_models.rst +0 -0
  166. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/selected_deeper_topics/target_transformers.rst +0 -0
  167. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/cross_validation.rst +0 -0
  168. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/data.rst +0 -0
  169. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/index.rst +0 -0
  170. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/model_comparison.rst +0 -0
  171. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/model_evaluation.rst +0 -0
  172. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/docs/what_really_need_know/pipeline.rst +0 -0
  173. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/README.rst +0 -0
  174. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
  175. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/plot_example_regression.py +0 -0
  176. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
  177. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/run_combine_pandas.py +0 -0
  178. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/run_grouped_cv.py +0 -0
  179. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/00_starting/run_simple_binary_classification.py +0 -0
  180. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/01_model_comparison/README.rst +0 -0
  181. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
  182. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/02_inspection/README.rst +0 -0
  183. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
  184. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
  185. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/02_inspection/plot_preprocess.py +0 -0
  186. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
  187. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/README.rst +0 -0
  188. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_apply_to_target.py +0 -0
  189. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
  190. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
  191. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
  192. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
  193. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/03_complex_models/run_stacked_models.py +0 -0
  194. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/04_confounds/README.rst +0 -0
  195. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
  196. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/04_confounds/run_return_confounds.py +0 -0
  197. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/05_customization/README.rst +0 -0
  198. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/05_customization/run_custom_scorers_regression.py +0 -0
  199. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/README.rst +0 -0
  200. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_cbpm_docs.py +0 -0
  201. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_data_docs.py +0 -0
  202. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_model_comparison_docs.py +0 -0
  203. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/99_docs/run_stacked_models_docs.py +0 -0
  204. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/README.rst +0 -0
  205. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
  206. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
  207. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/ignore_words.txt +0 -0
  208. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/__init__.py +0 -0
  209. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/base/__init__.py +0 -0
  210. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/config.py +0 -0
  211. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/__init__.py +0 -0
  212. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/_pipeline.py +0 -0
  213. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/tests/test_cv.py +0 -0
  214. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/inspect/tests/test_inspector.py +0 -0
  215. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/__init__.py +0 -0
  216. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
  217. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/stratified_bootstrap.py +0 -0
  218. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_available_searchers.py +0 -0
  219. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
  220. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
  221. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/model_selection/utils.py +0 -0
  222. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/__init__.py +0 -0
  223. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/models/tests/test_available_models.py +0 -0
  224. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/__init__.py +0 -0
  225. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/target_pipeline_creator.py +0 -0
  226. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/tests/test_merger.py +0 -0
  227. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
  228. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/scoring/__init__.py +0 -0
  229. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/scoring/metrics.py +0 -0
  230. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/scoring/tests/test_metrics.py +0 -0
  231. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/stats/__init__.py +0 -0
  232. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/stats/tests/test_corrected_ttest.py +0 -0
  233. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/tests/test_config.py +0 -0
  234. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/tests/test_prepare.py +0 -0
  235. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/__init__.py +0 -0
  236. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/__init__.py +0 -0
  237. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
  238. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
  239. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
  240. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/__init__.py +0 -0
  241. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
  242. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
  243. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/__init__.py +0 -0
  244. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/tests/test_logging.py +0 -0
  245. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/tests/test_version.py +0 -0
  246. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/utils/versions.py +0 -0
  247. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/viz/__init__.py +0 -0
  248. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn/viz/res/julearn_logo_generalization.png +0 -0
  249. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn.egg-info/dependency_links.txt +0 -0
  250. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/julearn.egg-info/top_level.txt +0 -0
  251. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/setup.cfg +0 -0
  252. {julearn-0.3.5.dev28 → julearn-0.3.5.dev56}/setup.py +0 -0
@@ -0,0 +1,14 @@
1
+ # Set update schedule for GitHub Actions
2
+ version: 2
3
+ updates:
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ # Check for updates to GitHub Actions every week
8
+ interval: "weekly"
9
+ # Group updates to avoid extra PRs
10
+ groups:
11
+ # Group name
12
+ actions:
13
+ patterns:
14
+ - "*"
@@ -1,4 +1,4 @@
1
- name: 'Close stale issues'
1
+ name: Close stale issues
2
2
 
3
3
  on:
4
4
  schedule:
@@ -4,18 +4,29 @@ on:
4
4
  push:
5
5
  paths-ignore:
6
6
  - 'julearn/**'
7
+ - 'docs/changes/newsfragments/**'
7
8
  - '.github/workflows/**'
9
+ - 'tox.ini'
10
+ - 'pyproject.toml'
8
11
  pull_request:
9
12
  paths-ignore:
10
13
  - 'julearn/**'
14
+ - 'docs/changes/newsfragments/**'
11
15
  - '.github/workflows/**'
16
+ - 'tox.ini'
17
+ - 'pyproject.toml'
12
18
  jobs:
13
19
  run-tests:
14
20
  runs-on: ubuntu-latest
15
21
  strategy:
16
22
  fail-fast: false
17
23
  matrix:
18
- python-version: ['3.8', '3.9', '3.10', '3.11']
24
+ python-version:
25
+ - '3.9'
26
+ - '3.10'
27
+ - '3.11'
28
+ - '3.12'
29
+ - '3.13'
19
30
  steps:
20
31
  - run: 'echo "No build required"'
21
32
  - name: Create mock coverage.xml file
@@ -40,11 +51,11 @@ jobs:
40
51
  echo '</package>' >> coverage.xml
41
52
  echo '</packages>' >> coverage.xml
42
53
  echo '</coverage>' >> coverage.xml
43
- if: matrix.python-version == 3.10
54
+ if: matrix.python-version == 3.12
44
55
  - name: Upload mock coverage to Codecov
45
- uses: codecov/codecov-action@v4
56
+ uses: codecov/codecov-action@v5
46
57
  with:
47
58
  token: ${{ secrets.CODECOV_TOKEN }}
48
59
  fail_ci_if_error: true
49
60
  flags: docs
50
- if: success() && matrix.python-version == 3.10
61
+ if: success() && matrix.python-version == 3.12
@@ -5,10 +5,14 @@ on:
5
5
  paths:
6
6
  - 'julearn/**'
7
7
  - '.github/workflows/**'
8
+ - 'tox.ini'
9
+ - 'pyproject.toml'
8
10
  pull_request:
9
11
  paths:
10
12
  - 'julearn/**'
11
13
  - '.github/workflows/**'
14
+ - 'tox.ini'
15
+ - 'pyproject.toml'
12
16
 
13
17
  jobs:
14
18
  build:
@@ -16,26 +20,28 @@ jobs:
16
20
  strategy:
17
21
  fail-fast: false
18
22
  matrix:
19
- python-version: ['3.8', '3.9', '3.10', '3.11']
23
+ python-version:
24
+ - '3.9'
25
+ - '3.10'
26
+ - '3.11'
27
+ - '3.12'
28
+ - '3.13'
20
29
 
21
30
  steps:
22
- - name: Checkout repository
23
- uses: actions/checkout@v3
24
- - name: Set up Python ${{ matrix.python-version }}
25
- uses: actions/setup-python@v4
31
+ - uses: actions/checkout@v5
32
+ - uses: actions/setup-python@v5
26
33
  with:
27
34
  python-version: ${{ matrix.python-version }}
28
- - name: Install dependencies
35
+ - name: Install Python dependencies
29
36
  run: |
30
37
  python -m pip install --upgrade pip setuptools wheel
31
38
  python -m pip install tox tox-gh-actions
32
39
  - name: Test with tox
33
40
  run: |
34
41
  tox
35
- - name: Upload coverage to Codecov
36
- uses: codecov/codecov-action@v4
42
+ - uses: codecov/codecov-action@v5
37
43
  with:
38
44
  token: ${{ secrets.CODECOV_TOKEN }}
39
45
  fail_ci_if_error: true
40
46
  flags: julearn
41
- if: success() && matrix.python-version == 3.10
47
+ if: success() && matrix.python-version == 3.12
@@ -19,23 +19,20 @@ jobs:
19
19
  build-docs:
20
20
  runs-on: ubuntu-latest
21
21
  steps:
22
- - name: Checkout source
23
- uses: actions/checkout@v3
22
+ - uses: actions/checkout@v5
24
23
  with:
25
24
  fetch-depth: 0
26
- - name: Set up Python 3.10
27
- uses: actions/setup-python@v4
25
+ - uses: actions/setup-python@v5
28
26
  with:
29
- python-version: '3.10'
30
- - name: Install dependencies
27
+ python-version: "3.x"
28
+ - name: Install Python dependencies
31
29
  run: |
32
30
  python -m pip install --upgrade pip setuptools wheel
33
31
  python -m pip install -e .[docs,viz]
34
32
  - name: Test build docs
35
33
  run: |
36
34
  BUILDDIR=_build/main make -C docs/ local
37
- - name: Deploy preview
38
- if: github.event_name == 'pull_request'
39
- uses: rossjrw/pr-preview-action@v1
35
+ - uses: rossjrw/pr-preview-action@v1
40
36
  with:
41
37
  source-dir: docs/_build/main
38
+ if: github.event_name == 'pull_request'
@@ -8,21 +8,20 @@ on:
8
8
  # Sequence of patterns matched against refs/tags
9
9
  tags:
10
10
  - v*
11
+ workflow_dispatch: {}
11
12
 
12
13
  jobs:
13
14
  build-docs:
14
15
  runs-on: ubuntu-latest
15
16
  steps:
16
- - name: Checkout source
17
- uses: actions/checkout@v3
17
+ - uses: actions/checkout@v5
18
18
  with:
19
19
  # require all of history to see all tagged versions' docs
20
20
  fetch-depth: 0
21
- - name: Set up Python 3.10
22
- uses: actions/setup-python@v4
21
+ - uses: actions/setup-python@v5
23
22
  with:
24
- python-version: '3.10'
25
- - name: Install dependencies
23
+ python-version: "3.x"
24
+ - name: Install Python dependencies
26
25
  run: |
27
26
  python -m pip install --upgrade pip setuptools wheel
28
27
  python -m pip install -e .[docs,viz]
@@ -30,7 +29,7 @@ jobs:
30
29
  - name: Checkout gh-pages
31
30
  # As we already did a deploy of gh-pages above, it is guaranteed to be there
32
31
  # so check it out so we can selectively build docs below
33
- uses: actions/checkout@v3
32
+ uses: actions/checkout@v5
34
33
  with:
35
34
  ref: gh-pages
36
35
  path: docs/_build
@@ -40,8 +39,7 @@ jobs:
40
39
  make -C docs/ html
41
40
  touch docs/_build/.nojekyll
42
41
  cp docs/redirect.html docs/_build/index.html
43
- - name: Publish docs to gh-pages
44
- uses: peaceiris/actions-gh-pages@v3
42
+ - uses: peaceiris/actions-gh-pages@v3
45
43
  with:
46
44
  github_token: ${{ secrets.GITHUB_TOKEN }}
47
45
  publish_dir: docs/_build
@@ -8,12 +8,11 @@ jobs:
8
8
  lint:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@v3
12
- - name: Install Python
13
- uses: actions/setup-python@v4
11
+ - uses: actions/checkout@v5
12
+ - uses: actions/setup-python@v5
14
13
  with:
15
- python-version: "3.11"
16
- - name: Install dependencies
14
+ python-version: "3.x"
15
+ - name: Install Python dependencies
17
16
  run: |
18
17
  python -m pip install --upgrade pip
19
18
  python -m pip install tox "ruff>=0.1.0"
@@ -0,0 +1,42 @@
1
+ name: Build and publish
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - 'v*'
9
+
10
+ jobs:
11
+ build-and-publish:
12
+ name: Build and publish
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ # Needed for PyPI publishing
16
+ id-token: write
17
+ # Needed for GitHub releases
18
+ contents: write
19
+ steps:
20
+ - uses: actions/checkout@v5
21
+ with:
22
+ fetch-depth: 0
23
+ submodules: true
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.x"
27
+ - name: Install build
28
+ run: |
29
+ python -m pip install --upgrade pip
30
+ python -m pip install build
31
+ - name: Build package
32
+ run:
33
+ python -m build
34
+ - uses: pypa/gh-action-pypi-publish@release/v1
35
+ - uses: softprops/action-gh-release@v2
36
+ with:
37
+ files: |
38
+ dist/*.tar.gz
39
+ dist/*.whl
40
+ generate_release_notes: true
41
+ make_latest: true
42
+ if: startsWith(github.ref, 'refs/tags/')
@@ -4,7 +4,7 @@ ci:
4
4
 
5
5
  repos:
6
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
7
- rev: v4.6.0
7
+ rev: v6.0.0
8
8
  hooks:
9
9
  - id: check-ast
10
10
  - id: check-docstring-first
@@ -17,23 +17,22 @@ repos:
17
17
  - id: trailing-whitespace
18
18
  args: [--markdown-linebreak-ext=md]
19
19
  - repo: https://github.com/abravalheri/validate-pyproject
20
- rev: v0.17
20
+ rev: v0.24.1
21
21
  hooks:
22
22
  - id: validate-pyproject
23
- - repo: https://github.com/psf/black-pre-commit-mirror
24
- rev: 24.4.2
25
- hooks:
26
- - id: black
27
- exclude: ^(docs/|examples/)
28
- args: [--check]
29
23
  - repo: https://github.com/astral-sh/ruff-pre-commit
30
- rev: v0.4.4
24
+ rev: v0.12.11
31
25
  hooks:
32
26
  - id: ruff
27
+ types_or: [python, jupyter]
33
28
  exclude: ^(__init__.py)
34
29
  args: [--output-format, grouped, --show-fixes]
30
+ - id: ruff-format
31
+ types_or: [python, jupyter]
32
+ exclude: ^(__init__.py)
33
+ args: [--check, --diff]
35
34
  - repo: https://github.com/codespell-project/codespell
36
- rev: v2.2.6
35
+ rev: v2.4.1
37
36
  hooks:
38
37
  - id: codespell
39
38
  exclude: ^(.github/|docs/)
@@ -1,13 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julearn
3
- Version: 0.3.5.dev28
3
+ Version: 0.3.5.dev56
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>
7
7
  License: AGPL-3.0-only
8
- Project-URL: homepage, https://juaml.github.io/julearn
9
- Project-URL: documentation, https://juaml.github.io/julearn
10
- Project-URL: repository, https://github.com/juaml/julearn
8
+ Project-URL: Changelog, https://juaml.github.io/julearn/main/whats_new.html
9
+ Project-URL: Documentation, https://juaml.github.io/julearn
10
+ Project-URL: Homepage, https://juaml.github.io/julearn
11
+ Project-URL: Source, https://github.com/juaml/julearn
11
12
  Keywords: machine-learning
12
13
  Classifier: Development Status :: 5 - Production/Stable
13
14
  Classifier: Intended Audience :: Science/Research
@@ -17,34 +18,40 @@ Classifier: Natural Language :: English
17
18
  Classifier: Topic :: Software Development
18
19
  Classifier: Topic :: Scientific/Engineering
19
20
  Classifier: Operating System :: OS Independent
20
- Classifier: Programming Language :: Python :: 3.8
21
21
  Classifier: Programming Language :: Python :: 3.9
22
22
  Classifier: Programming Language :: Python :: 3.10
23
23
  Classifier: Programming Language :: Python :: 3.11
24
- Requires-Python: >=3.8
24
+ Classifier: Programming Language :: Python :: 3.12
25
+ Classifier: Programming Language :: Python :: 3.13
26
+ Requires-Python: >=3.9
25
27
  Description-Content-Type: text/markdown
26
28
  License-File: LICENSE.md
27
29
  License-File: AUTHORS.rst
28
- Requires-Dist: numpy<1.27,>=1.24
29
- Requires-Dist: pandas<2.3,>=1.5.0
30
+ Requires-Dist: numpy<2.0.0,>=1.26.0
31
+ Requires-Dist: pandas<2.4.0,>=2.0.0
30
32
  Requires-Dist: statsmodels<0.15,>=0.13
31
- Requires-Dist: scikit-learn<1.6.0,>=1.2.0
33
+ Requires-Dist: scikit-learn<1.8.0,>=1.2.0
34
+ Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
32
35
  Provides-Extra: dev
33
36
  Requires-Dist: tox; extra == "dev"
34
37
  Requires-Dist: pre-commit; extra == "dev"
38
+ Requires-Dist: ruff; extra == "dev"
39
+ Requires-Dist: towncrier; extra == "dev"
35
40
  Provides-Extra: docs
36
- Requires-Dist: seaborn<0.13,>=0.12.2; extra == "docs"
37
- Requires-Dist: sphinx<7.3,>=5.3.0; extra == "docs"
38
- Requires-Dist: sphinx-gallery<0.15,>=0.13.0; extra == "docs"
39
- Requires-Dist: furo<2024.0.0,>=2022.9.29; extra == "docs"
40
- Requires-Dist: sphinx_copybutton<0.6,>=0.5.0; extra == "docs"
41
- Requires-Dist: numpydoc<1.6,>=1.5.0; extra == "docs"
42
- Requires-Dist: towncrier<24; extra == "docs"
41
+ Requires-Dist: seaborn<0.14.0,>=0.13.0; extra == "docs"
42
+ Requires-Dist: sphinx<8.1.0,>=7.3.0; extra == "docs"
43
+ Requires-Dist: sphinx-gallery<=0.19.0,>=0.17.0; extra == "docs"
44
+ Requires-Dist: furo<=2025.7.19,>=2024.4.27; extra == "docs"
45
+ Requires-Dist: numpydoc<=1.9.0,>=1.6.0; extra == "docs"
46
+ Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "docs"
47
+ Requires-Dist: towncrier<24.7.0,>=23.10.0; extra == "docs"
48
+ Requires-Dist: sphinxcontrib-towncrier==0.4.0a0; extra == "docs"
43
49
  Requires-Dist: scikit-optimize<0.11,>=0.10.0; extra == "docs"
44
50
  Requires-Dist: optuna<3.7,>=3.6.0; extra == "docs"
45
51
  Requires-Dist: optuna_integration<4.1,>=3.6.0; extra == "docs"
52
+ Requires-Dist: setuptools-scm>=8; extra == "docs"
46
53
  Provides-Extra: deslib
47
- Requires-Dist: deslib<0.4,>=0.3.5; extra == "deslib"
54
+ Requires-Dist: deslib<0.4.0,>=0.3.5; extra == "deslib"
48
55
  Provides-Extra: viz
49
56
  Requires-Dist: panel>=1.3.0; extra == "viz"
50
57
  Requires-Dist: bokeh>=3.0.0; extra == "viz"
@@ -20,23 +20,14 @@ clean:
20
20
  rm -rf api/generated/
21
21
 
22
22
  # For local build
23
- local: news
24
- make _build_local; STATUS=$$?; make news_cleanup; exit $$STATUS
25
-
26
- news:
27
- @echo "Generating whats_new.rst"
28
- cd ../ && towncrier build --keep
29
-
30
- news_cleanup:
31
- @echo "Cleaning up whats_new.rst"
32
- git restore --staged whats_new.rst
33
- git restore whats_new.rst
23
+ local:
24
+ make _build_local; STATUS=$$?; exit $$STATUS
34
25
 
35
26
  _build_local:
36
27
  sphinx-build "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
37
28
 
38
- html: news
39
- make _html; STATUS=$$?; make news_cleanup; exit $$STATUS
29
+ html:
30
+ make _html; STATUS=$$?; exit $$STATUS
40
31
 
41
32
  _html:
42
33
  $(SPHINXBUILD) "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
@@ -18,4 +18,4 @@ API Reference
18
18
  prepare.rst
19
19
  stats.rst
20
20
  viz.rst
21
- config.rst
21
+ config.rst
@@ -1 +1 @@
1
- Avoid parallel calls in :class:`.FilterColumns` if not specified by the user in the :mod:`.config` module by `Fede Raimondo`_
1
+ Avoid parallel calls in :class:`.FilterColumns` if not specified by the user in the :mod:`.config` module by `Fede Raimondo`_
@@ -1 +1 @@
1
- Include documentation on how to use the `joblib`_ and `joblib-htcondor`_ library to parallelize computation by `Fede Raimondo`_
1
+ Include documentation on how to use the `joblib`_ and `joblib-htcondor`_ library to parallelize computation by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Regular repository maintenance by updating ``.pre-commit-config.yaml``, replacing ``black`` with ``ruff-format``, updating tool configs and GitHub Actions workflows and dependency version constraints, dropping support for Python 3.8 and adding support for Python 3.12 and 3.13 by `Synchon Mandal`_
@@ -1,22 +1,17 @@
1
+ """Provide configuration for Sphinx."""
2
+
1
3
  # Configuration file for the Sphinx documentation builder.
2
4
  #
3
5
  # This file only contains a selection of the most common options. For a full
4
6
  # list see the documentation:
5
7
  # https://www.sphinx-doc.org/en/master/usage/configuration.html
6
- import os
7
- import re
8
- import sys
9
8
 
10
- # -- Path setup --------------------------------------------------------------
11
- # If extensions (or modules to document with autodoc) are in another directory,
12
- # add these directories to sys.path here. If the directory is relative to the
13
- # documentation root, use os.path.abspath to make it absolute, like shown here.
14
- #
15
- # import os
16
- # import sys
17
- # sys.path.insert(0, os.path.abspath('.'))
9
+ import datetime
10
+ from functools import partial
18
11
  from pathlib import Path
19
12
 
13
+ from setuptools_scm import get_version
14
+
20
15
 
21
16
  # Check if sphinx-multiversion is installed
22
17
  use_multiversion = False
@@ -27,40 +22,58 @@ try:
27
22
  except ImportError:
28
23
  pass
29
24
 
30
- curdir = Path(__file__).parent
31
- sys.path.append((curdir / "sphinxext").as_posix())
25
+
26
+ # -- Path setup --------------------------------------------------------------
27
+
28
+ PROJECT_ROOT_DIR = Path(__file__).parents[1].resolve()
29
+ get_scm_version = partial(get_version, root=PROJECT_ROOT_DIR)
32
30
 
33
31
  # -- Project information -----------------------------------------------------
34
32
 
35
- project = "julearn"
36
- copyright = "2023, Authors of julearn"
37
- author = "Fede Raimondo"
33
+ github_url = "https://github.com"
34
+ github_repo_org = "juaml"
35
+ github_repo_name = "julearn"
36
+ github_repo_slug = f"{github_repo_org}/{github_repo_name}"
37
+ github_repo_url = f"{github_url}/{github_repo_slug}"
38
38
 
39
+ project = github_repo_name
40
+ author = f"{project} Contributors"
41
+ copyright = f"{datetime.date.today().year}, {author}"
39
42
 
40
- # -- General configuration ---------------------------------------------------
43
+ # The version along with dev tag
44
+ release = get_scm_version(
45
+ version_scheme="guess-next-dev",
46
+ local_scheme="no-local-version",
47
+ )
41
48
 
49
+ # -- General configuration ---------------------------------------------------
42
50
 
43
51
  # Add any Sphinx extension module names here, as strings. They can be
44
52
  # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
45
53
  # ones.
46
54
  extensions = [
47
- "sphinx.ext.autodoc",
48
- "sphinx.ext.autosummary",
49
- "sphinx.ext.doctest",
50
- "sphinx.ext.intersphinx",
51
- "sphinx.ext.mathjax",
52
- "sphinx_gallery.gen_gallery",
53
- "numpydoc",
54
- "gh_substitutions",
55
- "sphinx_copybutton",
56
- "bokeh.sphinxext.bokeh_plot",
55
+ # Built-in extensions:
56
+ "sphinx.ext.autodoc", # include documentation from docstrings
57
+ "sphinx.ext.autosummary", # generate autodoc summaries
58
+ "sphinx.ext.doctest", # test snippets in the documentation
59
+ "sphinx.ext.extlinks", # markup to shorten external links
60
+ "sphinx.ext.intersphinx", # link to other projects` documentation
61
+ "sphinx.ext.mathjax", # math support for HTML outputs in Sphinx
62
+ # Third-party extensions:
63
+ "sphinx_gallery.gen_gallery", # HTML gallery of examples
64
+ "numpydoc", # support for NumPy style docstrings
65
+ "sphinx_copybutton", # copy button for code blocks
66
+ "sphinxcontrib.towncrier.ext", # towncrier fragment support
67
+ "bokeh.sphinxext.bokeh_plot", # bokeh plot support
57
68
  ]
58
69
 
59
70
  if use_multiversion:
60
71
  extensions.append("sphinx_multiversion")
61
72
 
62
73
  # Add any paths that contain templates here, relative to this directory.
63
- templates_path = ["_templates"]
74
+ templates_path = [
75
+ "_templates",
76
+ ]
64
77
 
65
78
  # List of patterns, relative to source directory, that match files and
66
79
  # directories to ignore when looking for source files.
@@ -95,7 +108,7 @@ nitpick_ignore_regex = [
95
108
  # a list of builtin themes.
96
109
  #
97
110
  html_theme = "furo"
98
-
111
+ html_title = "julearn documentation"
99
112
  html_logo = "images/julearn_logo_it.png"
100
113
 
101
114
  # These paths are either relative to html_static_path
@@ -127,7 +140,6 @@ html_sidebars = {
127
140
  ]
128
141
  }
129
142
 
130
-
131
143
  # -- sphinx.ext.autodoc configuration ----------------------------------------
132
144
 
133
145
  autoclass_content = "both"
@@ -168,6 +180,11 @@ intersphinx_mapping = {
168
180
  ),
169
181
  }
170
182
 
183
+ # -- sphinx.ext.extlinks configuration ---------------------------------------
184
+
185
+ extlinks = {
186
+ "gh": (f"{github_repo_url}/issues/%s", "#%s"),
187
+ }
171
188
 
172
189
  # -- numpydoc configuration --------------------------------------------------
173
190
 
@@ -208,7 +225,6 @@ numpydoc_xref_ignore = {
208
225
  # "EX01",
209
226
  # }
210
227
 
211
-
212
228
  # -- Sphinx-Gallery configuration --------------------------------------------
213
229
 
214
230
  ex_dirs = [
@@ -243,3 +259,9 @@ smv_rebuild_tags = False
243
259
  smv_tag_whitelist = r"^v\d+\.\d+.\d+$"
244
260
  smv_branch_whitelist = r"main"
245
261
  smv_released_pattern = r"^tags/v.*$"
262
+
263
+ # -- sphinxcontrib-towncrier configuration -----------------------------------
264
+
265
+ towncrier_draft_autoversion_mode = "draft"
266
+ towncrier_draft_include_empty = True
267
+ towncrier_draft_working_directory = PROJECT_ROOT_DIR
@@ -53,4 +53,4 @@ Here you can find the comprehensive list of flags that can be set:
53
53
  | (instead of using ``n_jobs=1``)
54
54
  | If set to ``True``, the parameter will be set back to None.
55
55
  - | Column transformers will be applied in parallel, using more resources.
56
- | than expected.
56
+ | than expected.
@@ -44,4 +44,4 @@
44
44
  .. _`Optuna`: https://optuna.org
45
45
  .. _`optuna_integration`: https://github.com/optuna/optuna-integration
46
46
  .. _`Joblib`: https://joblib.readthedocs.io/en/stable/
47
- .. _`joblib-htcondor`: https://github.com/juaml/joblib-htcondor
47
+ .. _`joblib-htcondor`: https://github.com/juaml/joblib-htcondor
@@ -6,6 +6,8 @@
6
6
  What's new
7
7
  ==========
8
8
 
9
+ .. towncrier-draft-entries:: |release|
10
+
9
11
  .. towncrier release notes start
10
12
 
11
13
  Julearn 0.3.4 (2024-10-17)
@@ -46,6 +46,7 @@ relationship with the target that we can use as a confound.
46
46
  Let's import some of the functionality we will need:
47
47
 
48
48
  """
49
+
49
50
  from julearn import run_cross_validation
50
51
  from julearn.pipeline import PipelineCreator, TargetPipelineCreator
51
52
  from sklearn.datasets import make_regression
@@ -89,6 +89,7 @@ samples per bin. Let's see an example using a uniform distribution, creating
89
89
  200 samples and 10 bins.
90
90
 
91
91
  """
92
+
92
93
  import numpy as np
93
94
  import matplotlib.pyplot as plt
94
95
  import seaborn as sns
@@ -25,6 +25,7 @@ measurements of flowers.
25
25
  We start by loading the dataset and setting the features and target
26
26
  variables.
27
27
  """
28
+
28
29
  from seaborn import load_dataset
29
30
  from pprint import pprint # To print in a pretty way
30
31
 
@@ -400,7 +401,7 @@ creator.add(
400
401
  "svm",
401
402
  C=(0.01, 10, "log-uniform"),
402
403
  gamma=(1e-3, 1e-1, "log-uniform"),
403
- class_weight=("balanced", None, "categorical")
404
+ class_weight=("balanced", None, "categorical"),
404
405
  )
405
406
  print(creator)
406
407
 
@@ -476,6 +477,7 @@ print(creator)
476
477
  # For example, we can define a log-uniform distribution with base 2 for the
477
478
  # ``C`` hyperparameter of the :class:`~sklearn.svm.SVC` model:
478
479
  from skopt.space import Real
480
+
479
481
  creator = PipelineCreator(problem_type="classification")
480
482
  creator.add("zscore", with_mean=(True, False, "categorical"))
481
483
  creator.add(
@@ -497,6 +499,7 @@ print(creator)
497
499
  # transformer, while keeping a log-uniform distribution for the ``C`` and
498
500
  # ``gamma`` hyperparameters of the :class:`~sklearn.svm.SVC` model.
499
501
  from optuna.distributions import FloatDistribution
502
+
500
503
  creator = PipelineCreator(problem_type="classification")
501
504
  creator.add("zscore")
502
505
  creator.add(
@@ -19,6 +19,7 @@ Cross-validation scores
19
19
  We consider the ``iris`` data example and one of the pipelines from the previous
20
20
  section (feature z-scoring and a ``svm``).
21
21
  """
22
+
22
23
  from julearn import run_cross_validation
23
24
  from julearn.pipeline import PipelineCreator
24
25