scikit-learn-intelex 2025.5.0__py39-none-win_amd64.whl → 2025.6.1__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 (262) hide show
  1. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +119 -52
  3. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +31 -16
  4. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  5. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +2 -2
  6. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +7 -1
  7. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +1 -1
  8. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +1 -1
  9. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/_device_offload.py +11 -3
  10. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  11. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  12. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/ensemble/forest.py +3 -1
  13. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +2 -0
  14. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/utils/_array_api.py +17 -2
  15. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +16 -2
  16. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
  17. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/_utils.py +12 -45
  18. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  19. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +3 -2
  20. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +3 -6
  21. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +4 -3
  22. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +18 -13
  23. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +10 -5
  24. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +2 -3
  25. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +5 -4
  26. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +12 -0
  27. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +2 -2
  28. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +3 -8
  29. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +3 -7
  30. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +11 -13
  31. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +3 -2
  32. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +6 -3
  33. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +3 -2
  34. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -6
  35. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +3 -6
  36. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/_common.py +3 -3
  37. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
  38. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +1 -1
  39. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
  40. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/svr.py +1 -1
  41. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +25 -0
  42. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
  43. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +3 -2
  44. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
  45. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
  46. {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.1.dist-info}/METADATA +2 -3
  47. scikit_learn_intelex-2025.6.1.dist-info/RECORD +257 -0
  48. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  49. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
  50. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  51. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -143
  52. scikit_learn_intelex-2025.5.0.dist-info/RECORD +0 -257
  53. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  54. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  55. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
  56. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
  57. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  58. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  59. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  60. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  61. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  62. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  63. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  64. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  65. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  66. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  67. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  68. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  69. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  70. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  71. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  72. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  73. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  74. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  75. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  76. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  77. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
  78. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  79. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  80. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  81. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  82. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  83. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  84. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  85. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  86. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  87. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  88. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  89. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  90. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  91. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  92. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  93. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  94. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  95. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  96. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  97. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  98. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  99. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  100. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  101. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  102. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  103. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +0 -0
  104. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  105. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  106. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  107. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -0
  108. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +0 -0
  109. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  110. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  111. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  112. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  113. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
  114. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +0 -0
  115. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
  116. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  117. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  118. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  119. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
  120. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  121. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  122. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
  123. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +0 -0
  124. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  125. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/covariance/covariance.py +0 -0
  126. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +0 -0
  127. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  128. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  129. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  130. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -0
  131. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  132. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +0 -0
  133. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  134. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +0 -0
  135. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/decomposition/pca.py +0 -0
  136. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
  137. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  138. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  139. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  140. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -0
  141. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -0
  142. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +0 -0
  143. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  144. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  145. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  146. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  147. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  148. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
  150. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  151. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  152. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  153. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
  154. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  155. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  156. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
  157. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  158. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  159. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  160. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  161. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  162. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  163. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  164. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -0
  165. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
  166. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
  167. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  168. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  169. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
  170. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  171. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  172. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  173. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  175. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  176. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  177. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  178. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  179. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  180. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  181. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/dispatcher.py +0 -0
  182. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  183. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  184. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  185. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  186. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  187. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  189. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  190. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
  191. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
  192. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  193. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  194. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  195. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  196. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  197. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  198. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  199. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  200. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  201. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  202. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  203. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  204. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  205. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  206. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  207. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  208. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  209. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  210. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  211. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  213. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  214. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  215. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  216. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  217. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
  218. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
  219. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  221. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  222. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  223. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  224. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  225. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  226. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  227. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
  228. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
  229. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  231. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  232. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
  233. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
  234. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  235. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  236. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  237. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  238. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  239. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  240. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  241. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
  242. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  243. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
  244. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
  246. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  248. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  249. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  250. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  251. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  252. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  253. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +0 -0
  254. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  255. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  256. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  257. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  258. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  259. {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.1.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  260. {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.1.dist-info}/LICENSE.txt +0 -0
  261. {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.1.dist-info}/WHEEL +0 -0
  262. {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.1.dist-info}/top_level.txt +0 -0
@@ -26,6 +26,11 @@ else:
26
26
 
27
27
  SyclQueue = getattr(_dpc_backend, "SyclQueue", None)
28
28
 
29
+ # This special object signifies that the queue system should be
30
+ # disabled. It will force computation to host. This occurs when the
31
+ # global queue is set to this value (and therefore should not be
32
+ # modified).
33
+ __fallback_queue = object()
29
34
  # single instance of global queue
30
35
  __global_queue = None
31
36
 
@@ -46,8 +51,11 @@ def __create_sycl_queue(target):
46
51
  def get_global_queue():
47
52
  """Get the global queue. Retrieve it from the config if not set."""
48
53
  if (queue := __global_queue) is not None:
49
- if SyclQueue and not isinstance(queue, SyclQueue):
50
- raise ValueError("Global queue is not a SyclQueue object.")
54
+ if SyclQueue:
55
+ if queue is __fallback_queue:
56
+ return None
57
+ elif not isinstance(queue, SyclQueue):
58
+ raise ValueError("Global queue is not a SyclQueue object.")
51
59
  return queue
52
60
 
53
61
  target = _get_config()["target_offload"]
@@ -73,6 +81,12 @@ def update_global_queue(queue):
73
81
  __global_queue = queue
74
82
 
75
83
 
84
+ def fallback_to_host():
85
+ """Enforce a host queue."""
86
+ global __global_queue
87
+ __global_queue = __fallback_queue
88
+
89
+
76
90
  def from_data(*data):
77
91
  """Extract the queue from provided data. This updates the global queue as well."""
78
92
  for item in data:
@@ -0,0 +1,194 @@
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
+ from collections.abc import Callable
18
+ from functools import wraps
19
+ from typing import Any, Union
20
+
21
+ from onedal._device_offload import _copy_to_usm, _transfer_to_host
22
+ from onedal.utils import _sycl_queue_manager as QM
23
+ from onedal.utils._array_api import _asarray, _is_numpy_namespace
24
+ from onedal.utils._dpep_helpers import dpnp_available
25
+
26
+ if dpnp_available:
27
+ import dpnp
28
+ from onedal.utils._array_api import _convert_to_dpnp
29
+
30
+ from ._config import config_context, get_config, set_config
31
+ from ._utils import PatchingConditionsChain, get_tags
32
+ from .base import oneDALEstimator
33
+
34
+
35
+ def _get_backend(
36
+ obj: type[oneDALEstimator], method_name: str, *data
37
+ ) -> tuple[Union[bool, None], PatchingConditionsChain]:
38
+ """This function verifies the hardware conditions, data characteristics, and
39
+ estimator parameters necessary for offloading computation to oneDAL. The status
40
+ of this patching is returned as a PatchingConditionsChain object along with a
41
+ boolean flag signaling whether the computation can be offloaded to oneDAL or not.
42
+ It is assumed that the queue (which determined what hardware to possibly use for
43
+ oneDAL) has been previously and extensively collected (i.e. the data has already
44
+ been checked using onedal's SyclQueueManager for queues)."""
45
+ queue = QM.get_global_queue()
46
+ cpu_device = queue is None or getattr(queue.sycl_device, "is_cpu", True)
47
+ gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
48
+
49
+ if cpu_device:
50
+ patching_status = obj._onedal_cpu_supported(method_name, *data)
51
+ return patching_status.get_status(), patching_status
52
+
53
+ if gpu_device:
54
+ patching_status = obj._onedal_gpu_supported(method_name, *data)
55
+ if (
56
+ not patching_status.get_status()
57
+ and (config := get_config())["allow_fallback_to_host"]
58
+ ):
59
+ QM.fallback_to_host()
60
+ return None, patching_status
61
+ return patching_status.get_status(), patching_status
62
+
63
+ raise RuntimeError("Device support is not implemented for the supplied data type.")
64
+
65
+
66
+ if "array_api_dispatch" in get_config():
67
+ _array_api_offload = lambda: get_config()["array_api_dispatch"]
68
+ else:
69
+ _array_api_offload = lambda: False
70
+
71
+
72
+ def dispatch(
73
+ obj: type[oneDALEstimator],
74
+ method_name: str,
75
+ branches: dict[Callable, Callable],
76
+ *args,
77
+ **kwargs,
78
+ ) -> Any:
79
+ """Dispatch object method call to oneDAL if conditionally possible.
80
+ Depending on support conditions, oneDAL will be called, otherwise it will
81
+ fall back to calling scikit-learn. Dispatching to oneDAL can be influenced
82
+ by the 'use_raw_input' or 'allow_fallback_to_host' config parameters.
83
+
84
+ Parameters
85
+ ----------
86
+ obj : object
87
+ sklearnex object which inherits from oneDALEstimator and contains
88
+ ``onedal_cpu_supported`` and ``onedal_gpu_supported`` methods which
89
+ evaluate oneDAL support.
90
+
91
+ method_name : string
92
+ name of method to be evaluated for oneDAL support
93
+
94
+ branches : dict
95
+ dictionary containing functions to be called. Only keys 'sklearn' and
96
+ 'onedal' are used which should contain the relevant scikit-learn and
97
+ onedal object methods respectively. All functions should accept the
98
+ inputs from *args and **kwargs. Additionally, the onedal object method
99
+ must accept a 'queue' keyword.
100
+
101
+ *args : tuple
102
+ arguments to be supplied to the dispatched method
103
+
104
+ **kwargs : dict
105
+ keyword arguments to be supplied to the dispatched method
106
+
107
+ Returns
108
+ -------
109
+ unknown : object
110
+ Returned object dependent on the supplied branches. Implicitly the returned
111
+ object types should match for the sklearn and onedal object methods.
112
+ """
113
+
114
+ if get_config()["use_raw_input"]:
115
+ return branches["onedal"](obj, *args, **kwargs)
116
+
117
+ # Determine if array_api dispatching is enabled, and if estimator is capable
118
+ onedal_array_api = _array_api_offload() and get_tags(obj).onedal_array_api
119
+ sklearn_array_api = _array_api_offload() and get_tags(obj).array_api_support
120
+
121
+ # backend can only be a boolean or None, None signifies an unverified backend
122
+ backend: "bool | None" = None
123
+
124
+ # config context needs to be saved, as the sycl_queue_manager interacts with
125
+ # target_offload, which can regenerate a GPU queue later on. Therefore if a
126
+ # fallback occurs, then the state of target_offload must be set to default
127
+ # so that later use of get_global_queue only sends to host. We must modify
128
+ # the target offload settings, but we must also set the original value at the
129
+ # end, hence the need of a contextmanager.
130
+ with QM.manage_global_queue(None, *args):
131
+ if onedal_array_api:
132
+ backend, patching_status = _get_backend(obj, method_name, *args)
133
+ if backend:
134
+ queue = QM.get_global_queue()
135
+ patching_status.write_log(queue=queue, transferred_to_host=False)
136
+ return branches["onedal"](obj, *args, **kwargs, queue=queue)
137
+ elif sklearn_array_api and backend is False:
138
+ patching_status.write_log(transferred_to_host=False)
139
+ return branches["sklearn"](obj, *args, **kwargs)
140
+
141
+ # move data to host because of multiple reasons: array_api fallback to host,
142
+ # non array_api supporing oneDAL code, issues with usm support in sklearn.
143
+ has_usm_data_for_args, hostargs = _transfer_to_host(*args)
144
+ has_usm_data_for_kwargs, hostvalues = _transfer_to_host(*kwargs.values())
145
+
146
+ hostkwargs = dict(zip(kwargs.keys(), hostvalues))
147
+ has_usm_data = has_usm_data_for_args or has_usm_data_for_kwargs
148
+
149
+ while backend is None:
150
+ backend, patching_status = _get_backend(obj, method_name, *hostargs)
151
+
152
+ if backend:
153
+ queue = QM.get_global_queue()
154
+ patching_status.write_log(queue=queue, transferred_to_host=False)
155
+ return branches["onedal"](obj, *hostargs, **hostkwargs, queue=queue)
156
+ else:
157
+ if sklearn_array_api and not has_usm_data:
158
+ # dpnp fallback is not handled properly yet.
159
+ patching_status.write_log(transferred_to_host=False)
160
+ return branches["sklearn"](obj, *args, **kwargs)
161
+ else:
162
+ patching_status.write_log()
163
+ return branches["sklearn"](obj, *hostargs, **hostkwargs)
164
+
165
+
166
+ def wrap_output_data(func: Callable) -> Callable:
167
+ """
168
+ Converts and moves the output arrays of the decorated function
169
+ to match the input array type and device.
170
+ """
171
+
172
+ @wraps(func)
173
+ def wrapper(self, *args, **kwargs) -> Any:
174
+ result = func(self, *args, **kwargs)
175
+ if not (len(args) == 0 and len(kwargs) == 0):
176
+ data = (*args, *kwargs.values())
177
+
178
+ usm_iface = getattr(data[0], "__sycl_usm_array_interface__", None)
179
+ if usm_iface is not None:
180
+ result = _copy_to_usm(usm_iface["syclobj"], result)
181
+ if dpnp_available and isinstance(data[0], dpnp.ndarray):
182
+ result = _convert_to_dpnp(result)
183
+ return result
184
+
185
+ if get_config().get("transform_output") in ("default", None):
186
+ input_array_api = getattr(data[0], "__array_namespace__", lambda: None)()
187
+ if input_array_api and not _is_numpy_namespace(input_array_api):
188
+ input_array_api_device = data[0].device
189
+ result = _asarray(
190
+ result, input_array_api, device=input_array_api_device
191
+ )
192
+ return result
193
+
194
+ return wrapper
@@ -28,16 +28,19 @@ from daal4py.sklearn._utils import (
28
28
  )
29
29
  from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
30
30
 
31
- # Note: if inheriting from '_HTMLDocumentationLinkMixin' here, it then doesn't matter
32
- # the order of inheritance of classes for estimators when this is later subclassed,
33
- # whereas if inheriting from something else, the subclass that inherits from this needs
34
- # to be the first inherited class in estimators in order for it to take effect.
35
- if sklearn_check_version("1.4"):
36
- from sklearn.utils._estimator_html_repr import _HTMLDocumentationLinkMixin
37
-
38
- BaseForHTMLDocLink = _HTMLDocumentationLinkMixin
31
+ # Not an ideal solution, but this allows for access to the outputs of older
32
+ # sklearnex tag dictionaries in a way similar to the sklearn >=1.6 tag
33
+ # dataclasses via duck-typing. At some point this must be removed for direct
34
+ # use of get_tags in all circumstances, dictated by sklearn support. This is
35
+ # implemented in a way to minimally impact performance.
36
+
37
+
38
+ if sklearn_check_version("1.6"):
39
+ from sklearn.utils import get_tags
39
40
  else:
40
- BaseForHTMLDocLink = ABC
41
+ from sklearn.base import BaseEstimator
42
+
43
+ get_tags = lambda obj: type("Tags", (), BaseEstimator._get_tags(obj))
41
44
 
42
45
 
43
46
  class PatchingConditionsChain(daal4py_PatchingConditionsChain):
@@ -142,20 +145,6 @@ def register_hyperparameters(hyperparameters_map):
142
145
  return decorator
143
146
 
144
147
 
145
- # This abstract class is meant to generate a clickable doc link for classses
146
- # in sklearnex that are not part of base scikit-learn.
147
- class ExtensionEstimator(BaseForHTMLDocLink):
148
- @property
149
- def _doc_link_module(self) -> str:
150
- return "sklearnex"
151
-
152
- @property
153
- def _doc_link_template(self) -> str:
154
- module_path, _ = self.__class__.__module__.rsplit(".", 1)
155
- class_name = self.__class__.__name__
156
- return f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
157
-
158
-
159
148
  def _add_inc_serialization_note(class_docstrings: str) -> str:
160
149
  """Adds a small note note about serialization for extension estimators that are incremental.
161
150
  The class docstrings should leave a placeholder '%incremental_serialization_note%' inside
@@ -179,25 +168,3 @@ the policy is not saved in serialized data."""
179
168
  return class_docstrings.replace(
180
169
  r"%incremental_serialization_note%", inc_serialization_note
181
170
  )
182
-
183
-
184
- # This abstract class is meant to generate a clickable doc link for classses
185
- # in sklearnex that have counterparts in scikit-learn.
186
- class PatchableEstimator(BaseForHTMLDocLink):
187
- @property
188
- def _doc_link_module(self) -> str:
189
- return "sklearnex"
190
-
191
- @property
192
- def _doc_link_template(self) -> str:
193
- if re.search(r"^\d\.\d\.\d$", sklearn.__version__):
194
- sklearn_version_parts = sklearn.__version__.split(".")
195
- doc_version_url = sklearn_version_parts[0] + "." + sklearn_version_parts[1]
196
- else:
197
- doc_version_url = "stable"
198
- module_path, _ = self.__class__.__module__.rsplit(".", 1)
199
- module_path = re.sub("sklearnex", "sklearn", module_path)
200
- class_name = self.__class__.__name__
201
- # for TSNE, which re-uses daal4py
202
- module_path = re.sub(r"daal4py\.", "", module_path)
203
- return f"https://scikit-learn.org/{doc_version_url}/modules/generated/{module_path}.{class_name}.html"
@@ -0,0 +1,109 @@
1
+ # ===============================================================================
2
+ # Copyright contributors to the oneDAL project
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
+ from sklearn.base import BaseEstimator
18
+
19
+ from daal4py.sklearn._utils import sklearn_check_version
20
+
21
+ if sklearn_check_version("1.6"):
22
+ from dataclasses import dataclass, fields
23
+
24
+ from sklearn.utils import Tags as _sklearn_Tags
25
+
26
+ @dataclass
27
+ class Tags(_sklearn_Tags):
28
+ onedal_array_api: bool = False
29
+
30
+
31
+ class oneDALEstimator:
32
+ """Inherited class for all oneDAL-based estimators.
33
+
34
+ This class must be inherited before any scikit-learn estimator
35
+ classes (i.e. those which inherit from scikit-learn's BaseEstimator).
36
+
37
+ It enables:
38
+
39
+ - dispatching to oneDAL
40
+ - html documentation
41
+
42
+ Notes
43
+ -----
44
+ Sklearnex-only estimators must inherit this class directly before
45
+ BaseEstimator in order to properly render documentation. Other
46
+ sklearn classes like Mixins can be before this class in the MRO
47
+ without any impact on functionality.
48
+ """
49
+
50
+ if sklearn_check_version("1.6"):
51
+ # Starting in sklearn 1.6, _more_tags is deprecated. An oneDALEstimator
52
+ # is defined to handle the various versioning issues with the tags and
53
+ # with the ongoing rollout of sklearn's array_api support. This will make
54
+ # maintenance easier, and centralize tag changes to a single location.
55
+
56
+ def __sklearn_tags__(self) -> Tags:
57
+ # This convention is unnecessarily restrictive with more performant
58
+ # alternatives but it best follows sklearn. Subclasses will now only need
59
+ # to set `onedal_array_api` to True to signify gpu zero-copy support
60
+ # and maintenance is smaller because of underlying sklearn infrastructure
61
+ sktags = super().__sklearn_tags__()
62
+ tag_dict = {
63
+ field.name: getattr(sktags, field.name) for field in fields(sktags)
64
+ }
65
+ return Tags(**tag_dict)
66
+
67
+ elif sklearn_check_version("1.3"):
68
+
69
+ def _more_tags(self) -> dict[bool]:
70
+ return {"onedal_array_api": False}
71
+
72
+ else:
73
+ # array_api_support tag was added in sklearn 1.3 via scikit-learn/scikit-learn#26372
74
+ def _more_tags(self) -> dict[bool, bool]:
75
+ return {"array_api_support": False, "onedal_array_api": False}
76
+
77
+ if sklearn_check_version("1.4"):
78
+
79
+ @property
80
+ def _doc_link_module(self) -> str:
81
+ return "sklearnex"
82
+
83
+ def _doc_link_url_param_generator(self, *_) -> dict[str, str]:
84
+ return {
85
+ "estimator_module": "sklearn."
86
+ + self.__class__.__module__.rsplit(".", 2)[-2],
87
+ "estimator_name": self.__class__.__name__,
88
+ }
89
+
90
+ def _get_doc_link(self) -> str:
91
+ # This method is meant to generate a clickable doc link for classses
92
+ # in sklearnex including those that are not part of base scikit-learn.
93
+ # It should be inherited before inheriting from a scikit-learn estimator.
94
+
95
+ mro = self.__class__.__mro__
96
+ # The next object in the Estimators MRO after oneDALEstimator should be
97
+ # the equivalent sklearn estimator, if it is BaseEstimator, it is a
98
+ # sklearnex-only estimator.
99
+ url = BaseEstimator._get_doc_link(self)
100
+ if (
101
+ url
102
+ and oneDALEstimator in mro
103
+ and mro[mro.index(oneDALEstimator) + 1] is BaseEstimator
104
+ ):
105
+ module_path, _ = self.__class__.__module__.rsplit(".", 1)
106
+ class_name = self.__class__.__name__
107
+ url = f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
108
+
109
+ return url
@@ -28,7 +28,8 @@ from onedal.basic_statistics import BasicStatistics as onedal_BasicStatistics
28
28
  from onedal.utils.validation import _is_csr
29
29
 
30
30
  from .._device_offload import dispatch
31
- from .._utils import ExtensionEstimator, PatchingConditionsChain
31
+ from .._utils import PatchingConditionsChain
32
+ from ..base import oneDALEstimator
32
33
  from ..utils.validation import validate_data
33
34
 
34
35
  if sklearn_check_version("1.2"):
@@ -36,7 +37,7 @@ if sklearn_check_version("1.2"):
36
37
 
37
38
 
38
39
  @control_n_jobs(decorated_methods=["fit"])
39
- class BasicStatistics(ExtensionEstimator, BaseEstimator):
40
+ class BasicStatistics(oneDALEstimator, BaseEstimator):
40
41
  """
41
42
  Estimator for basic statistics.
42
43
  Allows to compute basic statistics for provided data.
@@ -27,11 +27,8 @@ from onedal.basic_statistics import (
27
27
 
28
28
  from .._config import get_config
29
29
  from .._device_offload import dispatch
30
- from .._utils import (
31
- ExtensionEstimator,
32
- PatchingConditionsChain,
33
- _add_inc_serialization_note,
34
- )
30
+ from .._utils import PatchingConditionsChain, _add_inc_serialization_note
31
+ from ..base import oneDALEstimator
35
32
  from ..utils.validation import validate_data
36
33
 
37
34
  if sklearn_check_version("1.2"):
@@ -42,7 +39,7 @@ import warnings
42
39
 
43
40
 
44
41
  @control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
45
- class IncrementalBasicStatistics(ExtensionEstimator, BaseEstimator):
42
+ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
46
43
  """
47
44
  Calculates basic statistics on the given data, allows for computation when the data are split into
48
45
  batches. The user can use ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
@@ -27,14 +27,15 @@ from onedal.cluster import DBSCAN as onedal_DBSCAN
27
27
 
28
28
  from .._config import get_config
29
29
  from .._device_offload import dispatch
30
- from .._utils import PatchableEstimator, PatchingConditionsChain
30
+ from .._utils import PatchingConditionsChain
31
+ from ..base import oneDALEstimator
31
32
  from ..utils.validation import validate_data
32
33
 
33
34
  if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
34
35
  from sklearn.utils import check_scalar
35
36
 
36
37
 
37
- class BaseDBSCAN(ABC):
38
+ class BaseDBSCAN(oneDALEstimator):
38
39
  def _onedal_dbscan(self, **onedal_params):
39
40
  return onedal_DBSCAN(**onedal_params)
40
41
 
@@ -48,7 +49,7 @@ class BaseDBSCAN(ABC):
48
49
 
49
50
 
50
51
  @control_n_jobs(decorated_methods=["fit"])
51
- class DBSCAN(PatchableEstimator, _sklearn_DBSCAN, BaseDBSCAN):
52
+ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
52
53
  __doc__ = _sklearn_DBSCAN.__doc__
53
54
 
54
55
  if sklearn_check_version("1.2"):
@@ -35,15 +35,18 @@ if daal_check_version((2023, "P", 200)):
35
35
 
36
36
  from daal4py.sklearn._n_jobs_support import control_n_jobs
37
37
  from daal4py.sklearn._utils import sklearn_check_version
38
+ from onedal._device_offload import support_input_format
38
39
  from onedal.cluster import KMeans as onedal_KMeans
39
40
  from onedal.utils.validation import _is_csr
40
41
 
41
42
  from .._device_offload import dispatch, wrap_output_data
42
- from .._utils import PatchableEstimator, PatchingConditionsChain
43
+ from .._utils import PatchingConditionsChain
44
+ from ..base import oneDALEstimator
45
+ from ..utils._array_api import get_namespace
43
46
  from ..utils.validation import validate_data
44
47
 
45
48
  @control_n_jobs(decorated_methods=["fit", "fit_transform", "predict", "score"])
46
- class KMeans(PatchableEstimator, _sklearn_KMeans):
49
+ class KMeans(oneDALEstimator, _sklearn_KMeans):
47
50
  __doc__ = _sklearn_KMeans.__doc__
48
51
 
49
52
  if sklearn_check_version("1.2"):
@@ -317,16 +320,20 @@ if daal_check_version((2023, "P", 200)):
317
320
  _onedal_gpu_supported = _onedal_supported
318
321
  _onedal_cpu_supported = _onedal_supported
319
322
 
320
- @wrap_output_data
321
- def fit_transform(self, X, y=None, sample_weight=None):
322
- return self.fit(X, sample_weight=sample_weight)._transform(X)
323
-
324
- @wrap_output_data
325
- def transform(self, X):
326
- check_is_fitted(self)
323
+ def _check_test_data(self, X):
324
+ xp, _ = get_namespace(X)
325
+ X = validate_data(
326
+ self,
327
+ X,
328
+ accept_sparse="csr",
329
+ reset=False,
330
+ dtype=[xp.float64, xp.float32],
331
+ order="C",
332
+ accept_large_sparse=False,
333
+ )
334
+ return X
327
335
 
328
- X = self._check_test_data(X)
329
- return self._transform(X)
336
+ _transform = support_input_format(_sklearn_KMeans._transform)
330
337
 
331
338
  @wrap_output_data
332
339
  def score(self, X, y=None, sample_weight=None):
@@ -381,8 +388,6 @@ if daal_check_version((2023, "P", 200)):
381
388
 
382
389
  fit.__doc__ = _sklearn_KMeans.fit.__doc__
383
390
  predict.__doc__ = _sklearn_KMeans.predict.__doc__
384
- transform.__doc__ = _sklearn_KMeans.transform.__doc__
385
- fit_transform.__doc__ = _sklearn_KMeans.fit_transform.__doc__
386
391
  score.__doc__ = _sklearn_KMeans.score.__doc__
387
392
 
388
393
  else:
@@ -30,16 +30,17 @@ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
30
30
  from onedal.covariance import (
31
31
  IncrementalEmpiricalCovariance as onedal_IncrementalEmpiricalCovariance,
32
32
  )
33
+ from onedal.utils._array_api import _is_numpy_namespace
33
34
  from sklearnex import config_context
34
35
 
35
36
  from .._config import get_config
36
37
  from .._device_offload import dispatch, wrap_output_data
37
38
  from .._utils import (
38
- ExtensionEstimator,
39
39
  PatchingConditionsChain,
40
40
  _add_inc_serialization_note,
41
41
  register_hyperparameters,
42
42
  )
43
+ from ..base import oneDALEstimator
43
44
  from ..metrics import pairwise_distances
44
45
  from ..utils._array_api import get_namespace
45
46
  from ..utils.validation import check_feature_names, validate_data
@@ -49,7 +50,7 @@ if sklearn_check_version("1.2"):
49
50
 
50
51
 
51
52
  @control_n_jobs(decorated_methods=["partial_fit", "fit", "_onedal_finalize_fit"])
52
- class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
53
+ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
53
54
  """
54
55
  Maximum likelihood covariance estimator that allows for the estimation when the data are split into
55
56
  batches. The user can use the ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
@@ -231,11 +232,11 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
231
232
  X = validate_data(
232
233
  self,
233
234
  X_test,
234
- dtype=[np.float64, np.float32],
235
+ dtype=[xp.float64, xp.float32],
235
236
  reset=False,
236
237
  )
237
238
 
238
- if "numpy" not in xp.__name__:
239
+ if not _is_numpy_namespace(xp):
239
240
  location = xp.asarray(location, device=X_test.device)
240
241
  # depending on the sklearn version, check_array
241
242
  # and validate_data will return only numpy arrays
@@ -361,12 +362,13 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
361
362
  # self.location_) , and will check for finiteness via check array
362
363
  # check_feature_names will match _validate_data functionally
363
364
  location = self.location_[np.newaxis, :]
364
- if "numpy" not in xp.__name__:
365
+ if not _is_numpy_namespace(xp):
365
366
  # Guarantee that inputs to pairwise_distances match in type and location
366
367
  location = xp.asarray(location, device=X.device)
367
368
 
368
369
  try:
369
370
  dist = pairwise_distances(X, location, metric="mahalanobis", VI=precision)
371
+
370
372
  except ValueError as e:
371
373
  # Throw the expected sklearn error in an n_feature length violation
372
374
  if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
@@ -377,6 +379,9 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
377
379
  else:
378
380
  raise e
379
381
 
382
+ if not _is_numpy_namespace(xp):
383
+ dist = xp.asarray(dist, device=X.device)
384
+
380
385
  return (xp.reshape(dist, (-1,))) ** 2
381
386
 
382
387
  _onedal_cpu_supported = _onedal_supported
@@ -18,8 +18,6 @@ import logging
18
18
 
19
19
  from daal4py.sklearn._utils import daal_check_version
20
20
 
21
- from .._utils import PatchableEstimator
22
-
23
21
  if daal_check_version((2024, "P", 100)):
24
22
  import numbers
25
23
  from math import sqrt
@@ -34,6 +32,7 @@ if daal_check_version((2024, "P", 100)):
34
32
 
35
33
  from .._device_offload import dispatch, wrap_output_data
36
34
  from .._utils import PatchingConditionsChain
35
+ from ..base import oneDALEstimator
37
36
  from ..utils._array_api import get_namespace
38
37
  from ..utils.validation import validate_data
39
38
 
@@ -48,7 +47,7 @@ if daal_check_version((2024, "P", 100)):
48
47
  from onedal.decomposition import PCA as onedal_PCA
49
48
 
50
49
  @control_n_jobs(decorated_methods=["fit", "transform", "fit_transform"])
51
- class PCA(PatchableEstimator, _sklearn_PCA):
50
+ class PCA(oneDALEstimator, _sklearn_PCA):
52
51
  __doc__ = _sklearn_PCA.__doc__
53
52
 
54
53
  if sklearn_check_version("1.2"):