scikit-learn-intelex 2024.4.0__py312-none-win_amd64.whl → 2025.10.0__py312-none-win_amd64.whl
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.
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/neighbors/__init__.py +19 -19
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__init__.py +7 -3
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +128 -78
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +101 -32
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +38 -29
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/conftest.py +20 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +199 -21
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -17
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +288 -440
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +17 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +11 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +30 -62
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +56 -9
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +45 -101
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +63 -94
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +49 -25
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -4
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +9 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +3 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +1 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +99 -117
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +55 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +95 -113
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +51 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +43 -20
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +5 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +122 -75
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
- scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
- scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/WHEEL +1 -1
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_config.py +0 -110
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -250
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +0 -109
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -143
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -335
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -56
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -113
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -316
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -385
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -117
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -91
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -133
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -185
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -164
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -39
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -227
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -99
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -20
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +0 -97
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2024.4.0.dist-info/METADATA +0 -230
- scikit_learn_intelex-2024.4.0.dist-info/RECORD +0 -101
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import gc
|
|
18
|
+
import logging
|
|
19
|
+
import os
|
|
20
|
+
import tracemalloc
|
|
21
|
+
import warnings
|
|
22
|
+
from inspect import isclass
|
|
23
|
+
|
|
24
|
+
import numpy as np
|
|
25
|
+
import pytest
|
|
26
|
+
from scipy.stats import pearsonr
|
|
27
|
+
from sklearn.base import BaseEstimator, clone
|
|
28
|
+
from sklearn.datasets import make_classification
|
|
29
|
+
from sklearn.model_selection import KFold
|
|
30
|
+
|
|
31
|
+
from onedal import _default_backend as backend
|
|
32
|
+
from onedal.tests.utils._dataframes_support import (
|
|
33
|
+
_convert_to_dataframe,
|
|
34
|
+
get_dataframes_and_queues,
|
|
35
|
+
)
|
|
36
|
+
from onedal.tests.utils._device_selection import get_queues, is_dpctl_device_available
|
|
37
|
+
from onedal.utils._array_api import _get_sycl_namespace
|
|
38
|
+
from sklearnex import config_context
|
|
39
|
+
from sklearnex.tests.utils import (
|
|
40
|
+
PATCHED_FUNCTIONS,
|
|
41
|
+
PATCHED_MODELS,
|
|
42
|
+
SPECIAL_INSTANCES,
|
|
43
|
+
DummyEstimator,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
CPU_SKIP_LIST = (
|
|
47
|
+
"TSNE", # too slow for using in testing on common data size
|
|
48
|
+
"config_context", # does not malloc
|
|
49
|
+
"get_config", # does not malloc
|
|
50
|
+
"set_config", # does not malloc
|
|
51
|
+
"SVC(probability=True)", # memory leak fortran numpy (investigate _fit_proba)
|
|
52
|
+
"NuSVC(probability=True)", # memory leak fortran numpy (investigate _fit_proba)
|
|
53
|
+
"IncrementalEmpiricalCovariance", # dataframe_f issues
|
|
54
|
+
"IncrementalLinearRegression", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
|
|
55
|
+
"IncrementalPCA", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
|
|
56
|
+
"IncrementalRidge", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
|
|
57
|
+
"LogisticRegression(solver='newton-cg')", # memory leak fortran (1000, 100)
|
|
58
|
+
"DummyRegressor", # default parameters not supported
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
GPU_SKIP_LIST = (
|
|
62
|
+
"TSNE", # too slow for using in testing on common data size
|
|
63
|
+
"RandomForestRegressor", # too slow for using in testing on common data size
|
|
64
|
+
"KMeans", # does not support GPU offloading
|
|
65
|
+
"config_context", # does not malloc
|
|
66
|
+
"get_config", # does not malloc
|
|
67
|
+
"set_config", # does not malloc
|
|
68
|
+
"ElasticNet", # does not support GPU offloading (fails silently)
|
|
69
|
+
"Lasso", # does not support GPU offloading (fails silently)
|
|
70
|
+
"SVR", # does not support GPU offloading (fails silently)
|
|
71
|
+
"NuSVR", # does not support GPU offloading (fails silently)
|
|
72
|
+
"NuSVC", # does not support GPU offloading (fails silently)
|
|
73
|
+
"LogisticRegression", # default parameters not supported, see solver=newton-cg
|
|
74
|
+
"NuSVC(probability=True)", # does not support GPU offloading (fails silently)
|
|
75
|
+
"IncrementalLinearRegression", # issue with potrf with the specific dataset
|
|
76
|
+
"LinearRegression", # issue with potrf with the specific dataset
|
|
77
|
+
"DummyRegressor", # default parameters not supported
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def gen_functions(functions):
|
|
82
|
+
func_dict = functions.copy()
|
|
83
|
+
|
|
84
|
+
roc_auc_score = func_dict.pop("roc_auc_score")
|
|
85
|
+
func_dict["roc_auc_score"] = lambda x, y: roc_auc_score(y, y)
|
|
86
|
+
|
|
87
|
+
pairwise_distances = func_dict.pop("pairwise_distances")
|
|
88
|
+
func_dict["pairwise_distances(metric='cosine')"] = lambda x, y: pairwise_distances(
|
|
89
|
+
x, metric="cosine"
|
|
90
|
+
)
|
|
91
|
+
func_dict["pairwise_distances(metric='correlation')"] = (
|
|
92
|
+
lambda x, y: pairwise_distances(x, metric="correlation")
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
_assert_all_finite = func_dict.pop("_assert_all_finite")
|
|
96
|
+
func_dict["_assert_all_finite"] = lambda x, y: [
|
|
97
|
+
_assert_all_finite(x),
|
|
98
|
+
_assert_all_finite(y),
|
|
99
|
+
]
|
|
100
|
+
return func_dict
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
FUNCTIONS = gen_functions(PATCHED_FUNCTIONS)
|
|
104
|
+
|
|
105
|
+
CPU_ESTIMATORS = {
|
|
106
|
+
k: v
|
|
107
|
+
for k, v in {**PATCHED_MODELS, **SPECIAL_INSTANCES, **FUNCTIONS}.items()
|
|
108
|
+
if not k in CPU_SKIP_LIST
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
GPU_ESTIMATORS = {
|
|
112
|
+
k: v
|
|
113
|
+
for k, v in {**PATCHED_MODELS, **SPECIAL_INSTANCES}.items()
|
|
114
|
+
if not k in GPU_SKIP_LIST
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
data_shapes = [
|
|
118
|
+
pytest.param((1000, 100), id="(1000, 100)"),
|
|
119
|
+
pytest.param((2000, 50), id="(2000, 50)"),
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
EXTRA_MEMORY_THRESHOLD = 0.15
|
|
123
|
+
EXTRA_MEMORY_THRESHOLD_PANDAS = 0.25
|
|
124
|
+
N_SPLITS = 10
|
|
125
|
+
ORDER_DICT = {"F": np.asfortranarray, "C": np.ascontiguousarray}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def gen_clsf_data(n_samples, n_features, dtype=None):
|
|
129
|
+
data, label = make_classification(
|
|
130
|
+
n_classes=2, n_samples=n_samples, n_features=n_features, random_state=777
|
|
131
|
+
)
|
|
132
|
+
if dtype:
|
|
133
|
+
data, label = data.astype(dtype), label.astype(dtype)
|
|
134
|
+
return (
|
|
135
|
+
data,
|
|
136
|
+
label,
|
|
137
|
+
data.size * data.dtype.itemsize + label.size * label.dtype.itemsize,
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def get_traced_memory(queue=None):
|
|
142
|
+
if backend.is_dpc and queue and queue.sycl_device.is_gpu:
|
|
143
|
+
return backend.get_used_memory(queue)
|
|
144
|
+
else:
|
|
145
|
+
return tracemalloc.get_traced_memory()[0]
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def take(x, index, axis=0, queue=None):
|
|
149
|
+
sycl_usm, xp, _ = _get_sycl_namespace(x)
|
|
150
|
+
if sycl_usm:
|
|
151
|
+
# Using the same sycl queue for dpnp.ndarray or usm_ndarray.
|
|
152
|
+
return xp.take(
|
|
153
|
+
x, xp.asarray(index, usm_type="device", sycl_queue=x.sycl_queue), axis=axis
|
|
154
|
+
)
|
|
155
|
+
elif hasattr(x, "__array_namespace__"):
|
|
156
|
+
# check explicitly instead of sklearn's `get_namespace` as array_api is off by default
|
|
157
|
+
xp = x.__array_namespace__()
|
|
158
|
+
return xp.take(x, xp.asarray(index, device=x.device), axis=axis)
|
|
159
|
+
else:
|
|
160
|
+
return x.take(index, axis=axis)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def split_train_inference(kf, x, y, estimator, queue=None):
|
|
164
|
+
mem_tracks = []
|
|
165
|
+
for train_index, test_index in kf.split(x):
|
|
166
|
+
x_train = take(x, train_index, queue=queue)
|
|
167
|
+
y_train = take(y, train_index, queue=queue)
|
|
168
|
+
x_test = take(x, test_index, queue=queue)
|
|
169
|
+
y_test = take(y, test_index, queue=queue)
|
|
170
|
+
|
|
171
|
+
if isclass(estimator) and issubclass(estimator, BaseEstimator):
|
|
172
|
+
alg = estimator()
|
|
173
|
+
flag = True
|
|
174
|
+
elif isinstance(estimator, BaseEstimator):
|
|
175
|
+
alg = clone(estimator)
|
|
176
|
+
flag = True
|
|
177
|
+
else:
|
|
178
|
+
flag = False
|
|
179
|
+
|
|
180
|
+
if flag:
|
|
181
|
+
alg.fit(x_train, y_train)
|
|
182
|
+
if hasattr(alg, "predict"):
|
|
183
|
+
alg.predict(x_test)
|
|
184
|
+
elif hasattr(alg, "transform"):
|
|
185
|
+
alg.transform(x_test)
|
|
186
|
+
elif hasattr(alg, "kneighbors"):
|
|
187
|
+
alg.kneighbors(x_test)
|
|
188
|
+
del alg
|
|
189
|
+
else:
|
|
190
|
+
estimator(x_train, y_train)
|
|
191
|
+
|
|
192
|
+
del x_train, x_test, y_train, y_test, flag
|
|
193
|
+
mem_tracks.append(get_traced_memory(queue))
|
|
194
|
+
return mem_tracks
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def _kfold_function_template(
|
|
198
|
+
estimator, dataframe, data_shape, queue=None, func=None, dtype=None
|
|
199
|
+
):
|
|
200
|
+
tracemalloc.start()
|
|
201
|
+
|
|
202
|
+
n_samples, n_features = data_shape
|
|
203
|
+
X, y, data_memory_size = gen_clsf_data(n_samples, n_features, dtype=dtype)
|
|
204
|
+
kf = KFold(n_splits=N_SPLITS)
|
|
205
|
+
if func:
|
|
206
|
+
X = func(X)
|
|
207
|
+
|
|
208
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
209
|
+
y = _convert_to_dataframe(y, sycl_queue=queue, target_df=dataframe)
|
|
210
|
+
|
|
211
|
+
mem_before = get_traced_memory(queue)
|
|
212
|
+
mem_tracks = split_train_inference(kf, X, y, estimator, queue=queue)
|
|
213
|
+
mem_iter_diffs = np.array(mem_tracks[1:]) - np.array(mem_tracks[:-1])
|
|
214
|
+
mem_incr_mean, mem_incr_std = mem_iter_diffs.mean(), mem_iter_diffs.std()
|
|
215
|
+
mem_incr_mean, mem_incr_std = round(mem_incr_mean), round(mem_incr_std)
|
|
216
|
+
with warnings.catch_warnings():
|
|
217
|
+
# In the case that the memory usage is constant, this will raise
|
|
218
|
+
# a ConstantInputWarning error in pearsonr from scipy, this can
|
|
219
|
+
# be ignored.
|
|
220
|
+
warnings.filterwarnings(
|
|
221
|
+
"ignore",
|
|
222
|
+
message="An input array is constant; the correlation coefficient is not defined",
|
|
223
|
+
)
|
|
224
|
+
mem_iter_corr, _ = pearsonr(mem_tracks, list(range(len(mem_tracks))))
|
|
225
|
+
|
|
226
|
+
if mem_iter_corr > 0.95:
|
|
227
|
+
logging.warning(
|
|
228
|
+
"Memory usage is steadily increasing with iterations "
|
|
229
|
+
"(Pearson correlation coefficient between "
|
|
230
|
+
f"memory tracks and iterations is {mem_iter_corr})\n"
|
|
231
|
+
"Memory usage increase per iteration: "
|
|
232
|
+
f"{mem_incr_mean}±{mem_incr_std} bytes"
|
|
233
|
+
)
|
|
234
|
+
mem_before_gc = get_traced_memory(queue)
|
|
235
|
+
mem_diff = mem_before_gc - mem_before
|
|
236
|
+
if isinstance(estimator, BaseEstimator):
|
|
237
|
+
name = str(estimator)
|
|
238
|
+
else:
|
|
239
|
+
name = estimator.__name__
|
|
240
|
+
|
|
241
|
+
threshold = (
|
|
242
|
+
EXTRA_MEMORY_THRESHOLD_PANDAS if dataframe == "pandas" else EXTRA_MEMORY_THRESHOLD
|
|
243
|
+
)
|
|
244
|
+
message = (
|
|
245
|
+
"Size of extra allocated memory {} using garbage collector "
|
|
246
|
+
f"is greater than {threshold * 100}% of input data"
|
|
247
|
+
f"\n\tAlgorithm: {name}"
|
|
248
|
+
f"\n\tInput data size: {data_memory_size} bytes"
|
|
249
|
+
"\n\tExtra allocated memory size: {} bytes"
|
|
250
|
+
" / {} %"
|
|
251
|
+
)
|
|
252
|
+
if mem_diff >= threshold * data_memory_size:
|
|
253
|
+
logging.warning(
|
|
254
|
+
message.format(
|
|
255
|
+
"before", mem_diff, round((mem_diff) / data_memory_size * 100, 2)
|
|
256
|
+
)
|
|
257
|
+
)
|
|
258
|
+
gc.collect()
|
|
259
|
+
mem_after = get_traced_memory(queue)
|
|
260
|
+
tracemalloc.stop()
|
|
261
|
+
mem_diff = mem_after - mem_before
|
|
262
|
+
|
|
263
|
+
# GPU offloading with SYCL contains a program/kernel cache which should
|
|
264
|
+
# be controllable via a KernelProgramCache object in the SYCL context.
|
|
265
|
+
# The programs and kernels are stored on the GPU, but cannot be cleared
|
|
266
|
+
# as this class is not available for access in all oneDAL DPC++ runtimes.
|
|
267
|
+
# Therefore, until this is implemented this test must be skipped for gpu
|
|
268
|
+
# as it looks like a memory leak (at least there is no way to discern a
|
|
269
|
+
# leak on the first run).
|
|
270
|
+
if queue is None or queue.sycl_device.is_cpu:
|
|
271
|
+
assert mem_diff < threshold * data_memory_size, message.format(
|
|
272
|
+
"after", mem_diff, round((mem_diff) / data_memory_size * 100, 2)
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
277
|
+
@pytest.mark.parametrize(
|
|
278
|
+
"dataframe,queue", get_dataframes_and_queues("numpy,pandas", "cpu")
|
|
279
|
+
)
|
|
280
|
+
@pytest.mark.parametrize("estimator", CPU_ESTIMATORS.keys())
|
|
281
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
282
|
+
def test_memory_leaks(estimator, dataframe, queue, order, data_shape):
|
|
283
|
+
func = ORDER_DICT[order]
|
|
284
|
+
if estimator == "_assert_all_finite" and queue is not None:
|
|
285
|
+
pytest.skip(f"{estimator} is not designed for device offloading")
|
|
286
|
+
|
|
287
|
+
_kfold_function_template(
|
|
288
|
+
CPU_ESTIMATORS[estimator], dataframe, data_shape, queue, func
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
@pytest.mark.skipif(
|
|
293
|
+
os.getenv("ZES_ENABLE_SYSMAN") is None or not is_dpctl_device_available(["gpu"]),
|
|
294
|
+
reason="SYCL device memory leak check requires the level zero sysman",
|
|
295
|
+
)
|
|
296
|
+
@pytest.mark.parametrize("queue", get_queues("gpu"))
|
|
297
|
+
@pytest.mark.parametrize("estimator", GPU_ESTIMATORS.keys())
|
|
298
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
299
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
300
|
+
def test_gpu_memory_leaks(estimator, queue, order, data_shape):
|
|
301
|
+
func = ORDER_DICT[order]
|
|
302
|
+
if "ExtraTrees" in estimator and data_shape == (2000, 50):
|
|
303
|
+
pytest.skip("Avoid a segmentation fault in Extra Trees algorithms")
|
|
304
|
+
|
|
305
|
+
with config_context(target_offload=queue):
|
|
306
|
+
_kfold_function_template(GPU_ESTIMATORS[estimator], None, data_shape, queue, func)
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
@pytest.mark.parametrize(
|
|
310
|
+
"dataframe,queue", get_dataframes_and_queues("dpctl,dpnp,array_api", "cpu,gpu")
|
|
311
|
+
)
|
|
312
|
+
@pytest.mark.parametrize("order", ["F", "C"])
|
|
313
|
+
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
314
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
315
|
+
def test_table_conversions_memory_leaks(dataframe, queue, order, data_shape, dtype):
|
|
316
|
+
func = ORDER_DICT[order]
|
|
317
|
+
|
|
318
|
+
if (
|
|
319
|
+
queue
|
|
320
|
+
and queue.sycl_device.is_gpu
|
|
321
|
+
and (
|
|
322
|
+
os.getenv("ZES_ENABLE_SYSMAN") is None
|
|
323
|
+
or not is_dpctl_device_available(["gpu"])
|
|
324
|
+
)
|
|
325
|
+
):
|
|
326
|
+
pytest.skip("SYCL device memory leak check requires the level zero sysman")
|
|
327
|
+
|
|
328
|
+
_kfold_function_template(
|
|
329
|
+
DummyEstimator,
|
|
330
|
+
dataframe,
|
|
331
|
+
data_shape,
|
|
332
|
+
queue,
|
|
333
|
+
func,
|
|
334
|
+
dtype,
|
|
335
|
+
)
|
|
@@ -42,8 +42,8 @@ def test_monkey_patching():
|
|
|
42
42
|
n = _classes[i][1]
|
|
43
43
|
|
|
44
44
|
class_module = getattr(p, n).__module__
|
|
45
|
-
assert
|
|
46
|
-
"sklearnex"
|
|
45
|
+
assert any(
|
|
46
|
+
class_module.startswith(prefix) for prefix in ["daal4py", "sklearnex"]
|
|
47
47
|
), "Patching has completed with error."
|
|
48
48
|
|
|
49
49
|
for i, _ in enumerate(_tokens):
|
|
@@ -87,8 +87,8 @@ def test_monkey_patching():
|
|
|
87
87
|
sklearnex.patch_sklearn(t)
|
|
88
88
|
|
|
89
89
|
class_module = getattr(p, n).__module__
|
|
90
|
-
assert
|
|
91
|
-
"sklearnex"
|
|
90
|
+
assert any(
|
|
91
|
+
class_module.startswith(prefix) for prefix in ["daal4py", "sklearnex"]
|
|
92
92
|
), "Patching has completed with error."
|
|
93
93
|
finally:
|
|
94
94
|
sklearnex.unpatch_sklearn()
|
|
@@ -255,6 +255,7 @@ def test_preview_namespace():
|
|
|
255
255
|
assert not _is_preview_enabled()
|
|
256
256
|
|
|
257
257
|
lr, pca, dbscan, svc, rfc = get_estimators()
|
|
258
|
+
|
|
258
259
|
if daal_check_version((2023, "P", 100)):
|
|
259
260
|
assert "sklearnex" in lr.__module__
|
|
260
261
|
else:
|
scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2023 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import inspect
|
|
18
|
+
import logging
|
|
19
|
+
from multiprocessing import cpu_count
|
|
20
|
+
|
|
21
|
+
import pytest
|
|
22
|
+
from sklearn.datasets import make_classification
|
|
23
|
+
from sklearn.exceptions import NotFittedError
|
|
24
|
+
|
|
25
|
+
from sklearnex.tests.utils import (
|
|
26
|
+
PATCHED_MODELS,
|
|
27
|
+
SPECIAL_INSTANCES,
|
|
28
|
+
call_method,
|
|
29
|
+
gen_dataset,
|
|
30
|
+
gen_models_info,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
_X, _Y = make_classification(n_samples=40, n_features=4, random_state=42)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _get_estimator_instance(estimator):
|
|
37
|
+
if estimator in PATCHED_MODELS:
|
|
38
|
+
est = PATCHED_MODELS[estimator]()
|
|
39
|
+
elif estimator in SPECIAL_INSTANCES:
|
|
40
|
+
est = SPECIAL_INSTANCES[estimator]
|
|
41
|
+
else:
|
|
42
|
+
raise KeyError(f"{estimator} not in patch_map or SPECIAL_INSTANCES")
|
|
43
|
+
return est
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _check_n_jobs_entry_in_logs(records, function_name, n_jobs):
|
|
47
|
+
expected_n_jobs = max(n_jobs, n_jobs % (cpu_count() + 1)) if n_jobs else cpu_count()
|
|
48
|
+
for rec in records:
|
|
49
|
+
if f"{function_name}: setting {expected_n_jobs} threads" in rec:
|
|
50
|
+
return True
|
|
51
|
+
# False if n_jobs is set and not found in logs
|
|
52
|
+
return n_jobs is None
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@pytest.mark.parametrize("estimator", {**PATCHED_MODELS, **SPECIAL_INSTANCES}.keys())
|
|
56
|
+
def test_n_jobs_documentation(estimator):
|
|
57
|
+
est = _get_estimator_instance(estimator)
|
|
58
|
+
assert "n_jobs" in est.__doc__
|
|
59
|
+
assert "n_jobs" in est.__class__.__doc__
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@pytest.mark.parametrize("estimator", {**PATCHED_MODELS, **SPECIAL_INSTANCES}.keys())
|
|
63
|
+
def test_n_jobs_method_decoration(estimator):
|
|
64
|
+
est = _get_estimator_instance(estimator)
|
|
65
|
+
for func_name, func in vars(est).items():
|
|
66
|
+
# hasattr check necessary due to sklearn's available_if wrapper
|
|
67
|
+
if hasattr(est, func_name) and callable(func):
|
|
68
|
+
assert hasattr(func, "__onedal_n_jobs_decorated__") == (
|
|
69
|
+
func_name in est._n_jobs_supported_onedal_methods
|
|
70
|
+
), f"{est}.{func_name} n_jobs decoration does not match {est} n_jobs supported methods"
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@pytest.mark.parametrize("estimator", {**PATCHED_MODELS, **SPECIAL_INSTANCES}.keys())
|
|
74
|
+
@pytest.mark.parametrize("n_jobs", [None, -1, 1, 2])
|
|
75
|
+
def test_n_jobs_support(estimator, n_jobs, caplog):
|
|
76
|
+
|
|
77
|
+
if estimator == "DummyRegressor":
|
|
78
|
+
pytest.skip("default parameters fall back to sklearn")
|
|
79
|
+
|
|
80
|
+
est = _get_estimator_instance(estimator)
|
|
81
|
+
caplog.set_level(logging.DEBUG, logger="sklearnex")
|
|
82
|
+
|
|
83
|
+
# copy params and modify n_jobs, assumes estimator inherits from BaseEstimator
|
|
84
|
+
# or properly supports get_params and set_params methods as defined by sklearn
|
|
85
|
+
params = est.get_params()
|
|
86
|
+
params["n_jobs"] = n_jobs
|
|
87
|
+
est.set_params(**params)
|
|
88
|
+
|
|
89
|
+
# check `n_jobs` log entry for supported methods
|
|
90
|
+
# `fit` call is required before other methods
|
|
91
|
+
est.fit(_X, _Y)
|
|
92
|
+
messages = [msg.message for msg in caplog.records]
|
|
93
|
+
assert _check_n_jobs_entry_in_logs(messages, "fit", n_jobs)
|
|
94
|
+
|
|
95
|
+
for method_name in est._n_jobs_supported_onedal_methods:
|
|
96
|
+
# do not call fit again, handle sklearn's available_if wrapper
|
|
97
|
+
if method_name == "fit" or (
|
|
98
|
+
"NearestNeighbors" in estimator and "radius" in method_name
|
|
99
|
+
):
|
|
100
|
+
# radius_neighbors and radius_neighbors_graph violate sklearn fallback guard
|
|
101
|
+
# but use sklearnex internally, additional development must be done to those
|
|
102
|
+
# functions to bring them to design compliance.
|
|
103
|
+
continue
|
|
104
|
+
try:
|
|
105
|
+
call_method(est, method_name, _X, _Y)
|
|
106
|
+
except (NotFittedError, AttributeError) as e:
|
|
107
|
+
# handle sklearns available_if wrapper
|
|
108
|
+
continue
|
|
109
|
+
|
|
110
|
+
messages = [msg.message for msg in caplog.records]
|
|
111
|
+
assert _check_n_jobs_entry_in_logs(messages, method_name, n_jobs)
|