scikit-learn-intelex 2025.6.1__py39-none-win_amd64.whl → 2025.7.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 (265) hide show
  1. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +2 -2
  3. {scikit_learn_intelex-2025.6.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  6. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +21 -7
  8. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +1 -1
  9. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +1 -1
  10. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +15 -16
  11. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/__init__.py +26 -1
  12. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_config.py +5 -4
  13. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_device_offload.py +72 -83
  14. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  15. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  16. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +69 -5
  17. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +19 -19
  18. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +17 -1
  19. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_backend.py +62 -37
  20. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +3 -0
  21. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +1 -1
  22. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +2 -2
  23. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +8 -16
  24. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +8 -1
  25. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +25 -32
  26. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +78 -0
  27. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +8 -3
  28. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +45 -2
  29. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +8 -17
  30. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +6 -4
  31. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +10 -4
  32. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +34 -32
  33. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +22 -30
  34. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -5
  35. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +64 -17
  36. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -12
  37. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +1 -1
  38. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +23 -6
  39. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -1
  40. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +22 -25
  41. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +57 -31
  42. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +170 -0
  43. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/validation.py +11 -3
  44. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_config.py +17 -8
  45. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +33 -23
  46. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_utils.py +23 -1
  47. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/base.py +1 -1
  48. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +5 -8
  49. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +17 -13
  50. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +12 -5
  51. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +16 -9
  52. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +115 -0
  53. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +12 -1
  54. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +9 -3
  55. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +14 -5
  56. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +14 -7
  57. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +3 -4
  58. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +9 -0
  59. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +1 -1
  60. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +1 -1
  61. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +119 -0
  62. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -8
  63. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -7
  64. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -7
  65. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +1 -1
  66. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +41 -2
  67. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +22 -0
  68. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -8
  69. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +1 -1
  70. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +1 -1
  71. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +10 -10
  72. {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/METADATA +2 -2
  73. scikit_learn_intelex-2025.7.0.dist-info/RECORD +258 -0
  74. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  75. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  76. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  77. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -71
  78. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -58
  79. scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -66
  80. scikit_learn_intelex-2025.6.1.dist-info/RECORD +0 -257
  81. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  82. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  83. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
  84. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  85. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  86. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  87. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  88. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  89. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  90. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  91. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  92. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  93. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  94. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  95. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  96. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  97. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  98. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  99. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  100. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  101. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  102. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  103. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  104. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  105. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  106. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  107. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  108. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  109. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
  110. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  135. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
  136. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  142. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  143. {scikit_learn_intelex-2025.6.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  156. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
  157. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.6.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  162. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  169. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  170. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  175. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  179. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  180. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  184. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  186. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  187. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  196. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  198. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  199. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  200. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
  206. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  211. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  217. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  248. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  249. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  250. {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  251. {scikit_learn_intelex-2025.6.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  260. {scikit_learn_intelex-2025.6.1.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.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  262. {scikit_learn_intelex-2025.6.1.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.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/LICENSE.txt +0 -0
  264. {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/WHEEL +0 -0
  265. {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,170 @@
1
+ # ==============================================================================
2
+ # Copyright 2024 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
+ """Utilities for accessing third party packages such as DPNP, DPCtl.
18
+
19
+ Notes
20
+ -----
21
+ See `Data Parallel Extensions for Python <https://github.com/IntelPython/DPEP>`__
22
+ """
23
+
24
+ import functools
25
+ import importlib
26
+ import sys
27
+ from typing import Callable
28
+
29
+ from daal4py.sklearn._utils import _package_check_version
30
+
31
+
32
+ @functools.lru_cache(maxsize=256, typed=False)
33
+ def is_dpctl_available(version=None):
34
+ """Check availability of DPCtl package.
35
+
36
+ Parameters
37
+ ----------
38
+ version : str or None, default=None
39
+ Minimum supported dpctl version if installed.
40
+ Secondary version check skipped if set to None.
41
+
42
+ Returns
43
+ -------
44
+ dpctl_available : bool
45
+ Flag describing import success.
46
+ """
47
+ try:
48
+ import dpctl
49
+
50
+ dpctl_available = True
51
+ except ImportError:
52
+ dpctl_available = False
53
+ if dpctl_available and version is not None:
54
+ dpctl_available = _package_check_version(version, dpctl.__version__)
55
+ return dpctl_available
56
+
57
+
58
+ # Note: The dpctl package contains both SYCL infrastructure as well as a
59
+ # data framework (dpctl.tensor). dpctl.tensor is not imported when dpctl is
60
+ # imported. All data frameworks are to be lazy-loaded, but aspects of dpctl
61
+ # (e.g. SyclQueue) are loaded as normal as it is preferred over included
62
+ # backend replacements in the core onedal python module.
63
+ dpctl_available = is_dpctl_available()
64
+
65
+ if dpctl_available:
66
+ from dpctl import SyclQueue
67
+ else:
68
+ from onedal import _default_backend as backend
69
+
70
+ SyclQueue = backend.SyclQueue
71
+
72
+
73
+ def lazy_import(*module_names: str) -> Callable:
74
+ """Lazy load python modules for use in a function.
75
+
76
+ Decorator which uses dependency injection with monkeypatching to import
77
+ python modules when called. This is done only once on first usage of
78
+ the wrapped function to minimize overhead and reduce branching.
79
+
80
+ Parameters
81
+ ----------
82
+ *module_names : strings
83
+ Arguments are names of modules to be imported via importlib.
84
+
85
+ Returns
86
+ -------
87
+ decorator : callable
88
+ Flag describing import success.
89
+
90
+ Notes
91
+ -----
92
+ The wrapped original function should have the modules as the first
93
+ arguments. This will be hidden to the user. Lazy imports cannot be
94
+ stacked, instead pass multiple arguments to the decorator.
95
+ """
96
+
97
+ # func should have leading arguments which are following a dependency
98
+ # injection paradigm
99
+ def decorator(func: Callable):
100
+ @functools.wraps(func)
101
+ def wrapper(*first_args, **first_kwargs):
102
+ modules = tuple(importlib.import_module(i) for i in module_names)
103
+
104
+ # hide dependency injection of the original function
105
+ # onedal/sklearnex will call the underlying function
106
+ # via ``public_func``
107
+ def public_func(*args, **kwargs):
108
+ return func(*modules, *args, **kwargs)
109
+
110
+ # Monkeypatch the original in a general fashion (cannot use
111
+ # globals())
112
+ modname = func.__module__
113
+ funcname = func.__name__
114
+ setattr(sys.modules[modname], funcname, public_func)
115
+
116
+ return public_func(*first_args, **first_kwargs)
117
+
118
+ return wrapper
119
+
120
+ return decorator
121
+
122
+
123
+ @functools.lru_cache(100)
124
+ def _is_subclass_fast(cls: type, modname: str, clsname: str) -> bool:
125
+ # Taken directly from array_api_compat.common._helpers to use for
126
+ # general use (not just array_api)
127
+ try:
128
+ mod = sys.modules[modname]
129
+ except KeyError:
130
+ return False
131
+ parent_cls = getattr(mod, clsname)
132
+ return issubclass(cls, parent_cls)
133
+
134
+
135
+ def is_dpnp_ndarray(x: object) -> bool:
136
+ """Return True if 'x' is a dpnp ndarray.
137
+
138
+ This function does not import dpnp if it has not already been imported
139
+ and is therefore cheap to use.
140
+
141
+ Parameters
142
+ ----------
143
+ x : object
144
+ Any python object.
145
+
146
+ Returns
147
+ -------
148
+ is_dpnp : bool
149
+ Flag if subclass of dpnp.ndarray.
150
+ """
151
+ return _is_subclass_fast(type(x), "dpnp", "ndarray")
152
+
153
+
154
+ def is_dpctl_tensor(x: object) -> bool:
155
+ """Return True if 'x' is a dpctl usm_ndarray.
156
+
157
+ This function does not import dpnp if it has not already been imported
158
+ and is therefore cheap to use.
159
+
160
+ Parameters
161
+ ----------
162
+ x : object
163
+ Any python object.
164
+
165
+ Returns
166
+ -------
167
+ is_dpctl : bool
168
+ Flag if subclass of dpctl.tensor.usm_ndarray.
169
+ """
170
+ return _is_subclass_fast(type(x), "dpctl.tensor", "usm_ndarray")
@@ -93,7 +93,7 @@ def _compute_class_weight(class_weight, classes, y):
93
93
 
94
94
  le = LabelEncoder()
95
95
  y_ind = le.fit_transform(y_)
96
- if not all(np.in1d(classes, le.classes_)):
96
+ if not np.isin(classes, le.classes_).all():
97
97
  raise ValueError("classes should have valid labels that are in y")
98
98
 
99
99
  y_bin = np.bincount(y_ind).astype(np.float64)
@@ -131,10 +131,18 @@ def _validate_targets(y, class_weight, dtype):
131
131
 
132
132
 
133
133
  def get_finite_keyword():
134
- """Gets the argument name for scikit-learn's validation functions compatible with
134
+ """Return scikit-learn-matching finite check enabling keyword.
135
+
136
+ Gets the argument name for scikit-learn's validation functions compatible with
135
137
  the current version of scikit-learn and using function inspection instead of
136
138
  version check due to `onedal` design rule: sklearn versioning should occur
137
- in `sklearnex` module."""
139
+ in ``sklearnex`` module.
140
+
141
+ Returns
142
+ -------
143
+ finite_keyword : str
144
+ Keyword string used to enable finiteness checking.
145
+ """
138
146
  if "ensure_all_finite" in inspect.signature(check_array).parameters:
139
147
  return "ensure_all_finite"
140
148
  return "force_all_finite"
@@ -25,7 +25,7 @@ from onedal._config import _get_config as onedal_get_config
25
25
 
26
26
 
27
27
  def get_config():
28
- """Retrieve current values for configuration set by :func:`set_config`
28
+ """Retrieve current values for configuration set by :func:`set_config`.
29
29
 
30
30
  Returns
31
31
  -------
@@ -49,11 +49,11 @@ def set_config(
49
49
  use_raw_input=None,
50
50
  **sklearn_configs,
51
51
  ):
52
- """Set global configuration
52
+ """Set global configuration.
53
53
 
54
54
  Parameters
55
55
  ----------
56
- target_offload : string or dpctl.SyclQueue or None, default=None
56
+ target_offload : str or SyclQueue or None, default=None
57
57
  The device primarily used to perform computations.
58
58
  If string, expected to be "auto" (the execution context
59
59
  is deduced from input data location),
@@ -70,12 +70,17 @@ def set_config(
70
70
  Global default: True.
71
71
 
72
72
  use_raw_input : bool or None, default=None
73
- .. deprecated:: 2026.0
74
73
  If True, uses the raw input data in some SPMD onedal backend computations
75
74
  without any checks on data consistency or validity.
76
75
  Not recommended for general use.
77
76
  Global default: False.
78
77
 
78
+ .. deprecated:: 2026.0
79
+
80
+ **sklearn_configs : kwargs
81
+ Scikit-learn configuration settings dependent on the installed version
82
+ of scikit-learn.
83
+
79
84
  See Also
80
85
  --------
81
86
  config_context : Context manager for global configuration.
@@ -85,6 +90,10 @@ def set_config(
85
90
  --------
86
91
  Using ``use_raw_input=True`` is not recommended for general use as it
87
92
  bypasses data consistency checks, which may lead to unexpected behavior.
93
+
94
+ Use of ``target_offload`` requires the DPC++ backend. Setting a
95
+ non-default value (e.g ``cpu`` or ``gpu``) without this backend active
96
+ will raise an error.
88
97
  """
89
98
 
90
99
  array_api_dispatch = sklearn_configs.get("array_api_dispatch", False)
@@ -106,12 +115,12 @@ def set_config(
106
115
 
107
116
 
108
117
  @contextmanager
109
- def config_context(**new_config):
110
- """Context manager for global scikit-learn configuration
118
+ def config_context(**new_config): # numpydoc ignore=PR01,PR07
119
+ """Context manager for global scikit-learn configuration.
111
120
 
112
121
  Parameters
113
122
  ----------
114
- target_offload : string or dpctl.SyclQueue or None, default=None
123
+ target_offload : str or SyclQueue or None, default=None
115
124
  The device primarily used to perform computations.
116
125
  If string, expected to be "auto" (the execution context
117
126
  is deduced from input data location),
@@ -134,7 +143,7 @@ def config_context(**new_config):
134
143
  Not recommended for general use.
135
144
  Global default: False.
136
145
 
137
- Note
146
+ Notes
138
147
  -----
139
148
  All settings, not just those presently modified, will be returned to
140
149
  their previous values when the context manager is exited.
@@ -18,14 +18,11 @@ from collections.abc import Callable
18
18
  from functools import wraps
19
19
  from typing import Any, Union
20
20
 
21
- from onedal._device_offload import _copy_to_usm, _transfer_to_host
21
+ from onedal._device_offload import _transfer_to_host
22
+ from onedal.datatypes import copy_to_dpnp, copy_to_usm
22
23
  from onedal.utils import _sycl_queue_manager as QM
23
24
  from onedal.utils._array_api import _asarray, _is_numpy_namespace
24
- from onedal.utils._dpep_helpers import dpnp_available
25
-
26
- if dpnp_available:
27
- import dpnp
28
- from onedal.utils._array_api import _convert_to_dpnp
25
+ from onedal.utils._third_party import is_dpnp_ndarray
29
26
 
30
27
  from ._config import config_context, get_config, set_config
31
28
  from ._utils import PatchingConditionsChain, get_tags
@@ -77,6 +74,7 @@ def dispatch(
77
74
  **kwargs,
78
75
  ) -> Any:
79
76
  """Dispatch object method call to oneDAL if conditionally possible.
77
+
80
78
  Depending on support conditions, oneDAL will be called, otherwise it will
81
79
  fall back to calling scikit-learn. Dispatching to oneDAL can be influenced
82
80
  by the 'use_raw_input' or 'allow_fallback_to_host' config parameters.
@@ -84,25 +82,25 @@ def dispatch(
84
82
  Parameters
85
83
  ----------
86
84
  obj : object
87
- sklearnex object which inherits from oneDALEstimator and contains
85
+ Sklearnex object which inherits from oneDALEstimator and contains
88
86
  ``onedal_cpu_supported`` and ``onedal_gpu_supported`` methods which
89
87
  evaluate oneDAL support.
90
88
 
91
- method_name : string
92
- name of method to be evaluated for oneDAL support
89
+ method_name : str
90
+ Name of method to be evaluated for oneDAL support.
93
91
 
94
92
  branches : dict
95
- dictionary containing functions to be called. Only keys 'sklearn' and
93
+ Dictionary containing functions to be called. Only keys 'sklearn' and
96
94
  'onedal' are used which should contain the relevant scikit-learn and
97
95
  onedal object methods respectively. All functions should accept the
98
96
  inputs from *args and **kwargs. Additionally, the onedal object method
99
97
  must accept a 'queue' keyword.
100
98
 
101
99
  *args : tuple
102
- arguments to be supplied to the dispatched method
100
+ Arguments to be supplied to the dispatched method.
103
101
 
104
102
  **kwargs : dict
105
- keyword arguments to be supplied to the dispatched method
103
+ Keyword arguments to be supplied to the dispatched method.
106
104
 
107
105
  Returns
108
106
  -------
@@ -139,7 +137,7 @@ def dispatch(
139
137
  return branches["sklearn"](obj, *args, **kwargs)
140
138
 
141
139
  # move data to host because of multiple reasons: array_api fallback to host,
142
- # non array_api supporing oneDAL code, issues with usm support in sklearn.
140
+ # non array_api supporting oneDAL code, issues with usm support in sklearn.
143
141
  has_usm_data_for_args, hostargs = _transfer_to_host(*args)
144
142
  has_usm_data_for_kwargs, hostvalues = _transfer_to_host(*kwargs.values())
145
143
 
@@ -164,28 +162,40 @@ def dispatch(
164
162
 
165
163
 
166
164
  def wrap_output_data(func: Callable) -> Callable:
167
- """
165
+ """Transform function output to match input format.
166
+
168
167
  Converts and moves the output arrays of the decorated function
169
168
  to match the input array type and device.
169
+
170
+ Parameters
171
+ ----------
172
+ func : callable
173
+ Function or method which has array data as input.
174
+
175
+ Returns
176
+ -------
177
+ wrapper : callable
178
+ Wrapped function or method which will return matching format.
170
179
  """
171
180
 
172
181
  @wraps(func)
173
182
  def wrapper(self, *args, **kwargs) -> Any:
174
183
  result = func(self, *args, **kwargs)
175
184
  if not (len(args) == 0 and len(kwargs) == 0):
176
- data = (*args, *kwargs.values())
185
+ data = (*args, *kwargs.values())[0]
177
186
 
178
- usm_iface = getattr(data[0], "__sycl_usm_array_interface__", None)
179
- if usm_iface is not None:
180
- result = _copy_to_usm(usm_iface["syclobj"], result)
181
- if dpnp_available and isinstance(data[0], dpnp.ndarray):
182
- result = _convert_to_dpnp(result)
183
- return result
187
+ if usm_iface := getattr(data, "__sycl_usm_array_interface__", None):
188
+ queue = usm_iface["syclobj"]
189
+ return (
190
+ copy_to_dpnp(queue, result)
191
+ if is_dpnp_ndarray(data)
192
+ else copy_to_usm(queue, result)
193
+ )
184
194
 
185
195
  if get_config().get("transform_output") in ("default", None):
186
- input_array_api = getattr(data[0], "__array_namespace__", lambda: None)()
196
+ input_array_api = getattr(data, "__array_namespace__", lambda: None)()
187
197
  if input_array_api and not _is_numpy_namespace(input_array_api):
188
- input_array_api_device = data[0].device
198
+ input_array_api_device = data.device
189
199
  result = _asarray(
190
200
  result, input_array_api, device=input_array_api_device
191
201
  )
@@ -120,11 +120,33 @@ def get_sklearnex_version(rule):
120
120
 
121
121
  def register_hyperparameters(hyperparameters_map):
122
122
  """Decorator for hyperparameters support in estimator class.
123
+
123
124
  Adds `get_hyperparameters` method to class.
125
+
126
+ Parameters
127
+ ----------
128
+ hyperparameters_map : dict
129
+ Dictionary containing the operator-hyperparameter mapping.
130
+
131
+ Returns
132
+ -------
133
+ decorator : function
134
+ Function which adds `get_hyperparameters` method to classes.
124
135
  """
125
136
 
126
137
  def decorator(cls):
127
- """Add `get_hyperparameters()` static method"""
138
+ """Add ``get_hyperparameters()` static method to a class.
139
+
140
+ Parameters
141
+ ----------
142
+ cls : class
143
+ Class to be modified.
144
+
145
+ Returns
146
+ -------
147
+ cls : class
148
+ Class with added `get_hyperparameters` method.
149
+ """
128
150
 
129
151
  class StaticHyperparametersAccessor:
130
152
  """Like a @staticmethod, but additionally raises a Warning when called on an instance."""
@@ -88,7 +88,7 @@ class oneDALEstimator:
88
88
  }
89
89
 
90
90
  def _get_doc_link(self) -> str:
91
- # This method is meant to generate a clickable doc link for classses
91
+ # This method is meant to generate a clickable doc link for classes
92
92
  # in sklearnex including those that are not part of base scikit-learn.
93
93
  # It should be inherited before inheriting from a scikit-learn estimator.
94
94
 
@@ -40,11 +40,12 @@ if sklearn_check_version("1.2"):
40
40
  class BasicStatistics(oneDALEstimator, BaseEstimator):
41
41
  """
42
42
  Estimator for basic statistics.
43
- Allows to compute basic statistics for provided data.
43
+
44
+ Compute low order moments and related statistics for given data.
44
45
 
45
46
  Parameters
46
47
  ----------
47
- result_options: string or list, default='all'
48
+ result_options : str or list, default=str('all')
48
49
  Used to set statistics to calculate. Possible values are ``'min'``, ``'max'``, ``'sum'``, ``'mean'``, ``'variance'``,
49
50
  ``'variation'``, ``sum_squares'``, ``sum_squares_centered'``, ``'standard_deviation'``, ``'second_order_raw_moment'``
50
51
  or a list containing any of these values. If set to ``'all'`` then all possible statistics will be
@@ -73,17 +74,13 @@ class BasicStatistics(oneDALEstimator, BaseEstimator):
73
74
  second_order_raw_moment_ : ndarray of shape (n_features,)
74
75
  Second order moment of each feature over all samples.
75
76
 
76
- Note
77
- ----
77
+ Notes
78
+ -----
78
79
  Attribute exists only if corresponding result option has been provided.
79
80
 
80
- Note
81
- ----
82
81
  Names of attributes without the trailing underscore are
83
82
  supported currently but deprecated in 2025.1 and will be removed in 2026.0
84
83
 
85
- Note
86
- ----
87
84
  Some results can exhibit small variations due to
88
85
  floating point error accumulation and multithreading.
89
86
 
@@ -41,14 +41,17 @@ import warnings
41
41
  @control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
42
42
  class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
43
43
  """
44
- Calculates basic statistics on the given data, allows for computation when the data are split into
45
- batches. The user can use ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
46
- the entire dataset.
44
+ Incremental estimator for basic statistics.
45
+
46
+ Calculates basic statistics on the given data, allows for computation
47
+ when the data are split into batches. The user can use ``partial_fit``
48
+ method to provide a single batch of data or use the ``fit`` method to
49
+ provide the entire dataset.
47
50
 
48
51
  Parameters
49
52
  ----------
50
- result_options: string or list, default='all'
51
- List of statistics to compute
53
+ result_options : str or list, default=str('all')
54
+ List of statistics to compute.
52
55
 
53
56
  batch_size : int, default=None
54
57
  The number of samples to use for each batch. Only used when calling
@@ -88,8 +91,9 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
88
91
  Second order moment of each feature over all samples.
89
92
 
90
93
  n_samples_seen_ : int
91
- The number of samples processed by the estimator. Will be reset on
92
- new calls to ``fit``, but increments across ``partial_fit`` calls.
94
+ The number of samples processed by the estimator. Will be reset
95
+ on new calls to ``fit``, but increments across ``partial_fit``
96
+ calls.
93
97
 
94
98
  batch_size_ : int
95
99
  Inferred batch size from ``batch_size``.
@@ -97,14 +101,14 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
97
101
  n_features_in_ : int
98
102
  Number of features seen during ``fit`` or ``partial_fit``.
99
103
 
100
- Note
101
- ----
104
+ Notes
105
+ -----
102
106
  Attribute exists only if corresponding result option has been provided.
103
107
 
104
- Note
105
- ----
106
- Names of attributes without the trailing underscore are
107
- supported currently but deprecated in 2025.1 and will be removed in 2026.0
108
+ Names of attributes without the trailing underscore are supported
109
+ currently but deprecated in 2025.1 and will be removed in 2026.0.
110
+
111
+ Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
108
112
 
109
113
  %incremental_serialization_note%
110
114
 
@@ -52,9 +52,12 @@ if sklearn_check_version("1.2"):
52
52
  @control_n_jobs(decorated_methods=["partial_fit", "fit", "_onedal_finalize_fit"])
53
53
  class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
54
54
  """
55
- Maximum likelihood covariance estimator that allows for the estimation when the data are split into
56
- batches. The user can use the ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
57
- the entire dataset.
55
+ Incremental maximum likelihood covariance estimator.
56
+
57
+ Estimator that allows for the estimation when the data are split into
58
+ batches. The user can use the ``partial_fit`` method to provide a
59
+ single batch of data or use the ``fit`` method to provide the entire
60
+ dataset.
58
61
 
59
62
  Parameters
60
63
  ----------
@@ -70,8 +73,8 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
70
73
  batch_size : int, default=None
71
74
  The number of samples to use for each batch. Only used when calling
72
75
  ``fit``. If ``batch_size`` is ``None``, then ``batch_size``
73
- is inferred from the data and set to ``5 * n_features``, to provide a
74
- balance between approximation accuracy and memory consumption.
76
+ is inferred from the data and set to ``5 * n_features``, to provide
77
+ a balance between approximation accuracy and memory consumption.
75
78
 
76
79
  copy : bool, default=True
77
80
  If False, X will be overwritten. ``copy=False`` can be used to
@@ -95,6 +98,10 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
95
98
  n_features_in_ : int
96
99
  Number of features seen during ``fit`` or ``partial_fit``.
97
100
 
101
+ Notes
102
+ -----
103
+ Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
104
+
98
105
  %incremental_serialization_note%
99
106
 
100
107
  Examples
@@ -31,7 +31,7 @@ if daal_check_version((2024, "P", 100)):
31
31
  from daal4py.sklearn._utils import sklearn_check_version
32
32
 
33
33
  from .._device_offload import dispatch, wrap_output_data
34
- from .._utils import PatchingConditionsChain
34
+ from .._utils import PatchingConditionsChain, register_hyperparameters
35
35
  from ..base import oneDALEstimator
36
36
  from ..utils._array_api import get_namespace
37
37
  from ..utils.validation import validate_data
@@ -44,8 +44,11 @@ if daal_check_version((2024, "P", 100)):
44
44
 
45
45
  from sklearn.decomposition import PCA as _sklearn_PCA
46
46
 
47
+ from onedal.common.hyperparameters import get_hyperparameters
47
48
  from onedal.decomposition import PCA as onedal_PCA
49
+ from onedal.utils._array_api import _is_numpy_namespace
48
50
 
51
+ @register_hyperparameters({"fit": get_hyperparameters("pca", "train")})
49
52
  @control_n_jobs(decorated_methods=["fit", "transform", "fit_transform"])
50
53
  class PCA(oneDALEstimator, _sklearn_PCA):
51
54
  __doc__ = _sklearn_PCA.__doc__
@@ -212,9 +215,17 @@ if daal_check_version((2024, "P", 100)):
212
215
  # Scikit-learn PCA["covariance_eigh"] was fit
213
216
  return self._transform(X_fit, xp, x_is_centered=x_is_centered)
214
217
 
215
- @wrap_output_data
216
218
  def inverse_transform(self, X):
217
- xp, _ = get_namespace(X)
219
+ # sklearn does not properly input check inverse_transform using
220
+ # ``validate_data`` (as of sklearn 1.7). Yielding the namespace
221
+ # in this way will conform to sklearn and various inputs without
222
+ # causing issues with dimensionality checks, array api support,
223
+ # etc. evaluated in ``validate_data``. This is a special solution.
224
+ xp = (
225
+ func()
226
+ if (func := getattr(X, "__array_namespace__", None))
227
+ else get_namespace(X)[0]
228
+ )
218
229
 
219
230
  mean = self.mean_
220
231
  if self.whiten:
@@ -224,12 +235,8 @@ if daal_check_version((2024, "P", 100)):
224
235
  else:
225
236
  components = self.components_
226
237
 
227
- if "numpy" not in xp.__name__:
228
- # DPCtl and dpnp require inputs to be on the same device for
229
- # matrix multiplication and division. The type and location
230
- # of the components and mean are dependent on the sklearn
231
- # version, this makes sure it is of the same type and on the
232
- # same device as the data (compute follows data).
238
+ if not _is_numpy_namespace(xp):
239
+ # Force matching type to input data if possible
233
240
  components = xp.asarray(components, device=X.device)
234
241
  mean = xp.asarray(mean, device=X.device)
235
242