julearn 0.3.6.dev33__tar.gz → 0.3.6.dev42__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.
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/ci.yml +10 -3
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/docs-preview.yml +10 -5
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/docs.yml +13 -6
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/lint.yml +7 -5
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/PKG-INFO +17 -18
- julearn-0.3.6.dev42/docs/Makefile +44 -0
- julearn-0.3.6.dev42/docs/_static/css/version_selector.css +126 -0
- julearn-0.3.6.dev42/docs/_templates/versions.html +11 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/conf.py +71 -45
- julearn-0.3.6.dev42/docs/poly.py +612 -0
- julearn-0.3.6.dev42/docs/poly_files/patches/version_banner.html +24 -0
- julearn-0.3.6.dev42/docs/poly_files/patches/version_banner_rtd.html +5 -0
- julearn-0.3.6.dev42/docs/poly_files/patches/versions.html +35 -0
- julearn-0.3.6.dev33/docs/_templates/versions.html → julearn-0.3.6.dev42/docs/poly_files/patches/versions_rtd.html +2 -2
- julearn-0.3.6.dev42/docs/poly_files/templates/index.html +12 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/_version.py +3 -3
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn.egg-info/PKG-INFO +17 -18
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn.egg-info/SOURCES.txt +7 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn.egg-info/requires.txt +13 -13
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/pyproject.toml +10 -9
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/uv.lock +71 -313
- julearn-0.3.6.dev33/docs/Makefile +0 -52
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/dependabot.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/check-stale.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/ci-docs.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.github/workflows/publish.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.gitignore +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/.pre-commit-config.yaml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/AUTHORS.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/LICENSE.md +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/README.md +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/codecov.yml +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_static/css/custom.css +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_static/js/custom.js +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_templates/class.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_templates/function.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_templates/function_warning.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_templates/protocol.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/_templates/type.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/base.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/config.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/index.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/inspect.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/main.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/model_selection.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/models.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/pipeline.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/prepare.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/scoring.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/stats.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/transformers.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/utils.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/api/viz.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/available_pipeline_steps.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/contributors.inc +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/newsfragments/.gitignore +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/newsfragments/301.misc +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/newsfragments/303.feature +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/newsfragments/307.bugfix +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/changes/newsfragments/307.misc +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/configuration.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/contributing.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/examples.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/faq.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/getting_started.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/corrected_ttest.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/final_estimator.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/iris_X.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/iris_df.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/iris_y.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/joblib_htcondor/condor_q.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/joblib_htcondor/ui_main.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/joblib_htcondor/ui_open.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_calm.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_confbias.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_cv.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_generalization.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_it.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_ml.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/julearn_logo_mlit.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/multiple_scorers_run_cv.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/plot_scores.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/scores_run_cv.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/scores_run_cv_splitter.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/images/scores_run_cv_train.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/index.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/links.inc +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/maintaining.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/redirect.html +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/CBPM.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/confound_removal.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/index.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/joblib.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/model_inspect.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/stacked_models.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/selected_deeper_topics/target_transformers.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/cross_validation.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/data.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/index.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/model_comparison.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/model_evaluation.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/what_really_need_know/pipeline.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/docs/whats_new.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/plot_example_regression.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/run_combine_pandas.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/run_grouped_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/00_starting/run_simple_binary_classification.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/01_model_comparison/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/02_inspection/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/02_inspection/plot_preprocess.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_apply_to_target.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_generate_target.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/03_complex_models/run_stacked_models.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/04_confounds/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/04_confounds/run_return_confounds.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/05_customization/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/05_customization/run_custom_scorers_regression.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_cbpm_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_confound_removal_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_cv_splitters_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_data_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_hyperparameters_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_model_comparison_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_model_evaluation_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_model_inspection_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_pipeline_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_stacked_models_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/99_docs/run_target_transformer_docs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/README.rst +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/ignore_words.txt +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/api.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/base/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/base/column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/base/estimators.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/base/tests/test_base_estimators.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/base/tests/test_column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/config.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/conftest.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/external/optuna_searchcv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/_pipeline.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/_preprocess.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/inspector.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/tests/test_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/tests/test_inspector.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/tests/test_pipeline.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/inspect/tests/test_preprocess.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/_optuna_searcher.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/_skopt_searcher.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/available_searchers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/final_model_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/stratified_bootstrap.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_available_searchers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_final_model_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_optuna_searcher.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_skopt_searcher.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/model_selection/utils.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/available_models.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/dynamic.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/tests/test_available_models.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/tests/test_dynamic.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/models/tests/test_models.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/merger.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/pipeline_creator.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/target_pipeline.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/target_pipeline_creator.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/tests/test_merger.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/tests/test_pipeline_creator.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/prepare.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/scoring/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/scoring/available_scorers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/scoring/metrics.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/scoring/tests/test_available_scorers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/scoring/tests/test_metrics.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/stats/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/stats/corrected_ttest.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/stats/tests/test_corrected_ttest.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/tests/test_api.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/tests/test_config.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/tests/test_prepare.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/available_transformers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/cbpm.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/confound_remover.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/change_column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/drop_columns.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/filter_columns.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/pick_columns.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/set_column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/dataframe/tests/test_set_column_types.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/ju_column_transformer.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/available_target_transformers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/ju_generated_target_model.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/ju_target_transformer.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/ju_transformed_target_model.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/target_confound_remover.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/tests/test_ju_generated_target_model.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/tests/test_available_transformers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/tests/test_cbpm.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/tests/test_confounds.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/transformers/tests/test_jucolumntransformers.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/_cv.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/checks.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/logging.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/testing.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/tests/test_logging.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/tests/test_version.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/typing.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/utils/versions.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/viz/__init__.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/viz/_scores.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn/viz/res/julearn_logo_generalization.png +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn.egg-info/dependency_links.txt +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/julearn.egg-info/top_level.txt +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/setup.cfg +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/setup.py +0 -0
- {julearn-0.3.6.dev33 → julearn-0.3.6.dev42}/tox.ini +0 -0
|
@@ -27,16 +27,23 @@ jobs:
|
|
|
27
27
|
|
|
28
28
|
steps:
|
|
29
29
|
- uses: actions/checkout@v6
|
|
30
|
+
|
|
30
31
|
- uses: actions/setup-python@v6
|
|
31
32
|
with:
|
|
32
33
|
python-version: ${{ matrix.python-version }}
|
|
34
|
+
|
|
35
|
+
- name: Install uv
|
|
36
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
37
|
+
|
|
33
38
|
- name: Install Python dependencies
|
|
34
39
|
run: |
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
uv sync --locked --extra dev
|
|
41
|
+
uv pip install tox-gh-actions
|
|
42
|
+
|
|
37
43
|
- name: Test with tox
|
|
38
44
|
run: |
|
|
39
|
-
tox
|
|
45
|
+
uv run tox
|
|
46
|
+
|
|
40
47
|
- uses: codecov/codecov-action@v6
|
|
41
48
|
with:
|
|
42
49
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -24,15 +24,20 @@ jobs:
|
|
|
24
24
|
fetch-depth: 0
|
|
25
25
|
- uses: actions/setup-python@v6
|
|
26
26
|
with:
|
|
27
|
-
|
|
27
|
+
python-version-file: "pyproject.toml"
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
31
|
+
|
|
28
32
|
- name: Install Python dependencies
|
|
29
33
|
run: |
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
uv sync --locked --extra docs
|
|
35
|
+
|
|
32
36
|
- name: Test build docs
|
|
33
37
|
run: |
|
|
34
|
-
|
|
38
|
+
uv run make -C docs/ local
|
|
39
|
+
|
|
35
40
|
- uses: rossjrw/pr-preview-action@v1
|
|
36
41
|
with:
|
|
37
|
-
source-dir: docs/_build/
|
|
42
|
+
source-dir: docs/_build/dev
|
|
38
43
|
if: github.event_name == 'pull_request'
|
|
@@ -18,13 +18,19 @@ jobs:
|
|
|
18
18
|
with:
|
|
19
19
|
# require all of history to see all tagged versions' docs
|
|
20
20
|
fetch-depth: 0
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
- name: Set up Python
|
|
23
|
+
uses: actions/setup-python@v6
|
|
22
24
|
with:
|
|
23
|
-
python-version: "
|
|
25
|
+
python-version-file: "pyproject.toml"
|
|
26
|
+
|
|
27
|
+
- name: Install uv
|
|
28
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
29
|
+
|
|
24
30
|
- name: Install Python dependencies
|
|
25
31
|
run: |
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
uv sync --locked --extra docs
|
|
33
|
+
|
|
28
34
|
- name: Checkout gh-pages
|
|
29
35
|
# As we already did a deploy of gh-pages above, it is guaranteed to be there
|
|
30
36
|
# so check it out so we can selectively build docs below
|
|
@@ -32,10 +38,11 @@ jobs:
|
|
|
32
38
|
with:
|
|
33
39
|
ref: gh-pages
|
|
34
40
|
path: docs/_build
|
|
41
|
+
|
|
35
42
|
- name: Build docs
|
|
36
|
-
# Use the args we normally pass to sphinx-build, but run sphinx-
|
|
43
|
+
# Use the args we normally pass to sphinx-build, but run sphinx-polyversion
|
|
37
44
|
run: |
|
|
38
|
-
make -C docs/ html
|
|
45
|
+
uv run make -C docs/ html
|
|
39
46
|
touch docs/_build/.nojekyll
|
|
40
47
|
cp docs/redirect.html docs/_build/index.html
|
|
41
48
|
- uses: peaceiris/actions-gh-pages@v4
|
|
@@ -11,12 +11,14 @@ jobs:
|
|
|
11
11
|
- uses: actions/checkout@v6
|
|
12
12
|
- uses: actions/setup-python@v6
|
|
13
13
|
with:
|
|
14
|
-
python-version: "
|
|
14
|
+
python-version-file: "pyproject.toml"
|
|
15
|
+
|
|
16
|
+
- name: Install uv
|
|
17
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
15
18
|
- name: Install Python dependencies
|
|
16
19
|
run: |
|
|
17
|
-
|
|
18
|
-
python -m pip install tox "ruff>=0.1.0"
|
|
20
|
+
uv sync --locked --extra dev
|
|
19
21
|
- name: Run ruff
|
|
20
|
-
run: ruff check --output-format=github .
|
|
22
|
+
run: uv run ruff check --output-format=github .
|
|
21
23
|
- name: Run codespell
|
|
22
|
-
run: tox -e codespell
|
|
24
|
+
run: uv run tox -e codespell
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: julearn
|
|
3
|
-
Version: 0.3.6.
|
|
3
|
+
Version: 0.3.6.dev42
|
|
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>
|
|
@@ -34,23 +34,20 @@ Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
|
|
|
34
34
|
Provides-Extra: dev
|
|
35
35
|
Requires-Dist: tox; extra == "dev"
|
|
36
36
|
Requires-Dist: pre-commit; extra == "dev"
|
|
37
|
-
Requires-Dist: ruff; extra == "dev"
|
|
38
|
-
Requires-Dist: towncrier; extra == "dev"
|
|
39
|
-
Provides-Extra:
|
|
40
|
-
Requires-Dist: furo>=2025.7.19; extra == "
|
|
41
|
-
Requires-Dist: numpydoc>=1.9.0; extra == "
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
44
|
-
Requires-Dist:
|
|
45
|
-
Requires-Dist:
|
|
46
|
-
Requires-Dist:
|
|
47
|
-
Requires-Dist: sphinx
|
|
48
|
-
Requires-Dist: sphinx-
|
|
49
|
-
Requires-Dist:
|
|
50
|
-
Requires-Dist:
|
|
51
|
-
Requires-Dist: sphinx-autodoc-typehints>=3.6.1; extra == "docs"
|
|
52
|
-
Requires-Dist: sphinxcontrib-towncrier>=0.5.0a0; extra == "docs"
|
|
53
|
-
Requires-Dist: towncrier>=25.8.0; extra == "docs"
|
|
37
|
+
Requires-Dist: ruff<0.16.0,>=0.15.14; extra == "dev"
|
|
38
|
+
Requires-Dist: towncrier>=25.8.0; extra == "dev"
|
|
39
|
+
Provides-Extra: sphinx
|
|
40
|
+
Requires-Dist: furo>=2025.7.19; extra == "sphinx"
|
|
41
|
+
Requires-Dist: numpydoc>=1.9.0; extra == "sphinx"
|
|
42
|
+
Requires-Dist: seaborn<0.14.0,>=0.13.0; extra == "sphinx"
|
|
43
|
+
Requires-Dist: setuptools-scm<11.0.0,>=10.0.0; extra == "sphinx"
|
|
44
|
+
Requires-Dist: sphinx<10.0.0,>=8.2.3; extra == "sphinx"
|
|
45
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "sphinx"
|
|
46
|
+
Requires-Dist: sphinx-gallery>=0.21.0; extra == "sphinx"
|
|
47
|
+
Requires-Dist: sphinx-autodoc-typehints>=3.6.1; extra == "sphinx"
|
|
48
|
+
Requires-Dist: sphinx-polyversion>=2.0.0; extra == "sphinx"
|
|
49
|
+
Requires-Dist: sphinxcontrib-towncrier>=0.5.0a0; extra == "sphinx"
|
|
50
|
+
Requires-Dist: towncrier>=25.8.0; extra == "sphinx"
|
|
54
51
|
Provides-Extra: deslib
|
|
55
52
|
Requires-Dist: deslib<0.4.0,>=0.3.5; extra == "deslib"
|
|
56
53
|
Provides-Extra: viz
|
|
@@ -62,6 +59,8 @@ Requires-Dist: scikit-optimize<0.11.0,>=0.10.2; extra == "skopt"
|
|
|
62
59
|
Provides-Extra: optuna
|
|
63
60
|
Requires-Dist: optuna<5.0.0,>=4.0.0; extra == "optuna"
|
|
64
61
|
Requires-Dist: optuna_integration<5.0.0,>=4.0.0; extra == "optuna"
|
|
62
|
+
Provides-Extra: docs
|
|
63
|
+
Requires-Dist: julearn[optuna,skopt,sphinx,viz]; extra == "docs"
|
|
65
64
|
Provides-Extra: all
|
|
66
65
|
Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
|
|
67
66
|
Dynamic: license-file
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXBUILD = sphinx-build
|
|
7
|
+
POLYBUILD = sphinx-polyversion
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR ?= docs/_build
|
|
10
|
+
SPHINXOPTS ?= -E -v
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Put it first so that "make" without argument is like "make help".
|
|
14
|
+
help:
|
|
15
|
+
@$(SPHINXBUILD) --help "$(SOURCEDIR)" "$(BUILDDIR)" $(O)
|
|
16
|
+
|
|
17
|
+
.PHONY: help Makefile clean cleanall local _build_local _html
|
|
18
|
+
|
|
19
|
+
clean:
|
|
20
|
+
rm -rf $(BUILDDIR)/main
|
|
21
|
+
rm -rf auto_examples/
|
|
22
|
+
rm -rf api/generated/
|
|
23
|
+
|
|
24
|
+
cleanall: clean
|
|
25
|
+
rm -rf $(BUILDDIR)/*
|
|
26
|
+
|
|
27
|
+
# For local build
|
|
28
|
+
local:
|
|
29
|
+
make _build_local; STATUS=$$?; exit $$STATUS
|
|
30
|
+
|
|
31
|
+
_build_local:
|
|
32
|
+
# $(POLYBUILD) ./poly.py -vv -l -o NO_PATCH=True -o OUTPUT_DIR="$(BUILDDIR)" -o SOURCE_DIR="$(SOURCEDIR)" -o TAG_REGEX="^$$"
|
|
33
|
+
$(SPHINXBUILD) "$(SOURCEDIR)" _build/dev $(SPHINXOPTS) $(O)
|
|
34
|
+
|
|
35
|
+
html:
|
|
36
|
+
make _html; STATUS=$$?; exit $$STATUS
|
|
37
|
+
|
|
38
|
+
_html:
|
|
39
|
+
$(POLYBUILD) ./poly.py -vv -o OUTPUT_DIR="$(BUILDDIR)" -o SOURCE_DIR="$(SOURCEDIR)"
|
|
40
|
+
|
|
41
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
42
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
43
|
+
%: Makefile
|
|
44
|
+
$(SPHINXBUILD) "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* Furo-native version selector styles.
|
|
2
|
+
Uses furo CSS variables for full light/dark mode compatibility. */
|
|
3
|
+
|
|
4
|
+
/* ── Sidebar version selector ────────────────────────────────────────────── */
|
|
5
|
+
|
|
6
|
+
#version-selector {
|
|
7
|
+
border-top: 1px solid var(--color-sidebar-search-border);
|
|
8
|
+
padding-top: calc(var(--sidebar-item-spacing-vertical) / 2);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Remove default browser <details> marker */
|
|
12
|
+
.version-details > summary {
|
|
13
|
+
list-style: none;
|
|
14
|
+
}
|
|
15
|
+
.version-details > summary::-webkit-details-marker {
|
|
16
|
+
display: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Summary row: looks like a furo sidebar caption */
|
|
20
|
+
.version-summary {
|
|
21
|
+
cursor: pointer;
|
|
22
|
+
display: flex;
|
|
23
|
+
align-items: center;
|
|
24
|
+
gap: 0.4em;
|
|
25
|
+
padding: var(--sidebar-item-spacing-vertical)
|
|
26
|
+
var(--sidebar-item-spacing-horizontal);
|
|
27
|
+
font-size: var(--font-size--small--2);
|
|
28
|
+
font-weight: bold;
|
|
29
|
+
text-transform: uppercase;
|
|
30
|
+
letter-spacing: 1px;
|
|
31
|
+
color: var(--color-sidebar-caption-text);
|
|
32
|
+
user-select: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.version-summary:hover {
|
|
36
|
+
background-color: var(--color-sidebar-item-background--hover);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Chevron: points right when closed, down when open */
|
|
40
|
+
.version-summary::after {
|
|
41
|
+
content: "▶";
|
|
42
|
+
font-size: 0.6em;
|
|
43
|
+
margin-left: auto;
|
|
44
|
+
transition: transform 0.15s ease;
|
|
45
|
+
color: var(--color-sidebar-caption-text);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.version-details[open] > .version-summary::after {
|
|
49
|
+
transform: rotate(90deg);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Colored status dot */
|
|
53
|
+
.version-status-dot {
|
|
54
|
+
width: 8px;
|
|
55
|
+
height: 8px;
|
|
56
|
+
border-radius: 50%;
|
|
57
|
+
display: inline-block;
|
|
58
|
+
flex-shrink: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.version-status-dot--latest { background-color: #28a745; }
|
|
62
|
+
.version-status-dot--old { background-color: #dc3545; }
|
|
63
|
+
.version-status-dot--dev { background-color: #e67e00; }
|
|
64
|
+
|
|
65
|
+
/* Version list */
|
|
66
|
+
.version-details ul {
|
|
67
|
+
margin: 0;
|
|
68
|
+
padding: 0;
|
|
69
|
+
list-style: none;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.version-details .toctree-l1 > a {
|
|
73
|
+
display: block;
|
|
74
|
+
padding: var(--sidebar-item-spacing-vertical)
|
|
75
|
+
var(--sidebar-item-spacing-horizontal);
|
|
76
|
+
color: var(--color-sidebar-link-text);
|
|
77
|
+
font-size: var(--sidebar-item-font-size);
|
|
78
|
+
text-decoration: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.version-details .toctree-l1 > a:hover {
|
|
82
|
+
background-color: var(--color-sidebar-item-background--hover);
|
|
83
|
+
color: var(--color-sidebar-link-text--top-level);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.version-details .toctree-l1.current > a {
|
|
87
|
+
background-color: var(--color-sidebar-item-background--current, transparent);
|
|
88
|
+
color: var(--color-sidebar-link-text--top-level);
|
|
89
|
+
font-weight: bold;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.version-details .toctree-l1 > a em {
|
|
93
|
+
font-size: 0.85em;
|
|
94
|
+
opacity: 0.75;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* ── Version banner (toc-drawer / right sidebar) ─────────────────────────── */
|
|
98
|
+
|
|
99
|
+
.version-banner {
|
|
100
|
+
padding: 0.6rem 0.75rem;
|
|
101
|
+
margin: 0.75rem 0.5rem 0;
|
|
102
|
+
border-radius: 0.2rem;
|
|
103
|
+
border-left: 3px solid;
|
|
104
|
+
font-size: var(--font-size--small--2);
|
|
105
|
+
line-height: 1.4;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.version-banner a {
|
|
109
|
+
font-weight: bold;
|
|
110
|
+
color: inherit;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.version-banner--latest {
|
|
114
|
+
background-color: rgba(40, 167, 69, 0.12);
|
|
115
|
+
border-left-color: #28a745;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.version-banner--old {
|
|
119
|
+
background-color: rgba(220, 53, 69, 0.12);
|
|
120
|
+
border-left-color: #dc3545;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.version-banner--dev {
|
|
124
|
+
background-color: rgba(230, 126, 0, 0.12);
|
|
125
|
+
border-left-color: #e67e00;
|
|
126
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{# Furo-native version selector.
|
|
2
|
+
This placeholder is rendered by Sphinx at build time.
|
|
3
|
+
poly.py replaces it with the full multi-version list when patching. #}
|
|
4
|
+
<div id="version-selector" class="sidebar-tree version-selector">
|
|
5
|
+
<details class="version-details" open>
|
|
6
|
+
<summary class="version-summary">
|
|
7
|
+
<span class="version-status-dot version-status-dot--latest"></span>
|
|
8
|
+
<span class="caption-text">Version</span>
|
|
9
|
+
</summary>
|
|
10
|
+
</details>
|
|
11
|
+
</div>
|
|
@@ -7,30 +7,61 @@
|
|
|
7
7
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
8
8
|
|
|
9
9
|
import datetime
|
|
10
|
-
|
|
11
|
-
from pathlib import Path
|
|
10
|
+
import os
|
|
12
11
|
import sys
|
|
13
|
-
|
|
14
|
-
from setuptools_scm import get_version
|
|
15
|
-
|
|
16
12
|
import types
|
|
13
|
+
from pathlib import Path
|
|
17
14
|
from typing import TypeAliasType
|
|
15
|
+
|
|
16
|
+
from setuptools_scm import get_version
|
|
18
17
|
from sphinx_autodoc_typehints import format_annotation
|
|
18
|
+
from sphinx_polyversion.api import load
|
|
19
|
+
from sphinx_polyversion.git import GitRefType
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
if os.getenv("POLYVERSION_DATA") is None:
|
|
23
|
+
# If POLYVERSION_DATA is not set, we are likely building the docs locally.
|
|
24
|
+
# In this case, we can use setuptools_scm to get the version information.
|
|
25
|
+
release = get_version(root=Path(__file__).parents[1].resolve())
|
|
26
|
+
else:
|
|
27
|
+
load(globals())
|
|
28
|
+
# This adds the following to the global scope
|
|
29
|
+
# html_context = {
|
|
30
|
+
# "revisions": [GitRef('main', ...), GitRef('v6.8.9', ...), ...],
|
|
31
|
+
# "current": GitRef('v1.4.6', ...),
|
|
32
|
+
# }
|
|
33
|
+
|
|
34
|
+
# process the loaded version information as you wish
|
|
35
|
+
html_context = globals().get("html_context", {})
|
|
36
|
+
|
|
37
|
+
tag_revisions = [
|
|
38
|
+
rev
|
|
39
|
+
for rev in html_context["revisions"]
|
|
40
|
+
if rev.type_ == GitRefType.TAG and rev.name.startswith("v")
|
|
41
|
+
]
|
|
19
42
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
import sphinx_multiversion # noqa: F401
|
|
43
|
+
latest = sorted(tag_revisions, key=lambda x: x.name)[
|
|
44
|
+
-1
|
|
45
|
+
] # latest by version
|
|
24
46
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
47
|
+
if (
|
|
48
|
+
html_context["current"].type_ == GitRefType.BRANCH
|
|
49
|
+
and html_context["current"].name == "main"
|
|
50
|
+
):
|
|
51
|
+
major, minor, revision = latest.name.split("v")[-1].split(
|
|
52
|
+
"."
|
|
53
|
+
) # get version number from tag name
|
|
54
|
+
next_dev_version = f"{major}.{minor}.{int(revision) + 1}.dev0"
|
|
55
|
+
release = next_dev_version
|
|
56
|
+
else:
|
|
57
|
+
release = html_context["current"].name
|
|
28
58
|
|
|
59
|
+
version = release
|
|
29
60
|
|
|
30
61
|
# -- Path setup --------------------------------------------------------------
|
|
31
62
|
|
|
32
63
|
PROJECT_ROOT_DIR = Path(__file__).parents[1].resolve()
|
|
33
|
-
get_scm_version = partial(get_version, root=PROJECT_ROOT_DIR)
|
|
64
|
+
# get_scm_version = partial(get_version, root=PROJECT_ROOT_DIR)
|
|
34
65
|
|
|
35
66
|
# -- Project information -----------------------------------------------------
|
|
36
67
|
|
|
@@ -44,11 +75,6 @@ project = github_repo_name
|
|
|
44
75
|
author = f"{project} Contributors"
|
|
45
76
|
copyright = f"{datetime.date.today().year}, {author}"
|
|
46
77
|
|
|
47
|
-
# The version along with dev tag
|
|
48
|
-
release = get_scm_version(
|
|
49
|
-
version_scheme="guess-next-dev",
|
|
50
|
-
local_scheme="no-local-version",
|
|
51
|
-
)
|
|
52
78
|
|
|
53
79
|
# -- General configuration ---------------------------------------------------
|
|
54
80
|
|
|
@@ -72,12 +98,6 @@ extensions = [
|
|
|
72
98
|
"sphinx_autodoc_typehints", # automatically document type hints
|
|
73
99
|
]
|
|
74
100
|
|
|
75
|
-
if use_multiversion:
|
|
76
|
-
print("using sphinx-multiversion for documentation")
|
|
77
|
-
extensions.append("sphinx_multiversion")
|
|
78
|
-
else:
|
|
79
|
-
print("sphinx-multiversion not found, building documentation without it")
|
|
80
|
-
|
|
81
101
|
# Add any paths that contain templates here, relative to this directory.
|
|
82
102
|
templates_path = [
|
|
83
103
|
"_templates",
|
|
@@ -111,9 +131,20 @@ nitpick_ignore_regex = [
|
|
|
111
131
|
("py:class", "sklearn.metrics._scorer.*"),
|
|
112
132
|
]
|
|
113
133
|
|
|
114
|
-
to_ignore = [
|
|
115
|
-
|
|
116
|
-
|
|
134
|
+
to_ignore = [
|
|
135
|
+
"array-like",
|
|
136
|
+
"shape",
|
|
137
|
+
"optional",
|
|
138
|
+
"or",
|
|
139
|
+
"the",
|
|
140
|
+
"options",
|
|
141
|
+
"n_samples",
|
|
142
|
+
"default=.*",
|
|
143
|
+
"n_features",
|
|
144
|
+
"n_outputs",
|
|
145
|
+
"True",
|
|
146
|
+
"False",
|
|
147
|
+
]
|
|
117
148
|
|
|
118
149
|
for i in to_ignore:
|
|
119
150
|
nitpick_ignore_regex.append(("py:class", i))
|
|
@@ -134,6 +165,7 @@ html_logo = "images/julearn_logo_it.png"
|
|
|
134
165
|
# or fully qualified paths (eg. https://...)
|
|
135
166
|
html_css_files = [
|
|
136
167
|
"css/custom.css",
|
|
168
|
+
"css/version_selector.css",
|
|
137
169
|
]
|
|
138
170
|
|
|
139
171
|
html_js_files = [
|
|
@@ -168,15 +200,15 @@ autodoc_type_aliases = {
|
|
|
168
200
|
"ColumnTypes": "julearn.base.column_types.ColumnTypes",
|
|
169
201
|
"Pipeline": "sklearn.pipeline.Pipeline",
|
|
170
202
|
"RandomState": "numpy.random.RandomState",
|
|
171
|
-
# "ColumnTypesLike": "julearn.utils.typing.ColumnTypesLike",
|
|
172
|
-
# "DataLike": "julearn.utils.typing.DataLike",
|
|
173
|
-
# "ScorerLike": "julearn.utils.typing.ScorerLike",
|
|
174
|
-
# "EstimatorLike": "julearn.utils.typing.EstimatorLike",
|
|
175
|
-
# "ModelLike": "julearn.utils.typing.ModelLike",
|
|
176
|
-
# "TransformerLike": "julearn.utils.typing.TransformerLike",
|
|
177
|
-
# "JuModelLike": "julearn.utils.typing.JuModelLike",
|
|
178
|
-
# "JuTransformerLike": "julearn.utils.typing.JuTransformerLike",
|
|
179
|
-
# "CVLike": "julearn.utils.typing.CVLike",
|
|
203
|
+
# "ColumnTypesLike": "julearn.utils.typing.ColumnTypesLike",
|
|
204
|
+
# "DataLike": "julearn.utils.typing.DataLike",
|
|
205
|
+
# "ScorerLike": "julearn.utils.typing.ScorerLike",
|
|
206
|
+
# "EstimatorLike": "julearn.utils.typing.EstimatorLike",
|
|
207
|
+
# "ModelLike": "julearn.utils.typing.ModelLike",
|
|
208
|
+
# "TransformerLike": "julearn.utils.typing.TransformerLike",
|
|
209
|
+
# "JuModelLike": "julearn.utils.typing.JuModelLike",
|
|
210
|
+
# "JuTransformerLike": "julearn.utils.typing.JuTransformerLike",
|
|
211
|
+
# "CVLike": "julearn.utils.typing.CVLike",
|
|
180
212
|
}
|
|
181
213
|
|
|
182
214
|
|
|
@@ -288,12 +320,6 @@ sphinx_gallery_conf = {
|
|
|
288
320
|
"download_all_examples": False,
|
|
289
321
|
}
|
|
290
322
|
|
|
291
|
-
# -- sphinx-multiversion configuration ---------------------------------------
|
|
292
|
-
|
|
293
|
-
smv_rebuild_tags = False
|
|
294
|
-
smv_tag_whitelist = r"^v\d+\.\d+.\d+$"
|
|
295
|
-
smv_branch_whitelist = r"main"
|
|
296
|
-
smv_released_pattern = r"^tags/v.*$"
|
|
297
323
|
|
|
298
324
|
# -- sphinxcontrib-towncrier configuration -----------------------------------
|
|
299
325
|
|
|
@@ -301,7 +327,7 @@ towncrier_draft_autoversion_mode = "draft"
|
|
|
301
327
|
towncrier_draft_include_empty = True
|
|
302
328
|
towncrier_draft_working_directory = PROJECT_ROOT_DIR
|
|
303
329
|
|
|
304
|
-
# -- sphinx_autodoc_typehints configuration
|
|
330
|
+
# -- sphinx_autodoc_typehints configuration ----------------------------------
|
|
305
331
|
always_use_bars_union = True
|
|
306
332
|
simplify_optional_unions = True
|
|
307
333
|
typehints_defaults = "comma"
|
|
@@ -315,9 +341,9 @@ typehints_document_rtype_none = False
|
|
|
315
341
|
# instead of as a separate block
|
|
316
342
|
typehints_use_rtype = False
|
|
317
343
|
|
|
344
|
+
|
|
318
345
|
def _get_canonical_type_alias_name(annotation: TypeAliasType) -> str:
|
|
319
|
-
"""
|
|
320
|
-
Get canonical public qualified name for a TypeAliasType.
|
|
346
|
+
"""Get canonical public qualified name for a TypeAliasType.
|
|
321
347
|
|
|
322
348
|
For types defined in private modules (e.g. ``numpy._typing.ArrayLike``),
|
|
323
349
|
search ``sys.modules`` for a public re-export
|