julearn 0.3.2.dev57__tar.gz → 0.3.2.dev61__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 (236) hide show
  1. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/PKG-INFO +1 -1
  2. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/_version.py +2 -2
  3. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/api.py +19 -6
  4. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/base/estimators.py +26 -8
  5. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/base/tests/test_base_estimators.py +1 -1
  6. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/_cv.py +16 -10
  7. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/_preprocess.py +1 -1
  8. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/tests/test_cv.py +4 -2
  9. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/tests/test_inspector.py +12 -9
  10. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/tests/test_pipeline.py +27 -14
  11. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/tests/test_preprocess.py +8 -1
  12. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/available_searchers.py +3 -3
  13. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/stratified_bootstrap.py +7 -5
  14. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/dynamic.py +1 -1
  15. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/tests/test_models.py +6 -6
  16. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/pipeline_creator.py +26 -17
  17. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/target_pipeline.py +1 -1
  18. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/tests/test_merger.py +16 -13
  19. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/tests/test_pipeline_creator.py +1 -1
  20. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/prepare.py +2 -4
  21. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/scoring/available_scorers.py +12 -6
  22. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/stats/corrected_ttest.py +8 -4
  23. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/stats/tests/test_corrected_ttest.py +22 -5
  24. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/tests/test_api.py +103 -45
  25. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/confound_remover.py +2 -2
  26. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/tests/test_drop_columns.py +1 -1
  27. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/tests/test_filter_columns.py +1 -1
  28. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/tests/test_set_column_types.py +10 -6
  29. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/ju_column_transformer.py +1 -1
  30. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/ju_transformed_target_model.py +1 -1
  31. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/target_confound_remover.py +1 -1
  32. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +3 -1
  33. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/tests/test_cbpm.py +3 -3
  34. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/tests/test_confounds.py +17 -6
  35. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/tests/test_jucolumntransformers.py +8 -6
  36. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/checks.py +3 -1
  37. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/logging.py +1 -1
  38. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/testing.py +21 -11
  39. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/typing.py +39 -19
  40. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/viz/_scores.py +5 -4
  41. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn.egg-info/PKG-INFO +1 -1
  42. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/pyproject.toml +15 -1
  43. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  44. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  45. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
  46. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  47. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/check-stale.yml +0 -0
  48. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/ci-docs.yml +0 -0
  49. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/ci.yml +0 -0
  50. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/docs-preview.yml +0 -0
  51. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/docs.yml +0 -0
  52. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/lint.yml +0 -0
  53. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.github/workflows/pypi.yml +0 -0
  54. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.gitignore +0 -0
  55. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/.pre-commit-config.yaml +0 -0
  56. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/AUTHORS.rst +0 -0
  57. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/LICENSE.md +0 -0
  58. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/README.md +0 -0
  59. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/codecov.yml +0 -0
  60. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/Makefile +0 -0
  61. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_static/css/custom.css +0 -0
  62. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_static/js/custom.js +0 -0
  63. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_templates/class.rst +0 -0
  64. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_templates/function.rst +0 -0
  65. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_templates/function_warning.rst +0 -0
  66. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/_templates/versions.html +0 -0
  67. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/base.rst +0 -0
  68. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/index.rst +0 -0
  69. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/inspect.rst +0 -0
  70. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/main.rst +0 -0
  71. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/model_selection.rst +0 -0
  72. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/models.rst +0 -0
  73. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/pipeline.rst +0 -0
  74. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/prepare.rst +0 -0
  75. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/scoring.rst +0 -0
  76. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/stats.rst +0 -0
  77. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/transformers.rst +0 -0
  78. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/utils.rst +0 -0
  79. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/api/viz.rst +0 -0
  80. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/available_pipeline_steps.rst +0 -0
  81. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/contributors.inc +0 -0
  82. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/.gitignore +0 -0
  83. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/224.misc +0 -0
  84. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/244.misc +0 -0
  85. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/249.bugfix +0 -0
  86. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/251.misc +0 -0
  87. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/255.bugfix +0 -0
  88. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/260.enh +0 -0
  89. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/changes/newsfragments/260.misc +0 -0
  90. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/conf.py +0 -0
  91. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/configuration.rst +0 -0
  92. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/contributing.rst +0 -0
  93. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/examples.rst +0 -0
  94. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/faq.rst +0 -0
  95. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/getting_started.rst +0 -0
  96. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/corrected_ttest.png +0 -0
  97. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/final_estimator.png +0 -0
  98. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/iris_X.png +0 -0
  99. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/iris_df.png +0 -0
  100. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/iris_y.png +0 -0
  101. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo.png +0 -0
  102. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_calm.png +0 -0
  103. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_confbias.png +0 -0
  104. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_cv.png +0 -0
  105. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_generalization.png +0 -0
  106. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_it.png +0 -0
  107. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_ml.png +0 -0
  108. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/julearn_logo_mlit.png +0 -0
  109. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/multiple_scorers_run_cv.png +0 -0
  110. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/plot_scores.png +0 -0
  111. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/scores_run_cv.png +0 -0
  112. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/scores_run_cv_splitter.png +0 -0
  113. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/images/scores_run_cv_train.png +0 -0
  114. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/index.rst +0 -0
  115. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/links.inc +0 -0
  116. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/maintaining.rst +0 -0
  117. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/redirect.html +0 -0
  118. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/CBPM.rst +0 -0
  119. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/confound_removal.rst +0 -0
  120. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
  121. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
  122. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/index.rst +0 -0
  123. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/model_inspect.rst +0 -0
  124. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/stacked_models.rst +0 -0
  125. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/selected_deeper_topics/target_transformers.rst +0 -0
  126. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/sphinxext/gh_substitutions.py +0 -0
  127. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/cross_validation.rst +0 -0
  128. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/data.rst +0 -0
  129. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/index.rst +0 -0
  130. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/model_comparison.rst +0 -0
  131. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/model_evaluation.rst +0 -0
  132. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/what_really_need_know/pipeline.rst +0 -0
  133. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/docs/whats_new.rst +0 -0
  134. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/README.rst +0 -0
  135. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
  136. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/plot_example_regression.py +0 -0
  137. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
  138. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/run_combine_pandas.py +0 -0
  139. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/run_grouped_cv.py +0 -0
  140. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/00_starting/run_simple_binary_classification.py +0 -0
  141. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/01_model_comparison/README.rst +0 -0
  142. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
  143. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/02_inspection/README.rst +0 -0
  144. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
  145. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
  146. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/02_inspection/plot_preprocess.py +0 -0
  147. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
  148. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/README.rst +0 -0
  149. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_apply_to_target.py +0 -0
  150. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
  151. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
  152. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
  153. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
  154. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/03_complex_models/run_stacked_models.py +0 -0
  155. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/04_confounds/README.rst +0 -0
  156. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
  157. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/04_confounds/run_return_confounds.py +0 -0
  158. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/05_customization/README.rst +0 -0
  159. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/05_customization/run_custom_scorers_regression.py +0 -0
  160. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/README.rst +0 -0
  161. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_cbpm_docs.py +0 -0
  162. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_confound_removal_docs.py +0 -0
  163. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_cv_splitters_docs.py +0 -0
  164. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_data_docs.py +0 -0
  165. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_hyperparameters_docs.py +0 -0
  166. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_model_comparison_docs.py +0 -0
  167. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_model_evaluation_docs.py +0 -0
  168. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_model_inspection_docs.py +0 -0
  169. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_pipeline_docs.py +0 -0
  170. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_stacked_models_docs.py +0 -0
  171. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/99_docs/run_target_transformer_docs.py +0 -0
  172. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/README.rst +0 -0
  173. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
  174. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
  175. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/ignore_words.txt +0 -0
  176. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/__init__.py +0 -0
  177. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/base/__init__.py +0 -0
  178. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/base/column_types.py +0 -0
  179. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/base/tests/test_column_types.py +0 -0
  180. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/config.py +0 -0
  181. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/conftest.py +0 -0
  182. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/__init__.py +0 -0
  183. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/_pipeline.py +0 -0
  184. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/inspect/inspector.py +0 -0
  185. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/__init__.py +0 -0
  186. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/_skopt_searcher.py +0 -0
  187. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
  188. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/tests/test_available_searchers.py +0 -0
  189. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
  190. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
  191. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/__init__.py +0 -0
  192. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/available_models.py +0 -0
  193. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/tests/test_available_models.py +0 -0
  194. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/models/tests/test_dynamic.py +0 -0
  195. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/__init__.py +0 -0
  196. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/merger.py +0 -0
  197. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/target_pipeline_creator.py +0 -0
  198. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
  199. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
  200. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/scoring/__init__.py +0 -0
  201. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/scoring/metrics.py +0 -0
  202. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/scoring/tests/test_available_scorers.py +0 -0
  203. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/scoring/tests/test_metrics.py +0 -0
  204. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/stats/__init__.py +0 -0
  205. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/tests/test_config.py +0 -0
  206. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/tests/test_prepare.py +0 -0
  207. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/__init__.py +0 -0
  208. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/available_transformers.py +0 -0
  209. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/cbpm.py +0 -0
  210. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/__init__.py +0 -0
  211. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/change_column_types.py +0 -0
  212. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/drop_columns.py +0 -0
  213. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/filter_columns.py +0 -0
  214. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/set_column_types.py +0 -0
  215. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
  216. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/__init__.py +0 -0
  217. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/available_target_transformers.py +0 -0
  218. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/ju_target_transformer.py +0 -0
  219. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
  220. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
  221. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
  222. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/transformers/tests/test_available_transformers.py +0 -0
  223. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/__init__.py +0 -0
  224. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/_cv.py +0 -0
  225. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/tests/test_logging.py +0 -0
  226. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/tests/test_version.py +0 -0
  227. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/utils/versions.py +0 -0
  228. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/viz/__init__.py +0 -0
  229. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn/viz/res/julearn_logo_generalization.png +0 -0
  230. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn.egg-info/SOURCES.txt +0 -0
  231. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn.egg-info/dependency_links.txt +0 -0
  232. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn.egg-info/requires.txt +0 -0
  233. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/julearn.egg-info/top_level.txt +0 -0
  234. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/setup.cfg +0 -0
  235. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/setup.py +0 -0
  236. {julearn-0.3.2.dev57 → julearn-0.3.2.dev61}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: julearn
3
- Version: 0.3.2.dev57
3
+ Version: 0.3.2.dev61
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>
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.3.2.dev57'
16
- __version_tuple__ = version_tuple = (0, 3, 2, 'dev57')
15
+ __version__ = version = '0.3.2.dev61'
16
+ __version_tuple__ = version_tuple = (0, 3, 2, 'dev61')
@@ -4,13 +4,13 @@
4
4
  # Sami Hamdan <s.hamdan@fz-juelich.de>
5
5
  # License: AGPL
6
6
 
7
- from typing import Dict, Iterable, List, Optional, Union
7
+ from typing import Dict, List, Optional, Union
8
8
 
9
9
  import numpy as np
10
10
  import pandas as pd
11
+ import sklearn
11
12
  from sklearn.base import BaseEstimator
12
13
  from sklearn.model_selection import (
13
- BaseCrossValidator,
14
14
  check_cv,
15
15
  cross_validate,
16
16
  )
@@ -23,6 +23,7 @@ from .pipeline.merger import merge_pipelines
23
23
  from .prepare import check_consistency, prepare_input_data
24
24
  from .scoring import check_scoring
25
25
  from .utils import _compute_cvmdsum, logger, raise_error
26
+ from .utils.typing import CVLike
26
27
 
27
28
 
28
29
  def run_cross_validation( # noqa: C901
@@ -36,7 +37,7 @@ def run_cross_validation( # noqa: C901
36
37
  return_estimator: Optional[str] = None,
37
38
  return_inspector: bool = False,
38
39
  return_train_score: bool = False,
39
- cv: Optional[Union[int, BaseCrossValidator, Iterable]] = None,
40
+ cv: Optional[CVLike] = None,
40
41
  groups: Optional[str] = None,
41
42
  scoring: Union[str, List[str], None] = None,
42
43
  pos_labels: Union[str, List[str], None] = None,
@@ -357,20 +358,32 @@ def run_cross_validation( # noqa: C901
357
358
 
358
359
  # Prepare cross validation
359
360
  cv_outer = check_cv(
360
- cv, classifier=problem_type == "classification" # type: ignore
361
+ cv, # type: ignore
362
+ classifier=problem_type == "classification",
361
363
  )
362
364
  logger.info(f"Using outer CV scheme {cv_outer}")
363
365
 
364
366
  check_consistency(df_y, cv, groups, problem_type) # type: ignore
365
367
 
366
368
  cv_return_estimator = return_estimator in ["cv", "all"]
367
- scoring = check_scoring(pipeline, scoring, wrap_score=wrap_score)
369
+ scoring = check_scoring(
370
+ pipeline, # type: ignore
371
+ scoring,
372
+ wrap_score=wrap_score,
373
+ )
368
374
 
369
375
  cv_mdsum = _compute_cvmdsum(cv_outer)
370
376
  fit_params = {}
371
377
  if df_groups is not None:
372
378
  if isinstance(pipeline, BaseSearchCV):
373
379
  fit_params["groups"] = df_groups.values
380
+
381
+ _sklearn_deprec_fit_params = {}
382
+ if sklearn.__version__ >= "1.4.0":
383
+ _sklearn_deprec_fit_params["params"] = fit_params
384
+ else:
385
+ _sklearn_deprec_fit_params["fit_params"] = fit_params
386
+
374
387
  scores = cross_validate(
375
388
  pipeline,
376
389
  df_X,
@@ -382,7 +395,7 @@ def run_cross_validation( # noqa: C901
382
395
  n_jobs=n_jobs,
383
396
  return_train_score=return_train_score,
384
397
  verbose=verbose, # type: ignore
385
- fit_params=fit_params,
398
+ **_sklearn_deprec_fit_params,
386
399
  )
387
400
 
388
401
  n_repeats = getattr(cv_outer, "n_repeats", 1)
@@ -13,11 +13,11 @@ from sklearn.utils.metaestimators import available_if
13
13
 
14
14
 
15
15
  try: # sklearn < 1.4.0
16
- from sklearn.utils.validation import _check_fit_params
16
+ from sklearn.utils.validation import _check_fit_params # type: ignore
17
17
 
18
18
  fit_params_checker = _check_fit_params
19
19
  except ImportError: # sklearn >= 1.4.0
20
- from sklearn.utils.validation import _check_method_params
20
+ from sklearn.utils.validation import _check_method_params # type: ignore
21
21
 
22
22
  fit_params_checker = _check_method_params
23
23
 
@@ -180,7 +180,12 @@ class JuTransformer(JuBaseEstimator, TransformerMixin):
180
180
  self.row_select_col_type = row_select_col_type
181
181
  self.row_select_vals = row_select_vals
182
182
 
183
- def fit(self, X, y=None, **fit_params): # noqa: N803
183
+ def fit(
184
+ self,
185
+ X: pd.DataFrame, # noqa: N803
186
+ y: Optional[pd.Series] = None,
187
+ **fit_params,
188
+ ):
184
189
  """Fit the model.
185
190
 
186
191
  This method will fit the model using only the columns selected by
@@ -217,8 +222,21 @@ class JuTransformer(JuBaseEstimator, TransformerMixin):
217
222
  self.row_select_vals = [self.row_select_vals]
218
223
  return self._fit(**self._select_rows(X, y, **fit_params))
219
224
 
225
+ def _fit(
226
+ self,
227
+ X: pd.DataFrame, # noqa: N803,
228
+ y: Optional[pd.Series],
229
+ **kwargs,
230
+ ) -> None:
231
+ raise_error(
232
+ "This method should be implemented in the concrete class",
233
+ klass=NotImplementedError,
234
+ )
235
+
220
236
  def _add_backed_filtered(
221
- self, X: pd.DataFrame, X_trans: pd.DataFrame # noqa: N803
237
+ self,
238
+ X: pd.DataFrame, # noqa: N803
239
+ X_trans: pd.DataFrame, # noqa: N803
222
240
  ) -> pd.DataFrame:
223
241
  """Add the left-out columns back to the transformed data.
224
242
 
@@ -301,7 +319,7 @@ class WrapModel(JuBaseEstimator):
301
319
 
302
320
  def fit(
303
321
  self,
304
- X: pd.DataFrame, # noqa: N803
322
+ X: DataLike, # noqa: N803
305
323
  y: Optional[DataLike] = None,
306
324
  **fit_params: Any,
307
325
  ) -> "WrapModel":
@@ -312,7 +330,7 @@ class WrapModel(JuBaseEstimator):
312
330
 
313
331
  Parameters
314
332
  ----------
315
- X : pd.DataFrame
333
+ X : DataLike
316
334
  The data to fit the model on.
317
335
  y : DataLike, optional
318
336
  The target data (default is None).
@@ -329,9 +347,9 @@ class WrapModel(JuBaseEstimator):
329
347
  if self.needed_types is not None:
330
348
  self.needed_types = ensure_column_types(self.needed_types)
331
349
 
332
- Xt = self.filter_columns(X)
350
+ Xt = self.filter_columns(X) # type: ignore
333
351
  self.model_ = self.model
334
- self.model_.fit(Xt, y, **fit_params)
352
+ self.model_.fit(Xt, y, **fit_params) # type: ignore
335
353
  return self
336
354
 
337
355
  def predict(self, X: pd.DataFrame) -> DataLike: # noqa: N803
@@ -110,7 +110,7 @@ def test_WrapModel(
110
110
 
111
111
  np.random.seed(42)
112
112
  lr = model()
113
- lr.fit(X_iris_selected, y_iris)
113
+ lr.fit(X_iris_selected, y_iris) # type: ignore
114
114
  pred_sk = lr.predict(X_iris_selected)
115
115
 
116
116
  np.random.seed(42)
@@ -4,13 +4,14 @@
4
4
  # Sami Hamdan <s.hamdan@fz-juelich.de>
5
5
  # License: AGPL
6
6
 
7
- from typing import List, Optional, Union
7
+ from typing import Optional, Union
8
8
 
9
9
  import pandas as pd
10
10
  from sklearn.model_selection import BaseCrossValidator, check_cv
11
11
  from sklearn.utils.metaestimators import available_if
12
12
 
13
13
  from ..utils import _compute_cvmdsum, is_nonoverlapping_cv, raise_error
14
+ from ..utils.typing import DataLike
14
15
  from ._pipeline import PipelineInspector
15
16
 
16
17
 
@@ -60,14 +61,13 @@ class FoldsInspector:
60
61
  def __init__(
61
62
  self,
62
63
  scores: pd.DataFrame,
63
- cv: BaseCrossValidator,
64
- X: Union[str, List[str]], # noqa: N803
65
- y: str,
64
+ cv: Union[BaseCrossValidator, int],
65
+ X: DataLike, # noqa: N803
66
+ y: pd.Series,
66
67
  func: str = "predict",
67
- groups: Optional[str] = None,
68
+ groups: Optional[pd.Series] = None,
68
69
  ):
69
70
  self._scores = scores
70
- self._cv = cv
71
71
  self._X = X
72
72
  self._y = y
73
73
  self._func = func
@@ -92,7 +92,7 @@ class FoldsInspector:
92
92
  )
93
93
 
94
94
  cv = check_cv(cv)
95
-
95
+ self._cv = cv
96
96
  t_cv_mdsum = _compute_cvmdsum(cv)
97
97
  if t_cv_mdsum != cv_mdsums[0]:
98
98
  raise_error(
@@ -120,10 +120,16 @@ class FoldsInspector:
120
120
 
121
121
  predictions = []
122
122
  for i_fold, (_, test) in enumerate(
123
- self._cv.split(self._X, self._y, groups=self._groups)
123
+ self._cv.split(
124
+ self._X, # type: ignore
125
+ self._y,
126
+ groups=self._groups,
127
+ )
124
128
  ):
125
129
  t_model = self._scores["estimator"][i_fold]
126
- t_values = getattr(t_model, func)(self._X.iloc[test])
130
+ t_values = getattr(t_model, func)(
131
+ self._X.iloc[test] # type: ignore
132
+ )
127
133
  if t_values.ndim == 1:
128
134
  t_values = t_values[:, None]
129
135
  column_names = [f"p{i}" for i in range(t_values.shape[1])]
@@ -152,7 +158,7 @@ class FoldsInspector:
152
158
  t_df.columns = [f"fold{i_fold}_{x}" for x in t_df.columns]
153
159
  predictions = pd.concat(predictions, axis=1)
154
160
  predictions = predictions.sort_index()
155
- predictions["target"] = self._y.values
161
+ predictions["target"] = self._y.values # type: ignore
156
162
  return predictions
157
163
 
158
164
  def __getitem__(self, key):
@@ -53,7 +53,7 @@ def preprocess(
53
53
  else:
54
54
  raise_error(f"No step named {until} found.")
55
55
  df_out = pipeline[:i].transform(_X)
56
-
56
+ df_out = df_out.copy()
57
57
  if not isinstance(df_out, pd.DataFrame) and with_column_types is False:
58
58
  raise_error(
59
59
  "The output of the pipeline is not a DataFrame. Cannot remove "
@@ -3,7 +3,6 @@
3
3
  # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
4
  # Sami Hamdan <s.hamdan@fz-juelich.de>
5
5
  # License: AGPL
6
-
7
6
  import numpy as np
8
7
  import pandas as pd
9
8
  import pytest
@@ -70,7 +69,10 @@ def scores(df_typed_iris, n_iters=5, mock_model=None):
70
69
  if mock_model is None:
71
70
  mock_model = MockModelReturnsIndex
72
71
 
73
- estimators = [WrapModel(mock_model()).fit(X, y) for _ in range(n_iters)]
72
+ estimators = [
73
+ WrapModel(mock_model()).fit(X, y) # type: ignore
74
+ for _ in range(n_iters)
75
+ ]
74
76
 
75
77
  return pd.DataFrame(
76
78
  {
@@ -18,28 +18,28 @@ if TYPE_CHECKING:
18
18
 
19
19
  def test_no_cv() -> None:
20
20
  """Test inspector with no cross-validation."""
21
- inspector = Inspector({})
21
+ inspector = Inspector({}) # type: ignore
22
22
  with pytest.raises(ValueError, match="No cv"):
23
23
  _ = inspector.folds
24
24
 
25
25
 
26
26
  def test_no_X() -> None:
27
27
  """Test inspector with no features."""
28
- inspector = Inspector({}, cv=5)
28
+ inspector = Inspector({}, cv=5) # type: ignore
29
29
  with pytest.raises(ValueError, match="No X"):
30
30
  _ = inspector.folds
31
31
 
32
32
 
33
33
  def test_no_y() -> None:
34
34
  """Test inspector with no targets."""
35
- inspector = Inspector({}, cv=5, X=[1, 2, 3])
35
+ inspector = Inspector({}, cv=5, X=[1, 2, 3]) # type: ignore
36
36
  with pytest.raises(ValueError, match="No y"):
37
37
  _ = inspector.folds
38
38
 
39
39
 
40
40
  def test_no_model() -> None:
41
41
  """Test inspector with no model."""
42
- inspector = Inspector({})
42
+ inspector = Inspector({}) # type: ignore
43
43
  with pytest.raises(ValueError, match="No model"):
44
44
  _ = inspector.model
45
45
 
@@ -63,8 +63,11 @@ def test_normal_usage(df_iris: "pd.DataFrame") -> None:
63
63
  return_inspector=True,
64
64
  problem_type="classification",
65
65
  )
66
- assert pipe == inspect.model._model
67
- for (_, score), inspect_fold in zip(scores.iterrows(), inspect.folds):
66
+ assert pipe == inspect.model._model # type: ignore
67
+ for (_, score), inspect_fold in zip(
68
+ scores.iterrows(), # type: ignore
69
+ inspect.folds, # type: ignore
70
+ ):
68
71
  assert score["estimator"] == inspect_fold.model._model
69
72
 
70
73
 
@@ -88,6 +91,6 @@ def test_normal_usage_with_search(df_iris: "pd.DataFrame") -> None:
88
91
  return_estimator="all",
89
92
  return_inspector=True,
90
93
  )
91
- assert pipe == inspect.model._model
92
- inspect.model.get_fitted_params()
93
- inspect.model.get_params()
94
+ assert pipe == inspect.model._model # type: ignore
95
+ inspect.model.get_fitted_params() # type: ignore
96
+ inspect.model.get_params() # type: ignore
@@ -4,8 +4,9 @@
4
4
  # Sami Hamdan <s.hamdan@fz-juelich.de>
5
5
  # License: AGPL
6
6
 
7
- from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type
7
+ from typing import Any, Dict, List, Optional, Type
8
8
 
9
+ import pandas as pd
9
10
  import pytest
10
11
  from sklearn.base import BaseEstimator
11
12
  from sklearn.decomposition import PCA
@@ -17,10 +18,6 @@ from julearn.pipeline import PipelineCreator
17
18
  from julearn.transformers import JuColumnTransformer
18
19
 
19
20
 
20
- if TYPE_CHECKING:
21
- import pandas as pd
22
-
23
-
24
21
  class MockTestEst(BaseEstimator):
25
22
  """Class for estimator tests.
26
23
 
@@ -39,8 +36,8 @@ class MockTestEst(BaseEstimator):
39
36
 
40
37
  def fit(
41
38
  self,
42
- X: List[str], # noqa: N803
43
- y: Optional[str] = None,
39
+ X: pd.DataFrame, # noqa: N803
40
+ y: Optional[pd.Series] = None,
44
41
  **fit_params: Any,
45
42
  ) -> "MockTestEst":
46
43
  """Fit the estimator.
@@ -64,7 +61,7 @@ class MockTestEst(BaseEstimator):
64
61
  self.param_1_ = 1
65
62
  return self
66
63
 
67
- def transform(self, X: List[str]) -> List[str]: # noqa: N803
64
+ def transform(self, X: pd.DataFrame) -> pd.DataFrame: # noqa: N803
68
65
  """Transform the estimator.
69
66
 
70
67
  Parameters
@@ -90,7 +87,7 @@ class MockTestEst(BaseEstimator):
90
87
  ["zscore", "pca", "svm"],
91
88
  ],
92
89
  )
93
- def test_get_stepnames(steps: List[str], df_iris: "pd.DataFrame") -> None:
90
+ def test_get_stepnames(steps: List[str], df_iris: pd.DataFrame) -> None:
94
91
  """Test step names fetch.
95
92
 
96
93
  Parameters
@@ -157,7 +154,11 @@ def test_steps(
157
154
  [
158
155
  [MockTestEst(), {"param_0_": 0, "param_1_": 1}],
159
156
  [
160
- JuColumnTransformer("test", MockTestEst(), "continuous"),
157
+ JuColumnTransformer(
158
+ "test",
159
+ MockTestEst(), # type: ignore
160
+ "continuous",
161
+ ),
161
162
  {"param_0_": 0, "param_1_": 1},
162
163
  ],
163
164
  ],
@@ -201,8 +202,14 @@ def test_inspect_pipeline(df_iris: "pd.DataFrame") -> None:
201
202
 
202
203
  pipe = (
203
204
  PipelineCreator(problem_type="classification")
204
- .add(JuColumnTransformer("test", MockTestEst(), "continuous"))
205
- .add(SVC())
205
+ .add(
206
+ JuColumnTransformer(
207
+ "test",
208
+ MockTestEst(), # type: ignore
209
+ "continuous",
210
+ )
211
+ )
212
+ .add(SVC()) # type: ignore TODO: fix typing hints
206
213
  .to_pipeline()
207
214
  )
208
215
  pipe.fit(df_iris.iloc[:, :-1], df_iris.species)
@@ -230,8 +237,14 @@ def test_get_estimator(df_iris: "pd.DataFrame") -> None:
230
237
  """
231
238
  pipe = (
232
239
  PipelineCreator(problem_type="classification")
233
- .add(JuColumnTransformer("test", MockTestEst(), "continuous"))
234
- .add(SVC())
240
+ .add(
241
+ JuColumnTransformer(
242
+ "test",
243
+ MockTestEst(), # type: ignore
244
+ "continuous",
245
+ )
246
+ )
247
+ .add(SVC()) # type: ignore TODO: fix typing hints
235
248
  .to_pipeline()
236
249
  )
237
250
  pipe.fit(df_iris.iloc[:, :-1], df_iris.species)
@@ -157,13 +157,20 @@ def test_preprocess_with_column_types(df_iris: pd.DataFrame) -> None:
157
157
 
158
158
  X = list(df_iris.iloc[:, :-1].columns)
159
159
  y = "species"
160
+ X_types = {"continuous": X}
160
161
  _, model = run_cross_validation(
161
162
  X=X,
162
163
  y=y,
163
164
  data=df_iris,
165
+ X_types=X_types,
164
166
  problem_type="classification",
165
167
  model="rf",
166
168
  return_estimator="final",
167
169
  )
168
- X_t = preprocess(model, X=X, data=df_iris, with_column_types=False)
170
+ X_t = preprocess(
171
+ model, # type: ignore
172
+ X=X,
173
+ data=df_iris,
174
+ with_column_types=False,
175
+ )
169
176
  assert list(X_t.columns) == X
@@ -46,7 +46,7 @@ def list_searchers() -> List[str]:
46
46
  return list(_available_searchers)
47
47
 
48
48
 
49
- def get_searcher(name: str) -> object:
49
+ def get_searcher(name: str) -> Type:
50
50
  """Get a searcher by name.
51
51
 
52
52
  Parameters
@@ -56,8 +56,8 @@ def get_searcher(name: str) -> object:
56
56
 
57
57
  Returns
58
58
  -------
59
- obj
60
- scikit-learn compatible searcher.
59
+ out
60
+ scikit-learn compatible searcher class.
61
61
 
62
62
  Raises
63
63
  ------
@@ -9,7 +9,9 @@ from typing import Optional, Union
9
9
  import numpy as np
10
10
  from numpy.random import RandomState
11
11
  from sklearn.model_selection import BaseShuffleSplit
12
- from sklearn.model_selection._split import _validate_shuffle_split
12
+ from sklearn.model_selection._split import (
13
+ _validate_shuffle_split, # type: ignore
14
+ )
13
15
 
14
16
 
15
17
  class StratifiedBootstrap(BaseShuffleSplit):
@@ -87,13 +89,13 @@ class StratifiedBootstrap(BaseShuffleSplit):
87
89
  n_samples = [
88
90
  _validate_shuffle_split(
89
91
  len(t_inds),
90
- self.test_size,
91
- self.train_size,
92
- default_test_size=self._default_test_size,
92
+ self.test_size, # type: ignore
93
+ self.train_size, # type: ignore
94
+ default_test_size=self._default_test_size, # type: ignore
93
95
  )
94
96
  for t_inds in y_inds
95
97
  ]
96
- for _ in range(self.n_splits):
98
+ for _ in range(self.n_splits): # type: ignore
97
99
  train = []
98
100
  test = []
99
101
  for t_inds, (n_train, _) in zip(y_inds, n_samples):
@@ -132,7 +132,7 @@ class DynamicSelection(BaseEstimator):
132
132
  y_train = y[train]
133
133
  y_dsel = y[test]
134
134
 
135
- self.ensemble.fit(X_train, y_train)
135
+ self.ensemble.fit(X_train, y_train) # type: ignore
136
136
  self._dsmodel = self._get_algorithm()
137
137
  self._dsmodel.fit(X_dsel, y_dsel)
138
138
 
@@ -113,7 +113,7 @@ def test_naive_bayes_estimators(
113
113
  "preprocess": None,
114
114
  "problem_type": "classification",
115
115
  }
116
- clf = make_pipeline(clone(t_model))
116
+ clf = make_pipeline(clone(t_model)) # type: ignore
117
117
  do_scoring_test(
118
118
  X,
119
119
  y,
@@ -129,7 +129,7 @@ def test_naive_bayes_estimators(
129
129
  "preprocess": None,
130
130
  "problem_type": "classification",
131
131
  }
132
- clf = make_pipeline(clone(t_model))
132
+ clf = make_pipeline(clone(t_model)) # type: ignore
133
133
  do_scoring_test(
134
134
  X,
135
135
  y,
@@ -150,7 +150,7 @@ def test_naive_bayes_estimators(
150
150
  "preprocess": None,
151
151
  "problem_type": "classification",
152
152
  }
153
- clf = make_pipeline(clone(t_model))
153
+ clf = make_pipeline(clone(t_model)) # type: ignore
154
154
  do_scoring_test(
155
155
  X,
156
156
  y,
@@ -236,7 +236,7 @@ def test_classificationestimators(
236
236
  "problem_type": "classification",
237
237
  "preprocess": "zscore",
238
238
  }
239
- clf = make_pipeline(StandardScaler(), clone(t_model))
239
+ clf = make_pipeline(StandardScaler(), clone(t_model)) # type: ignore
240
240
  do_scoring_test(
241
241
  X,
242
242
  y,
@@ -258,7 +258,7 @@ def test_classificationestimators(
258
258
  "problem_type": "classification",
259
259
  "preprocess": "zscore",
260
260
  }
261
- clf = make_pipeline(StandardScaler(), clone(t_model))
261
+ clf = make_pipeline(StandardScaler(), clone(t_model)) # type: ignore
262
262
  do_scoring_test(
263
263
  X,
264
264
  y,
@@ -333,7 +333,7 @@ def test_regression_estimators(
333
333
  "preprocess": "zscore",
334
334
  "problem_type": "regression",
335
335
  }
336
- clf = make_pipeline(StandardScaler(), clone(t_model))
336
+ clf = make_pipeline(StandardScaler(), clone(t_model)) # type: ignore
337
337
  do_scoring_test(
338
338
  X,
339
339
  y,