scikit-learn-intelex 2025.4.0__py39-none-win_amd64.whl → 2025.5.0__py39-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.

Potentially problematic release.


This version of scikit-learn-intelex might be problematic. Click here for more details.

Files changed (269) hide show
  1. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
  2. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  3. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +1 -1
  4. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
  5. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +855 -0
  6. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
  7. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +99 -91
  8. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  9. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
  10. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
  11. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
  12. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
  13. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
  14. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
  15. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
  16. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
  17. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
  18. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
  19. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
  20. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
  21. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
  22. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
  23. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +2 -2
  24. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
  25. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
  26. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
  27. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
  28. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
  29. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
  30. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
  31. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
  32. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_device_offload.py +79 -83
  33. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  34. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  35. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
  36. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
  37. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
  38. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
  39. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
  40. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
  41. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
  42. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
  43. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
  44. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
  45. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
  46. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
  47. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
  48. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
  49. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
  50. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
  51. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
  52. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
  53. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
  54. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
  55. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
  56. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
  57. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
  58. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
  59. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
  60. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
  61. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
  62. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
  63. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
  64. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -13
  65. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -1
  66. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
  67. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +147 -0
  68. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
  69. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
  70. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
  71. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  72. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
  73. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +143 -0
  74. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_utils.py +28 -2
  75. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +13 -20
  76. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +34 -40
  77. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +6 -8
  78. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +2 -6
  79. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +42 -60
  80. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +7 -17
  81. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
  82. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
  83. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +106 -362
  84. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  85. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
  86. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +6 -6
  87. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +41 -126
  88. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +42 -85
  89. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +48 -39
  90. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +34 -71
  91. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +14 -18
  92. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +60 -1
  93. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +2 -2
  94. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +2 -3
  95. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
  96. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
  97. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
  98. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
  99. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +3 -3
  100. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
  101. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
  102. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
  103. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -13
  104. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +48 -62
  105. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +10 -3
  106. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +8 -4
  107. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +13 -2
  108. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +10 -3
  109. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
  110. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +13 -2
  111. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +9 -2
  112. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +7 -2
  113. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +25 -8
  114. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +6 -2
  115. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -3
  116. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +12 -5
  117. {scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
  118. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +27 -5
  119. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +12 -25
  120. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +35 -128
  121. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +9 -21
  122. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +33 -126
  123. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +9 -21
  124. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +26 -11
  125. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +16 -23
  126. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
  127. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
  128. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
  129. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/METADATA +2 -2
  130. scikit_learn_intelex-2025.5.0.dist-info/RECORD +257 -0
  131. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  132. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  133. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  134. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
  135. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
  136. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
  137. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
  138. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
  139. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
  140. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  141. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
  142. scikit_learn_intelex-2025.4.0.dist-info/RECORD +0 -259
  143. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  144. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  145. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  147. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  150. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  152. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  153. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  154. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  155. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  156. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  157. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  158. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  160. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  161. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  162. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  163. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  164. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  165. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  166. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  167. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  168. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  169. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  170. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  171. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  172. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  173. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  174. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  175. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  176. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  177. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  178. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  179. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  180. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  181. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  182. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  183. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  184. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  185. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  186. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  187. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  189. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  190. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  191. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  192. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  193. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  194. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  195. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  196. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  197. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  198. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  199. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  200. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  201. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  202. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  203. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  204. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  206. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  207. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  208. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  209. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  210. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  211. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  213. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  214. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  215. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  217. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  218. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  219. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  220. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  221. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  223. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  224. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  225. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  227. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  228. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  229. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  231. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  232. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  233. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  234. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  235. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  237. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  238. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  240. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  241. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  242. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  243. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  244. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  246. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  247. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  249. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  250. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  251. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  252. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  253. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  254. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  255. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  256. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  257. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  258. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  259. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -0
  260. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  261. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  262. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  263. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  264. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  265. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  266. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  267. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/LICENSE.txt +0 -0
  268. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/WHEEL +0 -0
  269. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/top_level.txt +0 -0
@@ -34,6 +34,7 @@ import daal4py as d4p
34
34
 
35
35
  from .._n_jobs_support import control_n_jobs
36
36
  from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
37
+ from ..utils.validation import check_feature_names
37
38
  from .logistic_loss import (
38
39
  _daal4py_cross_entropy_loss_extra_args,
39
40
  _daal4py_grad_,
@@ -793,8 +794,7 @@ def daal4py_fit(self, X, y, sample_weight=None):
793
794
 
794
795
  def daal4py_predict(self, X, resultsToEvaluate):
795
796
  check_is_fitted(self)
796
- if sklearn_check_version("1.0"):
797
- self._check_feature_names(X, reset=False)
797
+ check_feature_names(self, X, reset=False)
798
798
  X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
799
799
  try:
800
800
  fptype = getFPType(X)
@@ -1005,8 +1005,7 @@ class LogisticRegression(LogisticRegression_original):
1005
1005
  self.l1_ratio = l1_ratio
1006
1006
 
1007
1007
  def fit(self, X, y, sample_weight=None):
1008
- if sklearn_check_version("1.0"):
1009
- self._check_feature_names(X, reset=True)
1008
+ check_feature_names(self, X, reset=True)
1010
1009
  if sklearn_check_version("1.2"):
1011
1010
  self._validate_params()
1012
1011
  return daal4py_fit(self, X, y, sample_weight)
@@ -37,6 +37,7 @@ from daal4py.sklearn._utils import (
37
37
 
38
38
  from .._n_jobs_support import control_n_jobs
39
39
  from ..neighbors import NearestNeighbors
40
+ from ..utils.validation import validate_data
40
41
 
41
42
 
42
43
  @control_n_jobs(decorated_methods=["fit"])
@@ -183,15 +184,19 @@ class TSNE(BaseTSNE):
183
184
  )
184
185
 
185
186
  if self.method == "barnes_hut":
186
- X = self._validate_data(
187
+ X = validate_data(
188
+ self,
187
189
  X,
188
190
  accept_sparse=["csr"],
189
191
  ensure_min_samples=2,
190
192
  dtype=[np.float32, np.float64],
191
193
  )
192
194
  else:
193
- X = self._validate_data(
194
- X, accept_sparse=["csr", "csc", "coo"], dtype=[np.float32, np.float64]
195
+ X = validate_data(
196
+ self,
197
+ X,
198
+ accept_sparse=["csr", "csc", "coo"],
199
+ dtype=[np.float32, np.float64],
195
200
  )
196
201
 
197
202
  if self.metric == "precomputed":
@@ -107,9 +107,14 @@ def _pairwise_distances(
107
107
  return _daal4py_correlation_distance_dense(X)
108
108
  raise ValueError(f"'{metric}' distance is wrong for daal4py.")
109
109
  if metric == "precomputed":
110
- X, _ = check_pairwise_arrays(
111
- X, Y, precomputed=True, force_all_finite=force_all_finite
112
- )
110
+ if sklearn_check_version("1.6"):
111
+ X, _ = check_pairwise_arrays(
112
+ X, Y, precomputed=True, ensure_all_finite=force_all_finite
113
+ )
114
+ else:
115
+ X, _ = check_pairwise_arrays(
116
+ X, Y, precomputed=True, force_all_finite=force_all_finite
117
+ )
113
118
  whom = (
114
119
  "`pairwise_distances`. Precomputed distance "
115
120
  " need to have non-negative values."
@@ -119,9 +124,20 @@ def _pairwise_distances(
119
124
  if metric in PAIRWISE_DISTANCE_FUNCTIONS:
120
125
  func = PAIRWISE_DISTANCE_FUNCTIONS[metric]
121
126
  elif callable(metric):
122
- func = partial(
123
- _pairwise_callable, metric=metric, force_all_finite=force_all_finite, **kwds
124
- )
127
+ if sklearn_check_version("1.6"):
128
+ func = partial(
129
+ _pairwise_callable,
130
+ metric=metric,
131
+ ensure_all_finite=force_all_finite,
132
+ **kwds,
133
+ )
134
+ else:
135
+ func = partial(
136
+ _pairwise_callable,
137
+ metric=metric,
138
+ force_all_finite=force_all_finite,
139
+ **kwds,
140
+ )
125
141
  else:
126
142
  if issparse(X) or issparse(Y):
127
143
  raise TypeError("scipy distance metrics do not" " support sparse matrices.")
@@ -132,7 +148,14 @@ def _pairwise_distances(
132
148
  msg = "Data was converted to boolean for metric %s" % metric
133
149
  warnings.warn(msg, DataConversionWarning)
134
150
 
135
- X, Y = check_pairwise_arrays(X, Y, dtype=dtype, force_all_finite=force_all_finite)
151
+ if sklearn_check_version("1.6"):
152
+ X, Y = check_pairwise_arrays(
153
+ X, Y, dtype=dtype, ensure_all_finite=force_all_finite
154
+ )
155
+ else:
156
+ X, Y = check_pairwise_arrays(
157
+ X, Y, dtype=dtype, force_all_finite=force_all_finite
158
+ )
136
159
 
137
160
  # precompute data-derived metric params
138
161
  params = _precompute_metric_params(X, Y, metric=metric, **kwds)
@@ -171,7 +171,7 @@ def enable(name=None, verbose=True, deprecation=True, get_map=_get_map_of_algori
171
171
  warnings.warn_explicit(
172
172
  "\nScikit-learn patching with daal4py is deprecated "
173
173
  "and will be removed in the future.\n"
174
- "Use Intel(R) Extension "
174
+ "Use Extension "
175
175
  "for Scikit-learn* module instead "
176
176
  "(pip install scikit-learn-intelex).\n"
177
177
  "To enable patching, please use one of the "
@@ -187,7 +187,7 @@ def enable(name=None, verbose=True, deprecation=True, get_map=_get_map_of_algori
187
187
  )
188
188
  if verbose and deprecation and sys.stderr is not None:
189
189
  sys.stderr.write(
190
- "Intel(R) oneAPI Data Analytics Library solvers for sklearn enabled: "
190
+ "oneAPI Data Analytics Library solvers for sklearn enabled: "
191
191
  "https://intelpython.github.io/daal4py/sklearn.html\n"
192
192
  )
193
193
 
@@ -40,6 +40,7 @@ from .._utils import (
40
40
  getFPType,
41
41
  sklearn_check_version,
42
42
  )
43
+ from ..utils.validation import check_feature_names, check_n_features, get_requires_y_tag
43
44
 
44
45
  if not sklearn_check_version("1.2"):
45
46
  from sklearn.neighbors._base import _check_weights
@@ -239,10 +240,7 @@ def validate_data(
239
240
  estimator, X, y=None, reset=True, validate_separately=False, **check_params
240
241
  ):
241
242
  if y is None:
242
- try:
243
- requires_y = estimator._get_tags()["requires_y"]
244
- except KeyError:
245
- requires_y = False
243
+ requires_y = get_requires_y_tag(estimator)
246
244
 
247
245
  if requires_y:
248
246
  raise ValueError(
@@ -265,7 +263,7 @@ def validate_data(
265
263
  out = X, y
266
264
 
267
265
  if check_params.get("ensure_2d", True):
268
- estimator._check_n_features(X, reset=reset)
266
+ check_n_features(estimator, X, reset=reset)
269
267
 
270
268
  return out
271
269
 
@@ -304,15 +302,10 @@ class NeighborsBase(BaseNeighborsBase):
304
302
  stacklevel=2,
305
303
  )
306
304
 
307
- if (
308
- hasattr(self, "weights")
309
- and sklearn_check_version("1.0")
310
- and not sklearn_check_version("1.2")
311
- ):
305
+ if hasattr(self, "weights") and not sklearn_check_version("1.2"):
312
306
  self.weights = _check_weights(self.weights)
313
307
 
314
- if sklearn_check_version("1.0"):
315
- self._check_feature_names(X, reset=True)
308
+ check_feature_names(self, X, reset=True)
316
309
 
317
310
  X_incorrect_type = isinstance(
318
311
  X, (KDTree, BallTree, NeighborsBase, BaseNeighborsBase)
@@ -322,10 +315,7 @@ class NeighborsBase(BaseNeighborsBase):
322
315
  shape = None
323
316
  correct_n_classes = True
324
317
 
325
- try:
326
- requires_y = self._get_tags()["requires_y"]
327
- except KeyError:
328
- requires_y = False
318
+ requires_y = get_requires_y_tag(self)
329
319
 
330
320
  if y is not None or requires_y:
331
321
  if not X_incorrect_type or y is None:
@@ -25,6 +25,7 @@ from sklearn.neighbors._classification import (
25
25
  from sklearn.utils.validation import check_array
26
26
 
27
27
  from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
28
+ from ..utils.validation import check_feature_names
28
29
  from ._base import KNeighborsMixin, NeighborsBase, parse_auto_method, prediction_algorithm
29
30
 
30
31
  if not sklearn_check_version("1.2"):
@@ -34,8 +35,7 @@ from sklearn.utils.validation import _deprecate_positional_args
34
35
 
35
36
 
36
37
  def daal4py_classifier_predict(estimator, X, base_predict):
37
- if sklearn_check_version("1.0"):
38
- estimator._check_feature_names(X, reset=False)
38
+ check_feature_names(estimator, X, reset=False)
39
39
  X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
40
40
  daal_model = getattr(estimator, "_daal_model", None)
41
41
  n_features = getattr(estimator, "n_features_in_", None)
@@ -119,9 +119,7 @@ class KNeighborsClassifier(KNeighborsMixin, BaseClassifierMixin, NeighborsBase):
119
119
  n_jobs=n_jobs,
120
120
  **kwargs,
121
121
  )
122
- self.weights = (
123
- weights if sklearn_check_version("1.0") else _check_weights(weights)
124
- )
122
+ self.weights = weights
125
123
 
126
124
  def fit(self, X, y):
127
125
  return NeighborsBase._fit(self, X, y)
@@ -130,8 +128,7 @@ class KNeighborsClassifier(KNeighborsMixin, BaseClassifierMixin, NeighborsBase):
130
128
  return daal4py_classifier_predict(self, X, BaseKNeighborsClassifier.predict)
131
129
 
132
130
  def predict_proba(self, X):
133
- if sklearn_check_version("1.0"):
134
- self._check_feature_names(X, reset=False)
131
+ check_feature_names(self, X, reset=False)
135
132
  return BaseKNeighborsClassifier.predict_proba(self, X)
136
133
 
137
134
  fit.__doc__ = BaseKNeighborsClassifier.fit.__doc__
@@ -20,6 +20,7 @@ from sklearn.base import RegressorMixin
20
20
  from sklearn.neighbors._regression import KNeighborsRegressor as BaseKNeighborsRegressor
21
21
 
22
22
  from .._utils import sklearn_check_version
23
+ from ..utils.validation import check_feature_names
23
24
  from ._base import KNeighborsMixin, NeighborsBase
24
25
 
25
26
  if not sklearn_check_version("1.2"):
@@ -55,9 +56,7 @@ class KNeighborsRegressor(KNeighborsMixin, RegressorMixin, NeighborsBase):
55
56
  n_jobs=n_jobs,
56
57
  **kwargs,
57
58
  )
58
- self.weights = (
59
- weights if sklearn_check_version("1.0") else _check_weights(weights)
60
- )
59
+ self.weights = weights
61
60
 
62
61
  def _more_tags(self):
63
62
  return BaseKNeighborsRegressor._more_tags(self)
@@ -66,8 +65,7 @@ class KNeighborsRegressor(KNeighborsMixin, RegressorMixin, NeighborsBase):
66
65
  return NeighborsBase._fit(self, X, y)
67
66
 
68
67
  def predict(self, X):
69
- if sklearn_check_version("1.0"):
70
- self._check_feature_names(X, reset=False)
68
+ check_feature_names(self, X, reset=False)
71
69
  return BaseKNeighborsRegressor.predict(self, X)
72
70
 
73
71
  fit.__doc__ = BaseKNeighborsRegressor.fit.__doc__
@@ -35,6 +35,7 @@ from sklearn.utils.validation import (
35
35
  import daal4py
36
36
 
37
37
  from .._utils import PatchingConditionsChain, getFPType, make2d
38
+ from ..utils.validation import validate_data
38
39
 
39
40
 
40
41
  def _get_libsvm_impl():
@@ -421,7 +422,8 @@ def fit(self, X, y, sample_weight=None):
421
422
  if callable(self.kernel):
422
423
  check_consistent_length(X, y)
423
424
  else:
424
- X, y = self._validate_data(
425
+ X, y = validate_data(
426
+ self,
425
427
  X,
426
428
  y,
427
429
  dtype=np.float64,
@@ -568,7 +570,7 @@ def _daal4py_predict(self, X, is_decision_function=False):
568
570
  res = -predictionRes.decisionFunction
569
571
 
570
572
  if num_classes == 2 and not is_decision_function:
571
- # Convert from Intel(R) oneAPI Data Analytics Library format back to
573
+ # Convert from oneAPI Data Analytics Library format back to
572
574
  # original classes
573
575
  np.greater(res, 0, out=res)
574
576
 
@@ -14,7 +14,12 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from .validation import _daal_check_array, _daal_check_X_y
17
+ from .validation import (
18
+ _daal_check_array,
19
+ _daal_check_X_y,
20
+ check_n_features,
21
+ get_requires_y_tag,
22
+ )
18
23
 
19
24
 
20
25
  def _daal_validate_data(
@@ -50,7 +55,7 @@ def _daal_validate_data(
50
55
  """
51
56
 
52
57
  if y is None:
53
- if self._get_tags()["requires_y"]:
58
+ if get_requires_y_tag(self):
54
59
  raise ValueError(
55
60
  f"This {self.__class__.__name__} estimator "
56
61
  f"requires y to be passed, but the target y is None."
@@ -71,5 +76,5 @@ def _daal_validate_data(
71
76
  out = X, y
72
77
 
73
78
  if check_params.get("ensure_2d", True):
74
- self._check_n_features(X, reset=reset)
79
+ check_n_features(self, X, reset=reset)
75
80
  return out
@@ -16,6 +16,7 @@
16
16
 
17
17
  import warnings
18
18
  from contextlib import suppress
19
+ from functools import wraps
19
20
 
20
21
  import numpy as np
21
22
  import scipy.sparse as sp
@@ -49,6 +50,19 @@ from .._utils import (
49
50
  sklearn_check_version,
50
51
  )
51
52
 
53
+ if sklearn_check_version("1.6"):
54
+ from sklearn.utils.validation import (
55
+ _check_feature_names as _sklearn_check_feature_names,
56
+ )
57
+ from sklearn.utils.validation import _check_n_features as _sklearn_check_n_features
58
+ from sklearn.utils.validation import validate_data as _sklearn_validate_data
59
+ else:
60
+ from sklearn.base import BaseEstimator
61
+
62
+ _sklearn_validate_data = BaseEstimator._validate_data
63
+ _sklearn_check_feature_names = BaseEstimator._check_feature_names
64
+ _sklearn_check_n_features = BaseEstimator._check_n_features
65
+
52
66
 
53
67
  def _assert_all_finite(
54
68
  X, allow_nan=False, msg_dtype=None, estimator_name=None, input_name=""
@@ -394,13 +408,19 @@ def _daal_check_array(
394
408
 
395
409
  if sp.issparse(array):
396
410
  _ensure_no_complex_data(array)
411
+ kwargs = {
412
+ "accept_sparse": accept_sparse,
413
+ "dtype": dtype,
414
+ "copy": copy,
415
+ "accept_large_sparse": accept_large_sparse,
416
+ }
417
+ if sklearn_check_version("1.6"):
418
+ kwargs["ensure_all_finite"] = force_all_finite
419
+ else:
420
+ kwargs["force_all_finite"] = force_all_finite
397
421
  array = _ensure_sparse_format(
398
422
  array,
399
- accept_sparse=accept_sparse,
400
- dtype=dtype,
401
- copy=copy,
402
- force_all_finite=force_all_finite,
403
- accept_large_sparse=accept_large_sparse,
423
+ **kwargs,
404
424
  )
405
425
  else:
406
426
  # If np.array(..) gives ComplexWarning, then we convert the warning
@@ -694,3 +714,60 @@ def _daal_num_features(X):
694
714
  return len(first_sample)
695
715
  except Exception as err:
696
716
  raise TypeError(message) from err
717
+
718
+
719
+ def get_requires_y_tag(estimator):
720
+ """Gets the value of the 'requires_y' tag from the estimator
721
+ using correct code path depending on the scikit-learn version."""
722
+ if sklearn_check_version("1.6"):
723
+ requires_y = estimator.__sklearn_tags__().target_tags.required
724
+ else:
725
+ try:
726
+ requires_y = estimator._get_tags()["requires_y"]
727
+ except KeyError:
728
+ requires_y = False
729
+ return requires_y
730
+
731
+
732
+ def add_dispatcher_docstring(original_function):
733
+ """Adds a note about the dispatcher function to the docstring of the original function."""
734
+
735
+ def wrapper(dispatcher_function):
736
+ @wraps(
737
+ original_function,
738
+ ["__name__", "__doc__", "__annotations__", "__type_params__"],
739
+ )
740
+ def new_function(*args, **kwargs):
741
+ return dispatcher_function(*args, **kwargs)
742
+
743
+ new_function.__doc__ = (
744
+ f"Sklearnex dispatcher for '{original_function.__qualname__}' "
745
+ f"from '{original_function.__module__}' module supporting "
746
+ "it's multiple implementations from different scikit-learn versions.\n\n"
747
+ + original_function.__doc__
748
+ )
749
+
750
+ return new_function
751
+
752
+ return wrapper
753
+
754
+
755
+ # simplified copy of similar function from sklearnex.utils.validation,
756
+ # ensures that the correct finiteness check argument is used
757
+ @add_dispatcher_docstring(_sklearn_validate_data)
758
+ def validate_data(*args, **kwargs):
759
+ if not sklearn_check_version("1.6") and "ensure_all_finite" in kwargs:
760
+ kwargs["force_all_finite"] = kwargs.pop("ensure_all_finite")
761
+ return _sklearn_validate_data(*args, **kwargs)
762
+
763
+
764
+ # dispatcher functions which use correct `check_feature_names`/`check_n_features` import
765
+ # depending on the scikit-learn version
766
+ @add_dispatcher_docstring(_sklearn_check_feature_names)
767
+ def check_feature_names(*args, **kwargs):
768
+ _sklearn_check_feature_names(*args, **kwargs)
769
+
770
+
771
+ @add_dispatcher_docstring(_sklearn_check_n_features)
772
+ def check_n_features(*args, **kwargs):
773
+ _sklearn_check_n_features(*args, **kwargs)
@@ -1,83 +1,125 @@
1
- # ==============================================================================
2
- # Copyright 2021 Intel Corporation
3
- # Copyright 2024 Fujitsu Limited
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- # ==============================================================================
17
-
18
- import platform
19
-
20
- from daal4py.sklearn._utils import daal_check_version
21
-
22
- if "Windows" in platform.system():
23
- import os
24
- import site
25
- import sys
26
-
27
- arch_dir = platform.machine()
28
- plt_dict = {"x86_64": "intel64", "AMD64": "intel64", "aarch64": "arm"}
29
- arch_dir = plt_dict[arch_dir] if arch_dir in plt_dict else arch_dir
30
- path_to_env = site.getsitepackages()[0]
31
- path_to_libs = os.path.join(path_to_env, "Library", "bin")
32
- if sys.version_info.minor >= 8:
33
- if "DALROOT" in os.environ:
34
- dal_root_redist = os.path.join(os.environ["DALROOT"], "redist", arch_dir)
35
- if os.path.exists(dal_root_redist):
36
- os.add_dll_directory(dal_root_redist)
37
- try:
38
- os.add_dll_directory(path_to_libs)
39
- except FileNotFoundError:
40
- pass
41
- os.environ["PATH"] = path_to_libs + os.pathsep + os.environ["PATH"]
42
-
43
- try:
44
- import onedal._onedal_py_dpc as _backend
45
-
46
- _is_dpc_backend = True
47
- except ImportError:
48
- import onedal._onedal_py_host as _backend
49
-
50
- _is_dpc_backend = False
51
-
52
- _is_spmd_backend = False
53
-
54
- if _is_dpc_backend:
55
- try:
56
- import onedal._onedal_py_spmd_dpc as _spmd_backend
57
-
58
- _is_spmd_backend = True
59
- except ImportError:
60
- _is_spmd_backend = False
61
-
62
-
63
- __all__ = ["covariance", "decomposition", "ensemble", "neighbors", "primitives", "svm"]
64
-
65
- if _is_spmd_backend:
66
- __all__.append("spmd")
67
-
68
- if daal_check_version((2023, "P", 100)):
69
- __all__ += ["basic_statistics", "linear_model"]
70
-
71
- if _is_spmd_backend:
72
- __all__ += [
73
- "spmd.basic_statistics",
74
- "spmd.decomposition",
75
- "spmd.linear_model",
76
- "spmd.neighbors",
77
- ]
78
-
79
- if daal_check_version((2023, "P", 200)):
80
- __all__ += ["cluster"]
81
-
82
- if _is_spmd_backend:
83
- __all__ += ["spmd.cluster"]
1
+ # ==============================================================================
2
+ # Copyright 2021 Intel Corporation
3
+ # Copyright 2024 Fujitsu Limited
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ # ==============================================================================
17
+
18
+ import platform
19
+
20
+ from daal4py.sklearn._utils import daal_check_version
21
+
22
+
23
+ class Backend:
24
+ """Encapsulates the oneDAL pybind11 modules and provides a unified interface to it together with additional properties about dpc/spmd policies"""
25
+
26
+ def __init__(self, backend_module, is_dpc, is_spmd):
27
+ self.backend = backend_module
28
+ self.is_dpc = is_dpc
29
+ self.is_spmd = is_spmd
30
+
31
+ # accessing the instance will return the backend_module
32
+ def __getattr__(self, name):
33
+ return getattr(self.backend, name)
34
+
35
+ def __repr__(self) -> str:
36
+ return f"Backend({self.backend}, is_dpc={self.is_dpc}, is_spmd={self.is_spmd})"
37
+
38
+
39
+ if "Windows" in platform.system():
40
+ import os
41
+ import site
42
+ import sys
43
+
44
+ arch_dir = platform.machine()
45
+ plt_dict = {"x86_64": "intel64", "AMD64": "intel64", "aarch64": "arm"}
46
+ arch_dir = plt_dict[arch_dir] if arch_dir in plt_dict else arch_dir
47
+ path_to_env = site.getsitepackages()[0]
48
+ path_to_libs = os.path.join(path_to_env, "Library", "bin")
49
+ if sys.version_info.minor >= 8:
50
+ if "DALROOT" in os.environ:
51
+ dal_root_redist = os.path.join(os.environ["DALROOT"], "redist", arch_dir)
52
+ if os.path.exists(dal_root_redist):
53
+ os.add_dll_directory(dal_root_redist)
54
+ try:
55
+ os.add_dll_directory(path_to_libs)
56
+ except FileNotFoundError:
57
+ pass
58
+ os.environ["PATH"] = path_to_libs + os.pathsep + os.environ["PATH"]
59
+
60
+
61
+ try:
62
+ # use dpc backend if available
63
+ import onedal._onedal_py_dpc
64
+
65
+ _dpc_backend = Backend(onedal._onedal_py_dpc, is_dpc=True, is_spmd=False)
66
+
67
+ _host_backend = None
68
+ except ImportError:
69
+ # fall back to host backend
70
+ _dpc_backend = None
71
+
72
+ import onedal._onedal_py_host
73
+
74
+ _host_backend = Backend(onedal._onedal_py_host, is_dpc=False, is_spmd=False)
75
+
76
+ try:
77
+ # also load spmd backend if available
78
+ import onedal._onedal_py_spmd_dpc
79
+
80
+ _spmd_backend = Backend(onedal._onedal_py_spmd_dpc, is_dpc=True, is_spmd=True)
81
+ except ImportError:
82
+ _spmd_backend = None
83
+
84
+ # if/elif/else layout required for pylint to realize _default_backend cannot be None
85
+ if _dpc_backend is not None:
86
+ _default_backend = _dpc_backend
87
+ elif _host_backend is not None:
88
+ _default_backend = _host_backend
89
+ else:
90
+ raise ImportError("No oneDAL backend available")
91
+
92
+ # Core modules to export
93
+ __all__ = [
94
+ "_host_backend",
95
+ "_default_backend",
96
+ "_dpc_backend",
97
+ "_spmd_backend",
98
+ "covariance",
99
+ "decomposition",
100
+ "ensemble",
101
+ "neighbors",
102
+ "primitives",
103
+ "svm",
104
+ ]
105
+
106
+ # Additional features based on version checks
107
+ if daal_check_version((2023, "P", 100)):
108
+ __all__ += ["basic_statistics", "linear_model"]
109
+ if daal_check_version((2023, "P", 200)):
110
+ __all__ += ["cluster"]
111
+
112
+ # Exports if SPMD backend is available
113
+ if _spmd_backend is not None:
114
+ __all__ += ["spmd"]
115
+ if daal_check_version((2023, "P", 100)):
116
+ __all__ += [
117
+ "spmd.basic_statistics",
118
+ "spmd.decomposition",
119
+ "spmd.linear_model",
120
+ "spmd.neighbors",
121
+ ]
122
+ if daal_check_version((2023, "P", 200)):
123
+ __all__ += ["spmd.cluster"]
124
+
125
+ __version__ = "2021.6"