scikit-learn-intelex 2025.4.0__py39-none-win_amd64.whl → 2025.6.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 (270) hide show
  1. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
  2. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  3. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
  4. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +922 -0
  5. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
  6. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +129 -106
  7. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  8. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
  9. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
  10. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
  11. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
  12. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
  13. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
  14. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
  15. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
  16. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
  17. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
  18. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
  19. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
  20. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
  21. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
  22. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +3 -3
  23. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
  24. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
  25. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
  26. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
  27. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
  28. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
  29. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
  30. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
  31. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_device_offload.py +86 -82
  32. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  33. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  34. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
  35. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
  36. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
  37. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
  38. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
  39. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
  40. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
  41. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
  42. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
  43. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
  44. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
  45. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
  46. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
  47. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
  48. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
  49. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
  50. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
  51. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
  52. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
  53. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
  54. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
  55. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
  56. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
  57. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
  58. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
  59. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
  60. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
  61. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
  62. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
  63. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +3 -13
  64. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +14 -2
  65. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
  66. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +161 -0
  67. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
  68. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
  69. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
  70. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  71. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
  72. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
  73. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_utils.py +36 -43
  74. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  75. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +14 -20
  76. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +31 -40
  77. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +10 -11
  78. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +20 -19
  79. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +49 -62
  80. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +9 -20
  81. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
  82. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +111 -366
  84. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  85. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
  86. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +18 -6
  87. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +37 -85
  89. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +52 -47
  90. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +45 -84
  91. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +17 -20
  92. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +8 -6
  95. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
  96. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
  97. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
  99. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +6 -5
  100. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -19
  104. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +45 -62
  105. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +15 -28
  120. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +36 -129
  121. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +10 -22
  122. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +34 -127
  123. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +10 -22
  124. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +51 -11
  125. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
  126. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +18 -24
  127. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
  128. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
  129. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
  130. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
  131. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
  132. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/METADATA +2 -3
  133. scikit_learn_intelex-2025.6.0.dist-info/RECORD +257 -0
  134. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  135. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
  136. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  137. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  138. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
  139. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
  140. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
  141. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
  142. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
  143. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
  144. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  145. scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
  146. scikit_learn_intelex-2025.4.0.dist-info/RECORD +0 -259
  147. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  150. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  151. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  152. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  153. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  154. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  155. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  156. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  157. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  158. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  159. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  160. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  161. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  162. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  163. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  164. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  165. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  166. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  167. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  168. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  169. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  170. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  171. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  172. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  173. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  174. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  175. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  176. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  177. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  178. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  179. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  180. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  181. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  182. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  183. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  184. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  185. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  186. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  187. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  188. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  189. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  190. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  191. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  192. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  193. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  194. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  196. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  197. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  198. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  199. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  200. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  201. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  202. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  203. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  204. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  206. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  207. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  208. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  209. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  210. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  211. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  213. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  214. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  215. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  217. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  218. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  219. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  221. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  223. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  224. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  225. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  227. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  228. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  229. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  231. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  232. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  233. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  234. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  235. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  236. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  237. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  238. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  240. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  241. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  242. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  243. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  244. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  245. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  247. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  248. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  249. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  250. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  251. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  252. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  253. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  254. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  255. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  256. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  257. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  258. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  259. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  260. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  261. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  262. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  263. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  264. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  265. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  266. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  267. {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  268. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/LICENSE.txt +0 -0
  269. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/WHEEL +0 -0
  270. {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/top_level.txt +0 -0
@@ -13,12 +13,18 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
+
16
17
  import numpy as np
17
18
 
18
- from daal4py.sklearn._utils import daal_check_version, get_dtype
19
+ from daal4py.sklearn._utils import daal_check_version
20
+ from onedal._device_offload import supports_queue
21
+ from onedal.common._backend import bind_default_backend
22
+ from onedal.utils import _sycl_queue_manager as QM
19
23
 
24
+ from .._config import _get_config
20
25
  from ..datatypes import from_table, to_table
21
- from ..utils import _check_array
26
+ from ..utils._array_api import _get_sycl_namespace
27
+ from ..utils.validation import _check_array
22
28
  from .covariance import BaseEmpiricalCovariance
23
29
 
24
30
 
@@ -55,12 +61,21 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
55
61
  def __init__(self, method="dense", bias=False, assume_centered=False):
56
62
  super().__init__(method, bias, assume_centered)
57
63
  self._reset()
64
+ self._queue = None
65
+
66
+ @bind_default_backend("covariance")
67
+ def partial_compute(self, params, partial_result, X_table): ...
68
+
69
+ @bind_default_backend("covariance")
70
+ def partial_compute_result(self): ...
71
+
72
+ @bind_default_backend("covariance")
73
+ def finalize_compute(self, params, partial_result): ...
58
74
 
59
75
  def _reset(self):
60
76
  self._need_to_finalize = False
61
- self._partial_result = self._get_backend(
62
- "covariance", None, "partial_compute_result"
63
- )
77
+ self._queue = None
78
+ self._partial_result = self.partial_compute_result()
64
79
 
65
80
  def __getstate__(self):
66
81
  # Since finalize_fit can't be dispatched without directly provided queue
@@ -73,6 +88,7 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
73
88
 
74
89
  return data
75
90
 
91
+ @supports_queue
76
92
  def partial_fit(self, X, y=None, queue=None):
77
93
  """
78
94
  Computes partial data for the covariance matrix
@@ -95,30 +111,27 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
95
111
  self : object
96
112
  Returns the instance itself.
97
113
  """
98
- X = _check_array(X, dtype=[np.float64, np.float32], ensure_2d=True)
99
-
100
- self._queue = queue
114
+ use_raw_input = _get_config()["use_raw_input"] is True
115
+ sua_iface, _, _ = _get_sycl_namespace(X)
101
116
 
102
- policy = self._get_policy(queue, X)
117
+ if use_raw_input and sua_iface:
118
+ queue = X.sycl_queue
119
+ if not use_raw_input:
120
+ X = _check_array(X, dtype=[np.float64, np.float32], ensure_2d=True)
103
121
 
122
+ self._queue = queue
104
123
  X_table = to_table(X, queue=queue)
105
124
 
106
125
  if not hasattr(self, "_dtype"):
107
126
  self._dtype = X_table.dtype
108
127
 
109
128
  params = self._get_onedal_params(self._dtype)
110
- self._partial_result = self._get_backend(
111
- "covariance",
112
- None,
113
- "partial_compute",
114
- policy,
115
- params,
116
- self._partial_result,
117
- X_table,
118
- )
129
+ self._partial_result = self.partial_compute(params, self._partial_result, X_table)
119
130
  self._need_to_finalize = True
131
+ # store the queue for when we finalize
132
+ self._queue = queue
120
133
 
121
- def finalize_fit(self, queue=None):
134
+ def finalize_fit(self):
122
135
  """
123
136
  Finalizes covariance matrix and obtains `covariance_` and `location_`
124
137
  attributes from the current `_partial_result`.
@@ -135,19 +148,9 @@ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
135
148
  """
136
149
  if self._need_to_finalize:
137
150
  params = self._get_onedal_params(self._dtype)
138
- if queue is not None:
139
- policy = self._get_policy(queue)
140
- else:
141
- policy = self._get_policy(self._queue)
142
-
143
- result = self._get_backend(
144
- "covariance",
145
- None,
146
- "finalize_compute",
147
- policy,
148
- params,
149
- self._partial_result,
150
- )
151
+ with QM.manage_global_queue(self._queue):
152
+ result = self.finalize_compute(params, self._partial_result)
153
+
151
154
  if daal_check_version((2024, "P", 1)) or (not self.bias):
152
155
  self.covariance_ = from_table(result.cov_matrix)
153
156
  else:
@@ -14,11 +14,9 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- import warnings
18
-
19
17
  import numpy as np
20
18
 
21
- from onedal import _backend, _is_dpc_backend
19
+ from onedal import _default_backend as backend
22
20
 
23
21
 
24
22
  def _apply_and_pass(func, *args, **kwargs):
@@ -29,7 +27,7 @@ def _apply_and_pass(func, *args, **kwargs):
29
27
 
30
28
  def _convert_one_to_table(arg, queue=None):
31
29
  # All inputs for table conversion must be array-like or sparse, not scalars
32
- return _backend.to_table(np.atleast_2d(arg) if np.isscalar(arg) else arg, queue)
30
+ return backend.to_table(np.atleast_2d(arg) if np.isscalar(arg) else arg, queue)
33
31
 
34
32
 
35
33
  def to_table(*args, queue=None):
@@ -54,7 +52,7 @@ def to_table(*args, queue=None):
54
52
  return _apply_and_pass(_convert_one_to_table, *args, queue=queue)
55
53
 
56
54
 
57
- if _is_dpc_backend:
55
+ if backend.is_dpc:
58
56
 
59
57
  try:
60
58
  # try/catch is used here instead of dpep_helpers because
@@ -79,8 +77,6 @@ if _is_dpc_backend:
79
77
  def _table_to_array(table, xp=None):
80
78
  return xp.asarray(table)
81
79
 
82
- from ..common._policy import _HostInteropPolicy
83
-
84
80
  def convert_one_from_table(table, sycl_queue=None, sua_iface=None, xp=None):
85
81
  # Currently only `__sycl_usm_array_interface__` protocol used to
86
82
  # convert into dpnp/dpctl tensors.
@@ -96,12 +92,12 @@ if _is_dpc_backend:
96
92
  # Host tables first converted into numpy.narrays and then to array from xp
97
93
  # namespace.
98
94
  return xp.asarray(
99
- _backend.from_table(table), usm_type="device", sycl_queue=sycl_queue
95
+ backend.from_table(table), usm_type="device", sycl_queue=sycl_queue
100
96
  )
101
97
  else:
102
98
  return _table_to_array(table, xp=xp)
103
99
 
104
- return _backend.from_table(table)
100
+ return backend.from_table(table)
105
101
 
106
102
  else:
107
103
 
@@ -112,7 +108,7 @@ else:
112
108
  raise RuntimeError(
113
109
  "SYCL usm array conversion from table requires the DPC backend"
114
110
  )
115
- return _backend.from_table(table)
111
+ return backend.from_table(table)
116
112
 
117
113
 
118
114
  def from_table(*args, sycl_queue=None, sua_iface=None, xp=None):
@@ -19,19 +19,25 @@ import pytest
19
19
  import scipy.sparse as sp
20
20
  from numpy.testing import assert_allclose
21
21
 
22
- from onedal import _backend, _is_dpc_backend
22
+ from onedal import _default_backend, _dpc_backend
23
+ from onedal._device_offload import supports_queue
23
24
  from onedal.datatypes import from_table, to_table
24
25
  from onedal.utils._dpep_helpers import dpctl_available
25
26
 
27
+ backend = _dpc_backend or _default_backend
28
+
26
29
  if dpctl_available:
27
30
  from onedal.datatypes.tests.common import (
28
31
  _assert_sua_iface_fields,
29
32
  _assert_tensor_attr,
30
33
  )
31
34
 
35
+ from daal4py.sklearn._utils import get_dtype
36
+ from onedal.cluster.dbscan import DBSCAN
32
37
  from onedal.primitives import linear_kernel
33
38
  from onedal.tests.utils._dataframes_support import (
34
39
  _convert_to_dataframe,
40
+ array_api_modules,
35
41
  get_dataframes_and_queues,
36
42
  )
37
43
  from onedal.tests.utils._device_selection import get_queues
@@ -53,42 +59,61 @@ unsupported_data_shapes = [
53
59
  ORDER_DICT = {"F": np.asfortranarray, "C": np.ascontiguousarray}
54
60
 
55
61
 
56
- if _is_dpc_backend:
57
- from daal4py.sklearn._utils import get_dtype
58
- from onedal.cluster.dbscan import BaseDBSCAN
59
- from onedal.common._policy import _get_policy
60
-
61
- class DummyEstimatorWithTableConversions:
62
-
63
- def fit(self, X, y=None):
64
- sua_iface, xp, _ = _get_sycl_namespace(X)
65
- policy = _get_policy(X.sycl_queue, None)
66
- bs_DBSCAN = BaseDBSCAN()
67
- types = [xp.float32, xp.float64]
68
- if get_dtype(X) not in types:
69
- X = xp.astype(X, dtype=xp.float64)
70
- dtype = get_dtype(X)
71
- params = bs_DBSCAN._get_onedal_params(dtype)
72
- X_table = to_table(X)
73
- # TODO:
74
- # check other candidates for the dummy base oneDAL func.
75
- # oneDAL backend func is needed to check result table checks.
76
- result = _backend.dbscan.clustering.compute(
77
- policy, params, X_table, to_table(None)
78
- )
79
- result_responses_table = result.responses
80
- result_responses_df = from_table(
81
- result_responses_table,
82
- sua_iface=sua_iface,
83
- sycl_queue=X.sycl_queue,
84
- xp=xp,
85
- )
86
- return X_table, result_responses_table, result_responses_df
87
-
88
- else:
89
-
90
- class DummyEstimatorWithTableConversions:
91
- pass
62
+ class DummyEstimatorWithTableConversions:
63
+
64
+ @supports_queue
65
+ def fit(self, X, y=None, queue=None):
66
+ if not backend.is_dpc:
67
+ raise RuntimeError("Table conversions should be done with DPC backend.")
68
+
69
+ sua_iface, xp, _ = _get_sycl_namespace(X)
70
+ dbscan = DBSCAN()
71
+ types = [xp.float32, xp.float64]
72
+ if get_dtype(X) not in types:
73
+ X = xp.astype(X, dtype=xp.float64)
74
+ dtype = get_dtype(X)
75
+ params = dbscan._get_onedal_params(dtype)
76
+ X_table = to_table(X)
77
+ # TODO:
78
+ # check other candidates for the dummy base oneDAL func.
79
+ # oneDAL backend func is needed to check result table checks.
80
+ result = dbscan.compute(params, X_table, to_table(None))
81
+ result_responses_table = result.responses
82
+ result_responses_df = from_table(
83
+ result_responses_table,
84
+ sua_iface=sua_iface,
85
+ sycl_queue=X.sycl_queue,
86
+ xp=xp,
87
+ )
88
+ return X_table, result_responses_table, result_responses_df
89
+
90
+
91
+ class _OnlyDLTensor:
92
+ """This is a temporary class to force use of the '__dlpack__' logic branch
93
+ in `to_table` as `__dlpack__` conversion is lower priority by design.
94
+ dpctl data with CPU SyclQueues are shown as on KDLOneAPI devices, which serve
95
+ to test the SYCL device support in `__dlpack__` logic without GPU hardware.
96
+ This takes inspiration from sklearn's `_NotAnArray`."""
97
+
98
+ def __init__(self, data):
99
+ self.data = data
100
+
101
+ def __dlpack__(self):
102
+ return self.data.__dlpack__()
103
+
104
+
105
+ def _to_table_supported(array):
106
+ """This function provides a quick and easy way to determine characteristics
107
+ or behaviors of the to_table function. For example, returned errors are
108
+ tested and are firstly dependent if they are of a proper array type. This is
109
+ pertinent for circumstances such as direct use of other dataframe types (e.g.
110
+ Pandas)."""
111
+ return (
112
+ isinstance(array, np.ndarray)
113
+ or hasattr(array, "__sycl_usm_ndarray_interface__")
114
+ or hasattr(array, "__dlpack__")
115
+ or sp.issparse(array)
116
+ )
92
117
 
93
118
 
94
119
  def _test_input_format_c_contiguous_numpy(queue, dtype):
@@ -221,7 +246,7 @@ def test_conversion_to_table(dtype):
221
246
  reason="dpctl is required for checks.",
222
247
  )
223
248
  @pytest.mark.skipif(
224
- not _is_dpc_backend,
249
+ not backend.is_dpc,
225
250
  reason="__sycl_usm_array_interface__ support requires DPC backend.",
226
251
  )
227
252
  @pytest.mark.parametrize(
@@ -229,7 +254,7 @@ def test_conversion_to_table(dtype):
229
254
  )
230
255
  @pytest.mark.parametrize("order", ["C", "F"])
231
256
  @pytest.mark.parametrize("dtype", [np.float32, np.float64, np.int32, np.int64])
232
- def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
257
+ def test_input_zero_copy_sycl_usm(dataframe, queue, order, dtype):
233
258
  """Checking that values ​​representing USM allocations `__sycl_usm_array_interface__`
234
259
  are preserved during conversion to onedal table.
235
260
  """
@@ -257,7 +282,7 @@ def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
257
282
  reason="dpctl is required for checks.",
258
283
  )
259
284
  @pytest.mark.skipif(
260
- not _is_dpc_backend,
285
+ not backend.is_dpc,
261
286
  reason="__sycl_usm_array_interface__ support requires DPC backend.",
262
287
  )
263
288
  @pytest.mark.parametrize(
@@ -266,7 +291,7 @@ def test_input_sua_iface_zero_copy(dataframe, queue, order, dtype):
266
291
  @pytest.mark.parametrize("order", ["F", "C"])
267
292
  @pytest.mark.parametrize("data_shape", data_shapes)
268
293
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
269
- def test_table_conversions(dataframe, queue, order, data_shape, dtype):
294
+ def test_table_conversions_sycl_usm(dataframe, queue, order, data_shape, dtype):
270
295
  """Checking that values ​​representing USM allocations `__sycl_usm_array_interface__`
271
296
  are preserved during conversion to onedal table and from onedal table to
272
297
  sycl usm array dataformat.
@@ -313,32 +338,25 @@ def test_table_conversions(dataframe, queue, order, data_shape, dtype):
313
338
  )
314
339
 
315
340
 
316
- @pytest.mark.skipif(
317
- not _is_dpc_backend,
318
- reason="__sycl_usm_array_interface__ support requires DPC backend.",
319
- )
320
341
  @pytest.mark.parametrize(
321
- "dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
342
+ "dataframe,queue", get_dataframes_and_queues("numpy,dpctl,dpnp,array_api", "cpu,gpu")
322
343
  )
323
344
  @pytest.mark.parametrize("data_shape", unsupported_data_shapes)
324
- def test_sua_iface_interop_invalid_shape(dataframe, queue, data_shape):
345
+ def test_interop_invalid_shape(dataframe, queue, data_shape):
325
346
  X = np.zeros(data_shape)
326
347
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
327
- sua_iface, _, _ = _get_sycl_namespace(X)
328
348
 
329
- expected_err_msg = (
330
- "Unable to convert from SUA interface: only 1D & 2D tensors are allowed"
331
- )
349
+ expected_err_msg = r"Input array has wrong dimensionality \(must be 2d\)."
350
+ if dataframe in "dpctl,dpnp":
351
+ expected_err_msg = (
352
+ "Unable to convert from SUA interface: only 1D & 2D tensors are allowed"
353
+ )
332
354
  with pytest.raises(ValueError, match=expected_err_msg):
333
355
  to_table(X)
334
356
 
335
357
 
336
- @pytest.mark.skipif(
337
- not _is_dpc_backend,
338
- reason="__sycl_usm_array_interface__ support requires DPC backend.",
339
- )
340
358
  @pytest.mark.parametrize(
341
- "dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
359
+ "dataframe,queue", get_dataframes_and_queues("dpctl,dpnp,array_api", "cpu,gpu")
342
360
  )
343
361
  @pytest.mark.parametrize(
344
362
  "dtype",
@@ -348,17 +366,16 @@ def test_sua_iface_interop_invalid_shape(dataframe, queue, data_shape):
348
366
  pytest.param(np.uint64, id=np.dtype(np.uint64).name),
349
367
  ],
350
368
  )
351
- def test_sua_iface_interop_unsupported_dtypes(dataframe, queue, dtype):
369
+ def test_interop_unsupported_dtypes(dataframe, queue, dtype):
352
370
  # sua iface interobility supported only for oneDAL supported dtypes
353
371
  # for input data: int32, int64, float32, float64.
354
372
  # Checking some common dtypes supported by dpctl, dpnp for exception
355
373
  # raise.
356
374
  X = np.zeros((10, 20), dtype=dtype)
357
375
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
358
- sua_iface, _, _ = _get_sycl_namespace(X)
376
+ expected_err_msg = r"Found unsupported (array|tensor) type"
359
377
 
360
- expected_err_msg = "Unable to convert from SUA interface: unknown data type"
361
- with pytest.raises(ValueError, match=expected_err_msg):
378
+ with pytest.raises(TypeError, match=expected_err_msg):
362
379
  to_table(X)
363
380
 
364
381
 
@@ -366,27 +383,25 @@ def test_sua_iface_interop_unsupported_dtypes(dataframe, queue, dtype):
366
383
  "dataframe,queue", get_dataframes_and_queues("numpy,dpctl,dpnp", "cpu,gpu")
367
384
  )
368
385
  def test_to_table_non_contiguous_input(dataframe, queue):
369
- if dataframe in "dpnp,dpctl" and not _is_dpc_backend:
386
+ if dataframe in "dpnp,dpctl" and not backend.is_dpc:
370
387
  pytest.skip("__sycl_usm_array_interface__ support requires DPC backend.")
371
388
  X, _ = np.mgrid[:10, :10]
372
389
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
373
390
  X = X[:, :3]
374
- sua_iface, _, _ = _get_sycl_namespace(X)
375
- # X expected to be non-contiguous.
376
391
  assert not X.flags.c_contiguous and not X.flags.f_contiguous
377
392
  X_t = to_table(X)
378
393
  assert X_t and X_t.shape == (10, 3) and X_t.has_data
379
394
 
380
395
 
381
396
  @pytest.mark.skipif(
382
- _is_dpc_backend,
397
+ backend.is_dpc,
383
398
  reason="Required check should be done if no DPC backend.",
384
399
  )
385
400
  @pytest.mark.parametrize(
386
401
  "dataframe,queue", get_dataframes_and_queues("dpctl,dpnp", "cpu,gpu")
387
402
  )
388
403
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
389
- def test_sua_iface_interop_if_no_dpc_backend(dataframe, queue, dtype):
404
+ def test_interop_if_no_dpc_backend_sycl_usm(dataframe, queue, dtype):
390
405
  X = np.zeros((10, 20), dtype=dtype)
391
406
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
392
407
  sua_iface, _, _ = _get_sycl_namespace(X)
@@ -396,12 +411,7 @@ def test_sua_iface_interop_if_no_dpc_backend(dataframe, queue, dtype):
396
411
  to_table(X)
397
412
 
398
413
 
399
- @pytest.mark.skipif(
400
- not _is_dpc_backend, reason="Requires DPC backend for dtype conversion"
401
- )
402
- @pytest.mark.parametrize("dtype", [np.float32, np.float64])
403
- @pytest.mark.parametrize("sparse", [True, False])
404
- def test_low_precision_gpu_conversion(dtype, sparse):
414
+ def _test_low_precision_gpu_conversion(dtype, sparse, dataframe):
405
415
  # Use a dummy queue as fp32 hardware is not in public testing
406
416
 
407
417
  class DummySyclQueue:
@@ -418,7 +428,9 @@ def test_low_precision_gpu_conversion(dtype, sparse):
418
428
  if sparse:
419
429
  X = sp.random(100, 100, format="csr", dtype=dtype)
420
430
  else:
421
- X = np.random.rand(100, 100).astype(dtype)
431
+ X = _convert_to_dataframe(
432
+ np.random.rand(100, 100).astype(dtype), target_df=dataframe
433
+ )
422
434
 
423
435
  if dtype == np.float64:
424
436
  with pytest.warns(
@@ -434,21 +446,51 @@ def test_low_precision_gpu_conversion(dtype, sparse):
434
446
  assert_allclose(X, from_table(X_table))
435
447
 
436
448
 
449
+ @pytest.mark.skipif(
450
+ not backend.is_dpc, reason="Requires DPC backend for dtype conversion"
451
+ )
452
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
453
+ @pytest.mark.parametrize("sparse", [True, False])
454
+ def test_low_precision_gpu_conversion_numpy(dtype, sparse):
455
+ _test_low_precision_gpu_conversion(dtype, sparse, "numpy")
456
+
457
+
458
+ @pytest.mark.skipif(
459
+ not backend.is_dpc or "array_api" not in array_api_modules,
460
+ reason="Requires DPC backend and array_api_strict for the test",
461
+ )
462
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
463
+ def test_low_precision_gpu_conversion_array_api(dtype):
464
+ _test_low_precision_gpu_conversion(dtype, False, "array_api")
465
+
466
+
437
467
  @pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
438
468
  @pytest.mark.parametrize("queue", get_queues())
439
469
  def test_non_array(X, queue):
440
470
  # Verify that to and from table doesn't raise errors
441
471
  # no guarantee is made about type or content
472
+ error = ValueError
442
473
  err_str = ""
443
474
 
475
+ xp = X.__array_namespace__() if hasattr(X, "__array_namespace__") else np
476
+ types = [xp.float64, xp.float32, xp.int64, xp.int32]
477
+
444
478
  if np.isscalar(X):
445
- if np.atleast_2d(X).dtype not in [np.float64, np.float32, np.int64, np.int32]:
446
- err_str = "Found unsupported array type"
447
- elif not (X is None or isinstance(X, np.ndarray)):
479
+ if np.atleast_2d(X).dtype not in types:
480
+ error = TypeError
481
+ err_str = r"Found unsupported array type"
482
+ elif _to_table_supported(X):
483
+ if X.dtype not in types:
484
+ error = TypeError
485
+ err_str = r"Found unsupported (array|tensor) type"
486
+ if 0 in X.shape:
487
+ # not set to a consistent string between the various conversions
488
+ err_str = r".*"
489
+ elif X is not None:
448
490
  err_str = r"\[convert_to_table\] Not available input format for convert Python object to onedal table."
449
491
 
450
492
  if err_str:
451
- with pytest.raises(ValueError, match=err_str):
493
+ with pytest.raises(error, match=err_str):
452
494
  to_table(X)
453
495
  else:
454
496
  X_table = to_table(X, queue=queue)
@@ -456,10 +498,10 @@ def test_non_array(X, queue):
456
498
 
457
499
 
458
500
  @pytest.mark.skipif(
459
- not _is_dpc_backend, reason="Requires DPC backend for dtype conversion"
501
+ not backend.is_dpc, reason="Requires DPC backend for dtype conversion"
460
502
  )
461
503
  @pytest.mark.parametrize("X", [None, 5, "test", True, [], np.pi, lambda: None])
462
- def test_low_precision_non_array(X):
504
+ def test_low_precision_non_array_numpy(X):
463
505
  # Use a dummy queue as fp32 hardware is not in public testing
464
506
 
465
507
  class DummySyclQueue:
@@ -473,3 +515,62 @@ def test_low_precision_non_array(X):
473
515
 
474
516
  queue = DummySyclQueue()
475
517
  test_non_array(X, queue)
518
+
519
+
520
+ @pytest.mark.parametrize("X", [5, True, np.pi])
521
+ def test_basic_ndarray_types_numpy(X):
522
+ # Verify that the various supported basic types can go in and out of tables
523
+ test_non_array(np.asarray(X), None)
524
+
525
+
526
+ @pytest.mark.parametrize(
527
+ "dataframe,queue", get_dataframes_and_queues("dpctl,numpy", "cpu,gpu")
528
+ )
529
+ @pytest.mark.parametrize("can_copy", [True, False])
530
+ def test_to_table_non_contiguous_input_dlpack(dataframe, queue, can_copy):
531
+ X, _ = np.mgrid[:10, :10]
532
+ X_df = _convert_to_dataframe(X, sycl_queue=queue, dataframe=dataframe)
533
+ if not hasattr(X_df, "__dlpack__"):
534
+ pytest.skip("underlying array doesn't support dlpack")
535
+
536
+ X_tens = _OnlyDLTensor(X_df[:, :3])
537
+
538
+ # give the _OnlyDLTensor the ability to copy
539
+ if can_copy:
540
+ X_tens.copy = lambda: _OnlyDLTensor(
541
+ X_tens.data.__array_namespace__().copy(X_tens.data)
542
+ if hasattr(X_tens.data, "__array_namespace__")
543
+ else X_tens.data.copy()
544
+ )
545
+ X_table = to_table(X_tens)
546
+ X_out = from_table(X_table)
547
+ assert_allclose(X[:, :3], X_out)
548
+ else:
549
+ with pytest.raises(RuntimeError, match="Wrong strides"):
550
+ to_table(X_tens)
551
+
552
+
553
+ @pytest.mark.parametrize(
554
+ "dataframe,queue", get_dataframes_and_queues("dpctl,numpy", "cpu,gpu")
555
+ )
556
+ @pytest.mark.parametrize("order", ["F", "C"])
557
+ @pytest.mark.parametrize("data_shape", data_shapes)
558
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
559
+ def test_table_conversions_dlpack(dataframe, queue, order, data_shape, dtype):
560
+ """Test if __dlpack__ data can be properly consumed when only __dlpack__ attribute is exposed.
561
+ This tests kDLOneAPI devices as well as kDLCPU devices
562
+ """
563
+ rng = np.random.RandomState(0)
564
+ X = np.array(5 * rng.random_sample(data_shape), dtype=dtype)
565
+
566
+ X = ORDER_DICT[order](X)
567
+
568
+ X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
569
+ X_tens = _OnlyDLTensor(X_df)
570
+
571
+ X_table = to_table(X_tens)
572
+ X_out = from_table(X_table)
573
+ print(X_table.shape, X_tens.data.shape)
574
+ # oneDAL table construction sets 1d arrays to 2d arrays with 1 col
575
+ # this is counter the numpy strategy, and requires numpy's squeeze
576
+ assert_allclose(np.squeeze(X), np.squeeze(X_out))