scikit-learn-intelex 2025.6.0__py311-none-win_amd64.whl → 2025.7.0__py311-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 (265) hide show
  1. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +2 -2
  3. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +258 -2
  4. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +30 -5
  5. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp311-win_amd64.pyd +0 -0
  6. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
  7. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +2 -2
  8. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +21 -7
  9. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -2
  10. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +1 -1
  11. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +1 -1
  12. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +15 -16
  13. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/__init__.py +26 -1
  14. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_config.py +5 -4
  15. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_device_offload.py +72 -83
  16. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  17. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  18. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +69 -5
  19. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +19 -19
  20. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +17 -1
  21. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_backend.py +62 -37
  22. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +3 -0
  23. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +1 -1
  24. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +2 -2
  25. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +8 -16
  26. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +8 -1
  27. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +25 -32
  28. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +78 -0
  29. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +8 -3
  30. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +45 -2
  31. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +8 -17
  32. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +6 -4
  33. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +13 -5
  34. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +34 -32
  35. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +22 -30
  36. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -5
  37. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +64 -17
  38. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -12
  39. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +1 -1
  40. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +23 -6
  41. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -1
  42. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +28 -26
  43. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +57 -31
  44. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +170 -0
  45. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/validation.py +11 -3
  46. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_config.py +17 -8
  47. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +33 -23
  48. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_utils.py +23 -1
  49. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/base.py +1 -1
  50. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +5 -8
  51. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +17 -13
  52. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +12 -5
  53. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +16 -9
  54. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +115 -0
  55. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +12 -1
  56. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +9 -3
  57. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +14 -5
  58. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +14 -7
  59. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +3 -4
  60. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +9 -0
  61. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +1 -1
  62. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +1 -1
  63. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +119 -0
  64. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -8
  65. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -7
  66. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -7
  67. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +1 -1
  68. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +41 -2
  69. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +22 -0
  70. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -8
  71. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +1 -1
  72. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +1 -1
  73. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +10 -10
  74. {scikit_learn_intelex-2025.6.0.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/METADATA +2 -2
  75. scikit_learn_intelex-2025.7.0.dist-info/RECORD +258 -0
  76. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  77. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  78. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  79. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -71
  80. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -58
  81. scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -66
  82. scikit_learn_intelex-2025.6.0.dist-info/RECORD +0 -257
  83. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  84. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  85. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
  86. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  87. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  88. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  89. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  90. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  91. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  92. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  93. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  94. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  95. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  96. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  97. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  98. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  99. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  100. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  101. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  102. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  103. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  104. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  105. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  106. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  107. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  108. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  109. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  110. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  111. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  112. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  113. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  114. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  115. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  116. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  117. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  118. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  119. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  120. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  121. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  122. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  123. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  124. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  125. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  126. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  127. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  128. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  129. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  130. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  131. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  132. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  133. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  134. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  135. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
  136. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
  137. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  138. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  139. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  140. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  141. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  142. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  143. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  144. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  145. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
  147. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  149. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  150. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  151. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  152. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  153. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  154. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  155. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  156. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
  157. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  158. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  160. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  161. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  162. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  163. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  164. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  165. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  166. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  167. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
  168. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  169. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  170. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  171. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  172. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  173. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  175. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -0
  176. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  177. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  178. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  179. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  180. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  181. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  183. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  184. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  185. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  186. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  187. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
  189. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
  190. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  191. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  192. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
  193. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
  194. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  195. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  196. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  197. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  198. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  199. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  200. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  201. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  202. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  203. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  204. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
  206. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  207. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  208. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  209. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  210. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  211. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
  213. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  214. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -0
  215. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  216. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  217. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  218. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  219. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  220. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
  221. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
  222. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  223. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  224. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  225. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  226. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  227. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  228. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  229. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
  230. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
  231. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  232. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  233. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
  234. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
  235. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  237. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  238. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  240. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  241. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
  242. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  243. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
  244. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
  246. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  248. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  249. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  250. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  251. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  252. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  253. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  254. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  255. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -0
  256. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  257. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  258. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  259. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  260. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  261. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  262. {scikit_learn_intelex-2025.6.0.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  263. {scikit_learn_intelex-2025.6.0.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/LICENSE.txt +0 -0
  264. {scikit_learn_intelex-2025.6.0.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/WHEEL +0 -0
  265. {scikit_learn_intelex-2025.6.0.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,115 @@
1
+ # ===============================================================================
2
+ # Copyright 2023 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ===============================================================================
16
+
17
+ import numpy as np
18
+ import pytest
19
+ from numpy.testing import assert_allclose
20
+
21
+ from daal4py.sklearn._utils import daal_check_version
22
+ from onedal.tests.utils._dataframes_support import (
23
+ _as_numpy,
24
+ _convert_to_dataframe,
25
+ get_dataframes_and_queues,
26
+ )
27
+
28
+
29
+ # Note: this is arranged as a fixture with a finalizer instead of as a parameter
30
+ # 'True' / 'False' in order to undo the changes later so that it doesn't affect
31
+ # other tests afterwards. It returns a function instead of making the change
32
+ # directly, in order to avoid importing the estimator class before the import test
33
+ # itself, but it still needs to import the class inside the the function that it
34
+ # returns due to serialization logic in pytest causing differences w.r.t. current
35
+ # closure where the function is called.
36
+ @pytest.fixture(params=[False, True])
37
+ def hyperparameters_route(request):
38
+ def change_parameters(queue, macro_block, grain_size):
39
+ from sklearnex.decomposition import PCA
40
+
41
+ if request.param and daal_check_version((2025, "P", 700)):
42
+ if queue and queue.sycl_device.is_gpu:
43
+ pytest.skip("Test for CPU-only functionality")
44
+
45
+ hparams = PCA.get_hyperparameters("fit")
46
+ if macro_block is not None:
47
+ hyperparameters_route.curr_cpu_macro_block = hparams.cpu_macro_block
48
+ hparams.cpu_macro_block = macro_block
49
+ else:
50
+ hyperparameters_route.curr_cpu_macro_block = None
51
+ if grain_size is not None:
52
+ hyperparameters_route.curr_cpu_grain_size = hparams.cpu_grain_size
53
+ hparams.cpu_grain_size = grain_size
54
+ else:
55
+ hyperparameters_route.curr_cpu_grain_size = None
56
+ elif request.param and not daal_check_version((2025, "P", 700)):
57
+ pytest.skip("Functionality introduced in later versions")
58
+
59
+ def restore_params():
60
+ from sklearnex.decomposition import PCA
61
+
62
+ if request.param and daal_check_version((2025, "P", 500)):
63
+ hparams = PCA.get_hyperparameters("fit")
64
+ if (
65
+ hasattr(hyperparameters_route, "curr_cpu_macro_block")
66
+ and hyperparameters_route.curr_cpu_macro_block is not None
67
+ ):
68
+ hparams.cpu_macro_block = hyperparameters_route.curr_cpu_macro_block
69
+ if (
70
+ hasattr(hyperparameters_route, "curr_cpu_grain_size")
71
+ and hyperparameters_route.curr_cpu_grain_size is not None
72
+ ):
73
+ hparams.cpu_grain_size = hyperparameters_route.curr_cpu_grain_size
74
+
75
+ request.addfinalizer(restore_params)
76
+ return change_parameters
77
+
78
+
79
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
80
+ @pytest.mark.parametrize("macro_block", [None, 2])
81
+ @pytest.mark.parametrize("grain_size", [None, 2])
82
+ def test_sklearnex_import(
83
+ dataframe, queue, macro_block, grain_size, hyperparameters_route
84
+ ):
85
+ from sklearnex.decomposition import PCA
86
+
87
+ X = [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]
88
+ X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
89
+ X_transformed_expected = [
90
+ [-1.38340578, -0.2935787],
91
+ [-2.22189802, 0.25133484],
92
+ [-3.6053038, -0.04224385],
93
+ [1.38340578, 0.2935787],
94
+ [2.22189802, -0.25133484],
95
+ [3.6053038, 0.04224385],
96
+ ]
97
+
98
+ pca = PCA(n_components=2, svd_solver="covariance_eigh")
99
+
100
+ hyperparameters_route(queue, macro_block, grain_size)
101
+
102
+ pca.fit(X)
103
+ X_transformed = pca.transform(X)
104
+ X_fit_transformed = PCA(n_components=2, svd_solver="covariance_eigh").fit_transform(X)
105
+
106
+ if daal_check_version((2024, "P", 100)):
107
+ assert "sklearnex" in pca.__module__
108
+ assert hasattr(pca, "_onedal_estimator")
109
+ else:
110
+ assert "daal4py" in pca.__module__
111
+
112
+ tol = 1e-5 if _as_numpy(X_transformed).dtype == np.float32 else 1e-7
113
+ assert_allclose([6.30061232, 0.54980396], _as_numpy(pca.singular_values_))
114
+ assert_allclose(X_transformed_expected, _as_numpy(X_transformed), rtol=tol)
115
+ assert_allclose(X_transformed_expected, _as_numpy(X_fit_transformed), rtol=tol)
@@ -529,6 +529,17 @@ def sklearn_is_patched(name=None, return_map=False):
529
529
 
530
530
 
531
531
  def is_patched_instance(instance: object) -> bool:
532
- """Returns True if the `instance` is patched with scikit-learn-intelex"""
532
+ """Check if given instance is patched with scikit-learn-intelex.
533
+
534
+ Parameters
535
+ ----------
536
+ instance : object
537
+ Python object, usually a scikit-learn estimator instance.
538
+
539
+ Returns
540
+ -------
541
+ Check : bool
542
+ Boolean whether instance is a daal4py or sklearnex estimator.
543
+ """
533
544
  module = getattr(instance, "__module__", "")
534
545
  return ("daal4py" in module) or ("sklearnex" in module)
@@ -57,7 +57,6 @@ from onedal.ensemble import ExtraTreesRegressor as onedal_ExtraTreesRegressor
57
57
  from onedal.ensemble import RandomForestClassifier as onedal_RandomForestClassifier
58
58
  from onedal.ensemble import RandomForestRegressor as onedal_RandomForestRegressor
59
59
  from onedal.primitives import get_tree_state_cls, get_tree_state_reg
60
- from onedal.utils._dpep_helpers import get_unique_values_with_dpep
61
60
  from onedal.utils.validation import _num_features, _num_samples
62
61
  from sklearnex import get_hyperparameters
63
62
  from sklearnex._utils import register_hyperparameters
@@ -123,7 +122,13 @@ class BaseForest(oneDALEstimator, ABC):
123
122
  if sample_weight is not None:
124
123
  sample_weight = [sample_weight]
125
124
  else:
126
- self.classes_ = get_unique_values_with_dpep(y)
125
+ # try catch needed for raw_inputs + array_api data where unlike
126
+ # numpy the way to yield unique values is via `unique_values`
127
+ # This should be removed when refactored for gpu zero-copy
128
+ try:
129
+ self.classes_ = xp.unique(y)
130
+ except AttributeError:
131
+ self.classes_ = xp.unique_values(y)
127
132
  self.n_classes_ = len(self.classes_)
128
133
  self.n_features_in_ = X.shape[1]
129
134
 
@@ -826,7 +831,8 @@ class ForestClassifier(BaseForest, _sklearn_ForestClassifier):
826
831
  res = self._onedal_estimator.predict(X, queue=queue)
827
832
  try:
828
833
  return xp.take(
829
- xp.asarray(self.classes_), xp.astype(xp.reshape(res, (-1,)), xp.int64)
834
+ xp.asarray(self.classes_, device=res.sycl_queue),
835
+ xp.astype(xp.reshape(res, (-1,)), xp.int64),
830
836
  )
831
837
  except AttributeError:
832
838
  return np.take(self.classes_, res.ravel().astype(np.int64, casting="unsafe"))
@@ -60,8 +60,11 @@ class IncrementalLinearRegression(
60
60
  MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEstimator
61
61
  ):
62
62
  """
63
- Trains a linear regression model, allows for computation if the data are split into
64
- batches. The user can use the ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
63
+ Incremental Ordinary least squares Linear Regression.
64
+
65
+ Trains a linear regression model, allows for computation if the data
66
+ are split into batches. The user can use the ``partial_fit`` method
67
+ to provide a single batch of data or use the ``fit`` method to provide
65
68
  the entire dataset.
66
69
 
67
70
  Parameters
@@ -107,6 +110,10 @@ class IncrementalLinearRegression(
107
110
  n_features_in_ : int
108
111
  Number of features seen during ``fit`` or ``partial_fit``.
109
112
 
113
+ Notes
114
+ -----
115
+ Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
116
+
110
117
  %incremental_serialization_note%
111
118
 
112
119
  Examples
@@ -311,8 +318,7 @@ class IncrementalLinearRegression(
311
318
 
312
319
  def partial_fit(self, X, y, check_input=True):
313
320
  """
314
- Incremental fit linear model with X and y. All of X and y is
315
- processed as a single batch.
321
+ Incremental fit with X and y. X and y are processed as a single batch.
316
322
 
317
323
  Parameters
318
324
  ----------
@@ -324,6 +330,9 @@ class IncrementalLinearRegression(
324
330
  Target values, where ``n_samples`` is the number of samples and
325
331
  ``n_targets`` is the number of targets.
326
332
 
333
+ check_input : bool, default=True
334
+ Run validate_data on X and y.
335
+
327
336
  Returns
328
337
  -------
329
338
  self : IncrementalLinearRegression
@@ -354,7 +363,7 @@ class IncrementalLinearRegression(
354
363
  ``n_features`` is the number of features. It is necessary for
355
364
  ``n_samples`` to be not less than ``n_features`` if ``fit_intercept``
356
365
  is False and not less than ``n_features + 1`` if ``fit_intercept``
357
- is True
366
+ is 'True'.
358
367
 
359
368
  y : array-like of shape (n_samples,) or (n_samples, n_targets)
360
369
  Target values, where ``n_samples`` is the number of samples and
@@ -45,7 +45,8 @@ from ..base import oneDALEstimator
45
45
  class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEstimator):
46
46
  """
47
47
  Incremental estimator for Ridge Regression.
48
- Allows to train Ridge Regression if data is splitted into batches.
48
+
49
+ Allows to train Ridge Regression if data is split into batches.
49
50
 
50
51
  Parameters
51
52
  ----------
@@ -96,6 +97,10 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
96
97
  batch_size_ : int
97
98
  Inferred batch size from ``batch_size``.
98
99
 
100
+ Notes
101
+ -----
102
+ Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
103
+
99
104
  %incremental_serialization_note%
100
105
  """
101
106
 
@@ -240,8 +245,7 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
240
245
 
241
246
  def partial_fit(self, X, y, check_input=True):
242
247
  """
243
- Incrementally fits the linear model with X and y. All of X and y is
244
- processed as a single batch.
248
+ Incrementally fits with X and y. X and y are processed as a single batch.
245
249
 
246
250
  Parameters
247
251
  ----------
@@ -253,6 +257,9 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
253
257
  Target values, where `n_samples` is the number of samples and
254
258
  `n_targets` is the number of targets.
255
259
 
260
+ check_input : bool, default=True
261
+ Run validate_data on X and y.
262
+
256
263
  Returns
257
264
  -------
258
265
  self : IncrementalRidge
@@ -280,10 +287,10 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
280
287
  ----------
281
288
  X : array-like of shape (n_samples, n_features)
282
289
  Training data, where `n_samples` is the number of samples and
283
- `n_features` is the number of features. It is necessary for
284
- `n_samples` to be not less than `n_features` if `fit_intercept`
285
- is False and not less than `n_features` + 1 if `fit_intercept`
286
- is True
290
+ ``n_features`` is the number of features. It is necessary for
291
+ ``n_samples`` to be not less than ``n_features`` if ``fit_intercept``
292
+ is False and not less than ``n_features`` + 1 if ``fit_intercept``
293
+ is True.
287
294
 
288
295
  y : array-like of shape (n_samples,) or (n_samples, n_targets)
289
296
  Target values, where `n_samples` is the number of samples and
@@ -208,12 +208,11 @@ if daal_check_version((2024, "P", 1)):
208
208
  ),
209
209
  (self.class_weight is None, "Class weight is not supported"),
210
210
  (self.solver == "newton-cg", "Only newton-cg solver is supported."),
211
+ (self.warm_start == False, "Warm start is not supported."),
211
212
  (
212
- self.multi_class != "multinomial",
213
- "multi_class parameter is not supported.",
213
+ not self.l1_ratio,
214
+ "l1 ratio is not supported.",
214
215
  ),
215
- (self.warm_start == False, "Warm start is not supported."),
216
- (self.l1_ratio is None, "l1 ratio is not supported."),
217
216
  (sample_weight is None, "Sample weight is not supported."),
218
217
  (
219
218
  target_type == "binary",
@@ -325,6 +325,15 @@ if daal_check_version((2024, "P", 600)):
325
325
  self._onedal_estimator.fit(X, y, queue=queue)
326
326
  self._save_attributes()
327
327
 
328
+ if sklearn_check_version("1.6"):
329
+ if y.ndim == 1 or y.shape[1] == 1:
330
+ self.coef_ = self.coef_.ravel()
331
+ self.intercept_ = self.intercept_[0]
332
+ else:
333
+ if self.coef_.shape[0] == 1 and y.ndim == 1:
334
+ self.coef_ = self.coef_.ravel()
335
+ self.intercept_ = self.intercept_[0]
336
+
328
337
  def _onedal_predict(self, X, queue=None):
329
338
  X = validate_data(self, X, accept_sparse=False, reset=False)
330
339
 
@@ -190,7 +190,7 @@ def test_tsne_reproducibility(dataframe, queue, dtype):
190
190
  X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
191
191
  tsne_1 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
192
192
  tsne_2 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
193
- # in case of dpctl.tensor.usm_ndarray covert to numpy array
193
+ # in case of dpctl.tensor.usm_ndarray convert to numpy array
194
194
  tsne_1 = _as_numpy(tsne_1)
195
195
  tsne_2 = _as_numpy(tsne_2)
196
196
  assert_allclose(tsne_1, tsne_2, rtol=1e-5)
@@ -141,7 +141,7 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor)
141
141
  # This had to be done because predict loses the queue when no
142
142
  # argument is given and it is a dpctl tensor or dpnp array.
143
143
  # This would cause issues in fit_predict. Also, available_if
144
- # is hard to unwrap, and this is the most straighforward way.
144
+ # is hard to unwrap, and this is the most straightforward way.
145
145
  @available_if(_sklearn_LocalOutlierFactor._check_novelty_fit_predict)
146
146
  @wraps(_sklearn_LocalOutlierFactor.fit_predict, assigned=["__doc__"])
147
147
  @wrap_output_data
@@ -0,0 +1,119 @@
1
+ # ===============================================================================
2
+ # Copyright 2023 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ===============================================================================
16
+
17
+ import numpy as np
18
+ import pytest
19
+ from numpy.testing import assert_allclose
20
+
21
+ from daal4py.sklearn._utils import daal_check_version
22
+ from onedal.tests.utils._dataframes_support import (
23
+ _convert_to_dataframe,
24
+ get_dataframes_and_queues,
25
+ )
26
+
27
+
28
+ # Note: this is arranged as a fixture with a finalizer instead of as a parameter
29
+ # 'True' / 'False' in order to undo the changes later so that it doesn't affect
30
+ # other tests afterwards. It returns a function instead of making the change
31
+ # directly, in order to avoid importing the estimator class before the import test
32
+ # itself, but it still needs to import the class inside the the function that it
33
+ # returns due to serialization logic in pytest causing differences w.r.t. current
34
+ # closure where the function is called.
35
+ @pytest.fixture(params=[False, True])
36
+ def hyperparameters_route(request):
37
+ def change_parameters(queue, macro_block, grain_size):
38
+ from sklearnex.preview.covariance import EmpiricalCovariance
39
+
40
+ if request.param and daal_check_version((2025, "P", 700)):
41
+ if queue and queue.sycl_device.is_gpu:
42
+ pytest.skip("Test for CPU-only functionality")
43
+
44
+ hparams = EmpiricalCovariance.get_hyperparameters("fit")
45
+ if macro_block is not None:
46
+ hyperparameters_route.curr_cpu_macro_block = hparams.cpu_macro_block
47
+ hparams.cpu_macro_block = macro_block
48
+ else:
49
+ hyperparameters_route.curr_cpu_macro_block = None
50
+ if grain_size is not None:
51
+ hyperparameters_route.curr_cpu_grain_size = hparams.cpu_grain_size
52
+ hparams.cpu_grain_size = grain_size
53
+ else:
54
+ hyperparameters_route.curr_cpu_grain_size = None
55
+ elif request.param and not daal_check_version((2025, "P", 700)):
56
+ pytest.skip("Functionality introduced in later versions")
57
+
58
+ def restore_params():
59
+ from sklearnex.preview.covariance import EmpiricalCovariance
60
+
61
+ if request.param and daal_check_version((2025, "P", 500)):
62
+ hparams = EmpiricalCovariance.get_hyperparameters("fit")
63
+ if (
64
+ hasattr(hyperparameters_route, "curr_cpu_macro_block")
65
+ and hyperparameters_route.curr_cpu_macro_block is not None
66
+ ):
67
+ hparams.cpu_macro_block = hyperparameters_route.curr_cpu_macro_block
68
+ if (
69
+ hasattr(hyperparameters_route, "curr_cpu_grain_size")
70
+ and hyperparameters_route.curr_cpu_grain_size is not None
71
+ ):
72
+ hparams.cpu_grain_size = hyperparameters_route.curr_cpu_grain_size
73
+
74
+ request.addfinalizer(restore_params)
75
+ return change_parameters
76
+
77
+
78
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
79
+ @pytest.mark.parametrize("macro_block", [None, 2])
80
+ @pytest.mark.parametrize("grain_size", [None, 2])
81
+ @pytest.mark.parametrize("assume_centered", [True, False])
82
+ def test_sklearnex_import_covariance(
83
+ dataframe, queue, macro_block, grain_size, assume_centered, hyperparameters_route
84
+ ):
85
+ from sklearnex.preview.covariance import EmpiricalCovariance
86
+
87
+ X = np.array([[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]])
88
+
89
+ X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
90
+ empcov = EmpiricalCovariance(assume_centered=assume_centered)
91
+
92
+ hyperparameters_route(queue, macro_block, grain_size)
93
+
94
+ result = empcov.fit(X)
95
+
96
+ expected_covariance = np.array([[0, 0], [0, 0]])
97
+ expected_means = np.array([0, 0])
98
+
99
+ if assume_centered:
100
+ expected_covariance = np.array([[0, 0], [0, 1]])
101
+ else:
102
+ expected_means = np.array([0, 1])
103
+
104
+ assert_allclose(expected_covariance, result.covariance_)
105
+ assert_allclose(expected_means, result.location_)
106
+
107
+ X = np.array([[1, 2], [3, 6]])
108
+
109
+ X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
110
+ result = empcov.fit(X)
111
+
112
+ if assume_centered:
113
+ expected_covariance = np.array([[5, 10], [10, 20]])
114
+ else:
115
+ expected_covariance = np.array([[1, 2], [2, 4]])
116
+ expected_means = np.array([2, 4])
117
+
118
+ assert_allclose(expected_covariance, result.covariance_)
119
+ assert_allclose(expected_means, result.location_)
@@ -24,14 +24,6 @@ from ...covariance import (
24
24
 
25
25
 
26
26
  class IncrementalEmpiricalCovariance(base_IncrementalEmpiricalCovariance):
27
- """
28
- Incremental distributed estimator for covariance.
29
- Allows to distributely compute empirical covariance estimated by maximum
30
- likelihood method if data are splitted into batches.
31
-
32
- API is the same as for `sklearnex.covariance.IncrementalEmpiricalCovariance`
33
- """
34
-
35
27
  _onedal_incremental_covariance = staticmethod(
36
28
  onedalSPMD_IncrementalEmpiricalCovariance
37
29
  )
@@ -20,11 +20,4 @@ from ...preview.decomposition import IncrementalPCA as base_IncrementalPCA
20
20
 
21
21
 
22
22
  class IncrementalPCA(base_IncrementalPCA):
23
- """
24
- Distributed incremental estimator for PCA based on sklearnex implementation.
25
- Allows for distributed PCA computation if data is split into batches.
26
-
27
- API is the same as for `sklearnex.decomposition.IncrementalPCA`
28
- """
29
-
30
23
  _onedal_incremental_pca = staticmethod(onedalSPMD_IncrementalPCA)
@@ -25,11 +25,4 @@ from ...linear_model import (
25
25
 
26
26
 
27
27
  class IncrementalLinearRegression(base_IncrementalLinearRegression):
28
- """
29
- Distributed incremental estimator for linear regression.
30
- Allows for distributed training of linear regression if data is split into batches.
31
-
32
- API is the same as for `sklearnex.linear_model.IncrementalLinearRegression`.
33
- """
34
-
35
28
  _onedal_incremental_linear = staticmethod(onedalSPMD_IncrementalLinearRegression)
@@ -233,7 +233,7 @@ class BaseSVC(BaseSVM):
233
233
 
234
234
  le = LabelEncoder()
235
235
  y_ind = le.fit_transform(y_)
236
- if not all(np.in1d(classes, le.classes_)):
236
+ if not np.isin(classes, le.classes_).all():
237
237
  raise ValueError("classes should have valid labels that are in y")
238
238
 
239
239
  recip_freq = len(y_) / (len(le.classes_) * np.bincount(y_ind).astype(np.float64))
@@ -20,6 +20,7 @@ import os
20
20
  import pathlib
21
21
  import pkgutil
22
22
  import re
23
+ import subprocess
23
24
  import sys
24
25
  import trace
25
26
  from contextlib import redirect_stdout
@@ -31,6 +32,7 @@ from sklearn.utils import all_estimators
31
32
 
32
33
  from daal4py.sklearn._utils import sklearn_check_version
33
34
  from onedal.tests.test_common import _check_primitive_usage_ban
35
+ from onedal.tests.utils._dataframes_support import test_frameworks
34
36
  from sklearnex.base import oneDALEstimator
35
37
  from sklearnex.tests.utils import (
36
38
  PATCHED_MODELS,
@@ -118,7 +120,7 @@ def test_target_offload_ban():
118
120
  allowed_locations=TARGET_OFFLOAD_ALLOWED_LOCATIONS,
119
121
  )
120
122
  output = "\n".join(output)
121
- assert output == "", f"target offloading is occuring in: \n{output}"
123
+ assert output == "", f"target offloading is occurring in: \n{output}"
122
124
 
123
125
 
124
126
  def _sklearnex_walk(func):
@@ -146,7 +148,7 @@ def test_class_trailing_underscore_ban(monkeypatch):
146
148
  estimators = all_estimators() # list of tuples
147
149
  for name, obj in estimators:
148
150
  if "preview" not in obj.__module__ and "daal4py" not in obj.__module__:
149
- # propeties also occur in sklearn, especially in deprecations and are expected
151
+ # properties also occur in sklearn, especially in deprecations and are expected
150
152
  # to error if queried and the estimator is not fitted
151
153
  assert all(
152
154
  [
@@ -201,6 +203,43 @@ def test_oneDALEstimator_inheritance(monkeypatch):
201
203
  ), f"oneDALEstimator should be inherited just before BaseEstimator in {name}"
202
204
 
203
205
 
206
+ def test_frameworks_lazy_import(monkeypatch):
207
+ """Check that all estimators defined in sklearnex do not actively
208
+ load data frameworks which are not numpy or pandas.
209
+ """
210
+ active = ["numpy", "pandas", "dpctl.tensor"]
211
+ # handle naming conventions for data frameworks in testing
212
+ frameworks = test_frameworks.replace("dpctl", "dpctl.tensor")
213
+ frameworks = frameworks.replace("array_api", "array_api_strict")
214
+ lazy = ",".join([i for i in frameworks.split(",") if i not in active])
215
+ if not lazy:
216
+ pytest.skip("No lazily-imported data frameworks available in testing")
217
+
218
+ monkeypatch.setattr(pkgutil, "walk_packages", _sklearnex_walk(pkgutil.walk_packages))
219
+ estimators = all_estimators() # list of tuples
220
+
221
+ filtered_modules = []
222
+ for name, obj in estimators:
223
+ # do not test spmd or preview, as they are exempt
224
+ if "preview" not in obj.__module__ and "spmd" not in obj.__module__:
225
+ filtered_modules += [obj.__module__]
226
+
227
+ modules = ",".join(filtered_modules)
228
+
229
+ # import all modules with estimators and check sys.modules for the lazily-imported data
230
+ # frameworks. It is done in a subprocess to isolate the impact of testing infrastructure
231
+ # on sys.modules, which may have actively loaded those frameworks into the test env
232
+ teststr = (
233
+ "import sys,{mod};assert all([i not in sys.modules for i in '{l}'.split(',')])"
234
+ )
235
+ cmd = [sys.executable, "-c", teststr.format(mod=modules, l=lazy)]
236
+
237
+ try:
238
+ subprocess.run(cmd, check=True, capture_output=True, text=True)
239
+ except subprocess.CalledProcessError as e:
240
+ raise AssertionError(f"a framework in '{lazy}' is being actively loaded") from e
241
+
242
+
204
243
  def _fullpath(path):
205
244
  return os.path.realpath(os.path.expanduser(path))
206
245
 
@@ -16,6 +16,7 @@
16
16
 
17
17
  import logging
18
18
 
19
+ import numpy as np
19
20
  import pytest
20
21
  import sklearn
21
22
 
@@ -127,6 +128,27 @@ def test_config_context_works():
127
128
  assert onedal_default_config_after_cc[param] == onedal_default_config[param]
128
129
 
129
130
 
131
+ @pytest.mark.skipif(
132
+ onedal._default_backend.is_dpc, reason="requires host default backend"
133
+ )
134
+ @pytest.mark.parametrize("target", ["auto", "cpu", "cpu:0", "gpu", 3])
135
+ def test_host_backend_target_offload(target):
136
+ from sklearnex.neighbors import NearestNeighbors
137
+
138
+ err_msg = (
139
+ r"device use via \`target_offload\` is only supported with the DPC\+\+ backend"
140
+ )
141
+
142
+ est = NearestNeighbors()
143
+ if target != "auto":
144
+ with pytest.raises(ValueError, match=err_msg):
145
+ with sklearnex.config_context(target_offload=target):
146
+ est.fit(np.eye(5, 8))
147
+ else:
148
+ with sklearnex.config_context(target_offload=target):
149
+ est.fit(np.eye(5, 8))
150
+
151
+
130
152
  @pytest.mark.skipif(
131
153
  not is_dpctl_device_available(["gpu"]), reason="Requires a gpu for fallback testing"
132
154
  )
@@ -35,7 +35,6 @@ from onedal.tests.utils._dataframes_support import (
35
35
  )
36
36
  from onedal.tests.utils._device_selection import get_queues, is_dpctl_device_available
37
37
  from onedal.utils._array_api import _get_sycl_namespace
38
- from onedal.utils._dpep_helpers import dpctl_available, dpnp_available
39
38
  from sklearnex import config_context
40
39
  from sklearnex.tests.utils import (
41
40
  PATCHED_FUNCTIONS,
@@ -44,13 +43,6 @@ from sklearnex.tests.utils import (
44
43
  DummyEstimator,
45
44
  )
46
45
 
47
- if dpctl_available:
48
- from dpctl.tensor import usm_ndarray
49
-
50
- if dpnp_available:
51
- import dpnp
52
-
53
-
54
46
  CPU_SKIP_LIST = (
55
47
  "TSNE", # too slow for using in testing on common data size
56
48
  "config_context", # does not malloc
@@ -95,7 +95,7 @@ def test_n_jobs_support(estimator, n_jobs, caplog):
95
95
  "NearestNeighbors" in estimator and "radius" in method_name
96
96
  ):
97
97
  # radius_neighbors and radius_neighbors_graph violate sklearn fallback guard
98
- # but use sklearnex interally, additional development must be done to those
98
+ # but use sklearnex internally, additional development must be done to those
99
99
  # functions to bring them to design compliance.
100
100
  continue
101
101
  try:
@@ -153,7 +153,7 @@ def gen_models_info(algorithms, required_inputs=["X", "y"], fit=False, daal4py=T
153
153
  required_inputs : list, tuple of strings or None
154
154
  list of required args/kwargs for callable attribute (only non-private,
155
155
  non-BaseEstimator attributes). Only one must be present, None
156
- signifies taking all non-private attribues, callable or not.
156
+ signifies taking all non-private attributes, callable or not.
157
157
 
158
158
  fit: bool (default False)
159
159
  Include "fit" method as an estimator-attribute pair