pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/math/py-scikit-learn



Module Name:    pkgsrc
Committed By:   adam
Date:           Fri Oct 23 12:18:46 UTC 2026

Modified Files:
        pkgsrc/math/py-scikit-learn: Makefile PLIST distinfo
        pkgsrc/math/py-scikit-learn/patches: patch-sklearn_tree___tree.pyx

Log Message:
py-scikit-learn: updated to 1.9.1

1.9.1

Support for Array API

- |Fix| Fixed classification metrics to accept pandas labels when array API dispatch
  is enabled and predictions are from a different array API namespace or
  device.
  By :user:`Olivier Grisel <ogrisel>`.

Metadata routing

Refer to the :ref:`Metadata Routing User Guide <metadata_routing>` for
more details.

- |Fix| Metadata is now correctly routed to the sub-estimator of meta-estimators such as
  :class:`feature_selection.SelectFromModel`, :class:`feature_selection.RFE`,
  :class:`feature_selection.RFECV`, :class:`feature_selection.SequentialFeatureSelector`,
  and :class:`impute.IterativeImputer` when they are used as an intermediate step of a
  :class:`pipeline.Pipeline`, i.e. when their composite ``fit_transform`` method is the
  target of the routing. Previously, metadata such as ``sample_weight`` was silently
  dropped in this case.
  By :user:`Adrin Jalali <adrinjalali>` and :user:`Kyle Schluns <kschluns>`.

- |Fix| :class:`ensemble.BaggingClassifier` now correctly routes metadata via `predict` and
  `predict_proba` dynamically to the corresponding method on the sub-estimator.
  By :user:`Stefanie Senger <StefanieSenger>`.

- |Fix| :class:`pipeline.Pipeline`'s :meth:`~pipeline.Pipeline.fit_transform` and
  :meth:`~pipeline.Pipeline.fit_predict` now correctly apply ``transform_input`` to
  metadata routed to intermediate steps, matching :meth:`~pipeline.Pipeline.fit`.
  By :user:`Stefanie Senger <StefanieSenger>`.

- |Fix| :class:`compose.TransformedTargetRegressor` now correctly routes metadata such as
  ``sample_weight`` to its default regressor (:class:`~linear_model.LinearRegression`)
  when metadata routing is enabled.
  By :user:`Stefanie Senger <StefanieSenger>`.

Callbacks

- |Fix| Fixed a bug where fitting an estimator with a :class:`callback.ScoringMonitor` and a
  parallel backend using multi-processing could fail with "Could not pickle the task to
  send it to the workers".
  By :user:`Jérémie du Boisberranger <jeremiedbb>`.

:mod:`sklearn.cluster`

- |Fix| :class:`cluster.DBSCAN` and :func:`cluster.dbscan` no longer raise a
  spurious :class:`~sklearn.exceptions.EfficiencyWarning` when given a
  precomputed sparse distance matrix.
  By :user:`Vadim <Tweezky66>`.

- |Fix| :class:`cluster.OPTICS` no longer raises a
  :class:`~sklearn.exceptions.EfficiencyWarning` when fitted on a
  precomputed sparse distance matrix.
  By :user:`Dea María Léon <deamarialeon>`.

:mod:`sklearn.datasets`

- |Fix| :func:`datasets.fetch_openml` now correctly recovers from a corrupted
  download by re-downloading it, instead of raising an error.
  By :user:`Roman Yurchak <rth>`.

- |Fix| :func:`datasets.fetch_file` now raises a `ValueError` when `local_filename`
  is a path instead of a plain filename.
  By :user:`Dea María Léon <DeaMariaLeon>`.

:mod:`sklearn.discriminant_analysis`

- |Fix| :class:`discriminant_analysis.LinearDiscriminantAnalysis` and
  :class:`discriminant_analysis.QuadraticDiscriminantAnalysis` now return the same results
  when using `solver="svd"` and `solver="eigen"`. The normalization for `solver="svd"`
  is changed to `1/n_samples` instead of `1/(n_samples - n_classes)` and `1/(n_samples - 1)`,
  respectively, which is consistent with the maximum likelihood covariance estimator
  (same as the `solver="eigen"` default).
  By :user:`Daniel Herrera-Esposito <dherrera1911>`.

:mod:`sklearn.metrics`

- |Efficiency| Scorers created with :func:`~metrics.make_scorer` no longer deep-copy metadata
  kwargs on each call, reducing memory usage during model selection and
  cross-validation.
  By :user:`Stefanie Senger <StefanieSenger>`.

:mod:`sklearn.neighbors`

- |Fix| :meth:`neighbors.NearestNeighbors.radius_neighbors` now correctly handles an
  array-like ``radius`` when ``n_jobs > 1`` with the ``ball_tree`` and
  ``kd_tree`` algorithms.
  By :user:`Nicolas Salvy <nicolassalvy>`.

:mod:`sklearn.preprocessing`

- |Fix| Fixed a bug in :class:`preprocessing.QuantileTransformer` where fitting on
  sparse data with `ignore_implicit_zeros=True` and subsampling could compute
  degenerate quantiles for some features.
  By :user:`Arthur Lacote <cakedev0>`.

:mod:`sklearn.svm`

- |Fix| Fixed a memory leak when calling the `fit` method of :class:`svm.LinearSVR`.
  By :user:`Jake VanderPlas <jakevdp>`.

- |Fix| Fixed an out-of-bound write in the ``fit`` method of :class:`svm.LinearSVC` memory
  when using ``multi_class="crammer_singer"``.  By :user:`Jake VanderPlas <jakevdp>`.

:mod:`sklearn.utils`

- |Fix| The HTML representation of estimators now truncates the output feature list
  to 100 entries to improve rendering performance for estimators with many
  output features.
  By :user:`Dea María Léon <deamarialeon>`.

- |Fix| Array API supporting functions and estimators that handle mixed input
  namespaces now make negative-stride NumPy arrays contiguous before
  transferring them to PyTorch through DLPack, avoiding a Python process
  abort in ``torch.from_dlpack``.
  By :user:`Yin Li <Kevin-Li-2025>`.

- |Fix| The copy-to-clipboard icons in the HTML representation of estimators are
  now rendered as ``<button>`` elements with an ``aria-label`` and a visible
  focus outline, instead of non-interactive ``<i>`` elements, so they are
  reachable and usable with a keyboard and screen readers.
  By :user:`Dea María Léon <deamarialeon>`.

- |Fix| ``set_output(transform="polars")`` no longer emits a
  ``DeprecationWarning`` with ``polars>=1.42.1`` by using
  ``how="horizontal_extend"`` instead of the deprecated
  ``how="horizontal"`` when concatenating polars dataframes.
  By :user:`Felix Hoehle <fhoehle>`.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.37 pkgsrc/math/py-scikit-learn/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/math/py-scikit-learn/PLIST
cvs rdiff -u -r1.18 -r1.19 pkgsrc/math/py-scikit-learn/distinfo
cvs rdiff -u -r1.1 -r1.2 \
    pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/math/py-scikit-learn/Makefile
diff -u pkgsrc/math/py-scikit-learn/Makefile:1.36 pkgsrc/math/py-scikit-learn/Makefile:1.37
--- pkgsrc/math/py-scikit-learn/Makefile:1.36   Sun Jun 28 15:41:31 2026
+++ pkgsrc/math/py-scikit-learn/Makefile        Fri Oct 23 12:18:46 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.36 2026/06/28 15:41:31 wiz Exp $
+# $NetBSD: Makefile,v 1.37 2026/10/23 12:18:46 adam Exp $
 
-DISTNAME=      scikit_learn-1.8.0
+DISTNAME=      scikit_learn-1.9.1
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME:S/_/-/}
 CATEGORIES=    math python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=s/scikit-learn/}
@@ -12,9 +12,10 @@ LICENSE=     modified-bsd
 
 TOOL_DEPENDS+= meson>=1.1.0:../../devel/meson
 TOOL_DEPENDS+= ${PYPKGPREFIX}-meson_python>=0.17.1:../../devel/py-meson_python
-DEPENDS+=      ${PYPKGPREFIX}-joblib>=1.3.0:../../devel/py-joblib
+DEPENDS+=      ${PYPKGPREFIX}-joblib>=1.4.0:../../devel/py-joblib
+DEPENDS+=      ${PYPKGPREFIX}-narwhals>=2.0.1:../../misc/py-narwhals
 DEPENDS+=      ${PYPKGPREFIX}-scipy>=1.10.0:../../math/py-scipy
-DEPENDS+=      ${PYPKGPREFIX}-threadpoolctl>=3.2.0:../../parallel/py-threadpoolctl
+DEPENDS+=      ${PYPKGPREFIX}-threadpoolctl>=3.5.0:../../parallel/py-threadpoolctl
 TEST_DEPENDS+= ${PYPKGPREFIX}-test-cov>=2.9.0:../../devel/py-test-cov
 
 USE_LANGUAGES= c c++ fortran
@@ -24,7 +25,7 @@ GCC_REQD+=    8
 REPLACE_PYTHON+=       sklearn/_build_utils/version.py
 REPLACE_PYTHON+=       sklearn/_build_utils/tempita.py
 
-PYTHON_VERSIONS_INCOMPATIBLE=  310 311
+PYTHON_VERSIONS_INCOMPATIBLE=  311
 
 post-install:
        ${RM} ${DESTDIR}${PREFIX}/${PYSITELIB}/sklearn/preprocessing/_target_encoder_fast.pyx.orig

Index: pkgsrc/math/py-scikit-learn/PLIST
diff -u pkgsrc/math/py-scikit-learn/PLIST:1.13 pkgsrc/math/py-scikit-learn/PLIST:1.14
--- pkgsrc/math/py-scikit-learn/PLIST:1.13      Sun Jan 11 10:28:54 2026
+++ pkgsrc/math/py-scikit-learn/PLIST   Fri Oct 23 12:18:46 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.13 2026/01/11 10:28:54 adam Exp $
+@comment $NetBSD: PLIST,v 1.14 2026/10/23 12:18:46 adam Exp $
 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 ${PYSITELIB}/${WHEEL_INFODIR}/RECORD
 ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
@@ -61,6 +61,51 @@ ${PYSITELIB}/sklearn/base.pyo
 ${PYSITELIB}/sklearn/calibration.py
 ${PYSITELIB}/sklearn/calibration.pyc
 ${PYSITELIB}/sklearn/calibration.pyo
+${PYSITELIB}/sklearn/callback/__init__.py
+${PYSITELIB}/sklearn/callback/__init__.pyc
+${PYSITELIB}/sklearn/callback/__init__.pyo
+${PYSITELIB}/sklearn/callback/_base.py
+${PYSITELIB}/sklearn/callback/_base.pyc
+${PYSITELIB}/sklearn/callback/_base.pyo
+${PYSITELIB}/sklearn/callback/_callback_context.py
+${PYSITELIB}/sklearn/callback/_callback_context.pyc
+${PYSITELIB}/sklearn/callback/_callback_context.pyo
+${PYSITELIB}/sklearn/callback/_callback_support.py
+${PYSITELIB}/sklearn/callback/_callback_support.pyc
+${PYSITELIB}/sklearn/callback/_callback_support.pyo
+${PYSITELIB}/sklearn/callback/_progressbar.py
+${PYSITELIB}/sklearn/callback/_progressbar.pyc
+${PYSITELIB}/sklearn/callback/_progressbar.pyo
+${PYSITELIB}/sklearn/callback/_scoring_monitor.py
+${PYSITELIB}/sklearn/callback/_scoring_monitor.pyc
+${PYSITELIB}/sklearn/callback/_scoring_monitor.pyo
+${PYSITELIB}/sklearn/callback/_transport.py
+${PYSITELIB}/sklearn/callback/_transport.pyc
+${PYSITELIB}/sklearn/callback/_transport.pyo
+${PYSITELIB}/sklearn/callback/tests/__init__.py
+${PYSITELIB}/sklearn/callback/tests/__init__.pyc
+${PYSITELIB}/sklearn/callback/tests/__init__.pyo
+${PYSITELIB}/sklearn/callback/tests/_utils.py
+${PYSITELIB}/sklearn/callback/tests/_utils.pyc
+${PYSITELIB}/sklearn/callback/tests/_utils.pyo
+${PYSITELIB}/sklearn/callback/tests/conftest.py
+${PYSITELIB}/sklearn/callback/tests/conftest.pyc
+${PYSITELIB}/sklearn/callback/tests/conftest.pyo
+${PYSITELIB}/sklearn/callback/tests/test_callback_context.py
+${PYSITELIB}/sklearn/callback/tests/test_callback_context.pyc
+${PYSITELIB}/sklearn/callback/tests/test_callback_context.pyo
+${PYSITELIB}/sklearn/callback/tests/test_callback_support.py
+${PYSITELIB}/sklearn/callback/tests/test_callback_support.pyc
+${PYSITELIB}/sklearn/callback/tests/test_callback_support.pyo
+${PYSITELIB}/sklearn/callback/tests/test_pickle.py
+${PYSITELIB}/sklearn/callback/tests/test_pickle.pyc
+${PYSITELIB}/sklearn/callback/tests/test_pickle.pyo
+${PYSITELIB}/sklearn/callback/tests/test_progressbar.py
+${PYSITELIB}/sklearn/callback/tests/test_progressbar.pyc
+${PYSITELIB}/sklearn/callback/tests/test_progressbar.pyo
+${PYSITELIB}/sklearn/callback/tests/test_scoring_monitor.py
+${PYSITELIB}/sklearn/callback/tests/test_scoring_monitor.pyc
+${PYSITELIB}/sklearn/callback/tests/test_scoring_monitor.pyo
 ${PYSITELIB}/sklearn/cluster/__init__.py
 ${PYSITELIB}/sklearn/cluster/__init__.pyc
 ${PYSITELIB}/sklearn/cluster/__init__.pyo
@@ -584,6 +629,9 @@ ${PYSITELIB}/sklearn/ensemble/_bagging.p
 ${PYSITELIB}/sklearn/ensemble/_base.py
 ${PYSITELIB}/sklearn/ensemble/_base.pyc
 ${PYSITELIB}/sklearn/ensemble/_base.pyo
+${PYSITELIB}/sklearn/ensemble/_bootstrap.py
+${PYSITELIB}/sklearn/ensemble/_bootstrap.pyc
+${PYSITELIB}/sklearn/ensemble/_bootstrap.pyo
 ${PYSITELIB}/sklearn/ensemble/_forest.py
 ${PYSITELIB}/sklearn/ensemble/_forest.pyc
 ${PYSITELIB}/sklearn/ensemble/_forest.pyo
@@ -597,9 +645,6 @@ ${PYSITELIB}/sklearn/ensemble/_hist_grad
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/__init__.pyo
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_binning.pyx
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_binning.so
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_bitset.pxd
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_bitset.pyx
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_bitset.so
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_gradient_boosting.pyx
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_gradient_boosting.so
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/_predictor.pyx
@@ -630,9 +675,6 @@ ${PYSITELIB}/sklearn/ensemble/_hist_grad
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_binning.py
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_binning.pyc
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_binning.pyo
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_bitset.py
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_bitset.pyc
-${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_bitset.pyo
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_compare_lightgbm.py
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_compare_lightgbm.pyc
 ${PYSITELIB}/sklearn/ensemble/_hist_gradient_boosting/tests/test_compare_lightgbm.pyo
@@ -682,6 +724,9 @@ ${PYSITELIB}/sklearn/ensemble/tests/test
 ${PYSITELIB}/sklearn/ensemble/tests/test_base.py
 ${PYSITELIB}/sklearn/ensemble/tests/test_base.pyc
 ${PYSITELIB}/sklearn/ensemble/tests/test_base.pyo
+${PYSITELIB}/sklearn/ensemble/tests/test_bootstrap.py
+${PYSITELIB}/sklearn/ensemble/tests/test_bootstrap.pyc
+${PYSITELIB}/sklearn/ensemble/tests/test_bootstrap.pyo
 ${PYSITELIB}/sklearn/ensemble/tests/test_common.py
 ${PYSITELIB}/sklearn/ensemble/tests/test_common.pyc
 ${PYSITELIB}/sklearn/ensemble/tests/test_common.pyo
@@ -868,45 +913,99 @@ ${PYSITELIB}/sklearn/externals/array_api
 ${PYSITELIB}/sklearn/externals/array_api_extra/__init__.py
 ${PYSITELIB}/sklearn/externals/array_api_extra/__init__.pyc
 ${PYSITELIB}/sklearn/externals/array_api_extra/__init__.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_delegation.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_delegation.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_delegation.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/__init__.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/__init__.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/__init__.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_creation.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_creation.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_creation.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_elementwise.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_elementwise.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_elementwise.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_indexing.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_indexing.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_indexing.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_inspection.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_inspection.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_inspection.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_linalg.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_linalg.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_linalg.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_manipulation.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_manipulation.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_manipulation.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_searching.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_searching.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_searching.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_set.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_set.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_set.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_sorting.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_sorting.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_sorting.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_statistical.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_statistical.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_agnostic/_statistical.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_at.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_at.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_at.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_creation.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_creation.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_creation.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_elementwise.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_elementwise.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_elementwise.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_indexing.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_indexing.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_indexing.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_lazy.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_lazy.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_lazy.pyo
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/__init__.py
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/__init__.pyc
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/__init__.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_at.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_at.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_at.pyo
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_backends.py
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_backends.pyc
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_backends.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_funcs.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_funcs.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_funcs.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_lazy.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_lazy.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_lazy.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_compat.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_compat.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_compat.pyi
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_compat.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_helpers.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_helpers.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_helpers.pyo
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_testing.py
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_testing.pyc
 ${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_testing.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/__init__.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/__init__.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/__init__.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_compat.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_compat.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_compat.pyi
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_compat.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_helpers.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_helpers.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_helpers.pyo
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_typing.py
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_typing.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_typing.pyi
-${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_utils/_typing.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_typing.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_typing.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_typing.pyi
+${PYSITELIB}/sklearn/externals/array_api_extra/_lib/_typing.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_linalg.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_linalg.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_linalg.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_manipulation.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_manipulation.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_manipulation.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_searching.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_searching.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_searching.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_set.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_set.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_set.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_sorting.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_sorting.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_sorting.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/_statistical.py
+${PYSITELIB}/sklearn/externals/array_api_extra/_statistical.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/_statistical.pyo
 ${PYSITELIB}/sklearn/externals/array_api_extra/py.typed
-${PYSITELIB}/sklearn/externals/array_api_extra/testing.py
-${PYSITELIB}/sklearn/externals/array_api_extra/testing.pyc
-${PYSITELIB}/sklearn/externals/array_api_extra/testing.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/__init__.py
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/__init__.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/__init__.pyo
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/_testing.py
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/_testing.pyc
+${PYSITELIB}/sklearn/externals/array_api_extra/testing/_testing.pyo
 ${PYSITELIB}/sklearn/externals/conftest.py
 ${PYSITELIB}/sklearn/externals/conftest.pyc
 ${PYSITELIB}/sklearn/externals/conftest.pyo
@@ -1819,9 +1918,9 @@ ${PYSITELIB}/sklearn/tests/test_metaesti
 ${PYSITELIB}/sklearn/tests/test_metaestimators_metadata_routing.py
 ${PYSITELIB}/sklearn/tests/test_metaestimators_metadata_routing.pyc
 ${PYSITELIB}/sklearn/tests/test_metaestimators_metadata_routing.pyo
-${PYSITELIB}/sklearn/tests/test_min_dependencies_readme.py
-${PYSITELIB}/sklearn/tests/test_min_dependencies_readme.pyc
-${PYSITELIB}/sklearn/tests/test_min_dependencies_readme.pyo
+${PYSITELIB}/sklearn/tests/test_min_dependencies_consistency.py
+${PYSITELIB}/sklearn/tests/test_min_dependencies_consistency.pyc
+${PYSITELIB}/sklearn/tests/test_min_dependencies_consistency.pyo
 ${PYSITELIB}/sklearn/tests/test_multiclass.py
 ${PYSITELIB}/sklearn/tests/test_multiclass.pyc
 ${PYSITELIB}/sklearn/tests/test_multiclass.pyo
@@ -1883,6 +1982,12 @@ ${PYSITELIB}/sklearn/tree/tests/test_mon
 ${PYSITELIB}/sklearn/tree/tests/test_reingold_tilford.py
 ${PYSITELIB}/sklearn/tree/tests/test_reingold_tilford.pyc
 ${PYSITELIB}/sklearn/tree/tests/test_reingold_tilford.pyo
+${PYSITELIB}/sklearn/tree/tests/test_split.py
+${PYSITELIB}/sklearn/tree/tests/test_split.pyc
+${PYSITELIB}/sklearn/tree/tests/test_split.pyo
+${PYSITELIB}/sklearn/tree/tests/test_swap.py
+${PYSITELIB}/sklearn/tree/tests/test_swap.pyc
+${PYSITELIB}/sklearn/tree/tests/test_swap.pyo
 ${PYSITELIB}/sklearn/tree/tests/test_tree.py
 ${PYSITELIB}/sklearn/tree/tests/test_tree.pyc
 ${PYSITELIB}/sklearn/tree/tests/test_tree.pyo
@@ -1898,6 +2003,10 @@ ${PYSITELIB}/sklearn/utils/_array_api.py
 ${PYSITELIB}/sklearn/utils/_available_if.py
 ${PYSITELIB}/sklearn/utils/_available_if.pyc
 ${PYSITELIB}/sklearn/utils/_available_if.pyo
+${PYSITELIB}/sklearn/utils/_bitset.pxd
+${PYSITELIB}/sklearn/utils/_bitset.pyx
+${PYSITELIB}/sklearn/utils/_bitset.so
+${PYSITELIB}/sklearn/utils/_blas_int.pxi.in
 ${PYSITELIB}/sklearn/utils/_bunch.py
 ${PYSITELIB}/sklearn/utils/_bunch.pyc
 ${PYSITELIB}/sklearn/utils/_bunch.pyo
@@ -1960,11 +2069,21 @@ ${PYSITELIB}/sklearn/utils/_repr_html/__
 ${PYSITELIB}/sklearn/utils/_repr_html/base.py
 ${PYSITELIB}/sklearn/utils/_repr_html/base.pyc
 ${PYSITELIB}/sklearn/utils/_repr_html/base.pyo
+${PYSITELIB}/sklearn/utils/_repr_html/common.py
+${PYSITELIB}/sklearn/utils/_repr_html/common.pyc
+${PYSITELIB}/sklearn/utils/_repr_html/common.pyo
 ${PYSITELIB}/sklearn/utils/_repr_html/estimator.css
 ${PYSITELIB}/sklearn/utils/_repr_html/estimator.js
 ${PYSITELIB}/sklearn/utils/_repr_html/estimator.py
 ${PYSITELIB}/sklearn/utils/_repr_html/estimator.pyc
 ${PYSITELIB}/sklearn/utils/_repr_html/estimator.pyo
+${PYSITELIB}/sklearn/utils/_repr_html/features.css
+${PYSITELIB}/sklearn/utils/_repr_html/features.py
+${PYSITELIB}/sklearn/utils/_repr_html/features.pyc
+${PYSITELIB}/sklearn/utils/_repr_html/features.pyo
+${PYSITELIB}/sklearn/utils/_repr_html/fitted_attributes.py
+${PYSITELIB}/sklearn/utils/_repr_html/fitted_attributes.pyc
+${PYSITELIB}/sklearn/utils/_repr_html/fitted_attributes.pyo
 ${PYSITELIB}/sklearn/utils/_repr_html/params.css
 ${PYSITELIB}/sklearn/utils/_repr_html/params.py
 ${PYSITELIB}/sklearn/utils/_repr_html/params.pyc
@@ -1972,9 +2091,15 @@ ${PYSITELIB}/sklearn/utils/_repr_html/pa
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/__init__.py
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/__init__.pyc
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/__init__.pyo
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_attributes.py
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_attributes.pyc
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_attributes.pyo
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_estimator.py
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_estimator.pyc
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_estimator.pyo
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_features.py
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_features.pyc
+${PYSITELIB}/sklearn/utils/_repr_html/tests/test_features.pyo
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_js.py
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_js.pyc
 ${PYSITELIB}/sklearn/utils/_repr_html/tests/test_js.pyo
@@ -1996,6 +2121,9 @@ ${PYSITELIB}/sklearn/utils/_show_version
 ${PYSITELIB}/sklearn/utils/_sorting.pxd
 ${PYSITELIB}/sklearn/utils/_sorting.pyx
 ${PYSITELIB}/sklearn/utils/_sorting.so
+${PYSITELIB}/sklearn/utils/_sparse.py
+${PYSITELIB}/sklearn/utils/_sparse.pyc
+${PYSITELIB}/sklearn/utils/_sparse.pyo
 ${PYSITELIB}/sklearn/utils/_tags.py
 ${PYSITELIB}/sklearn/utils/_tags.pyc
 ${PYSITELIB}/sklearn/utils/_tags.pyo
@@ -2090,6 +2218,9 @@ ${PYSITELIB}/sklearn/utils/tests/test_ar
 ${PYSITELIB}/sklearn/utils/tests/test_arrayfuncs.py
 ${PYSITELIB}/sklearn/utils/tests/test_arrayfuncs.pyc
 ${PYSITELIB}/sklearn/utils/tests/test_arrayfuncs.pyo
+${PYSITELIB}/sklearn/utils/tests/test_bitset.py
+${PYSITELIB}/sklearn/utils/tests/test_bitset.pyc
+${PYSITELIB}/sklearn/utils/tests/test_bitset.pyo
 ${PYSITELIB}/sklearn/utils/tests/test_bunch.py
 ${PYSITELIB}/sklearn/utils/tests/test_bunch.pyc
 ${PYSITELIB}/sklearn/utils/tests/test_bunch.pyo
@@ -2180,6 +2311,12 @@ ${PYSITELIB}/sklearn/utils/tests/test_sh
 ${PYSITELIB}/sklearn/utils/tests/test_show_versions.py
 ${PYSITELIB}/sklearn/utils/tests/test_show_versions.pyc
 ${PYSITELIB}/sklearn/utils/tests/test_show_versions.pyo
+${PYSITELIB}/sklearn/utils/tests/test_sorting.py
+${PYSITELIB}/sklearn/utils/tests/test_sorting.pyc
+${PYSITELIB}/sklearn/utils/tests/test_sorting.pyo
+${PYSITELIB}/sklearn/utils/tests/test_sparse.py
+${PYSITELIB}/sklearn/utils/tests/test_sparse.pyc
+${PYSITELIB}/sklearn/utils/tests/test_sparse.pyo
 ${PYSITELIB}/sklearn/utils/tests/test_sparsefuncs.py
 ${PYSITELIB}/sklearn/utils/tests/test_sparsefuncs.pyc
 ${PYSITELIB}/sklearn/utils/tests/test_sparsefuncs.pyo

Index: pkgsrc/math/py-scikit-learn/distinfo
diff -u pkgsrc/math/py-scikit-learn/distinfo:1.18 pkgsrc/math/py-scikit-learn/distinfo:1.19
--- pkgsrc/math/py-scikit-learn/distinfo:1.18   Sun Jan 11 10:28:54 2026
+++ pkgsrc/math/py-scikit-learn/distinfo        Fri Oct 23 12:18:46 2026
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.18 2026/01/11 10:28:54 adam Exp $
+$NetBSD: distinfo,v 1.19 2026/10/23 12:18:46 adam Exp $
 
-BLAKE2s (scikit_learn-1.8.0.tar.gz) = aaced9b65ba8eb21bbef24017829e2f5933a394f22f950a3506e7eb8db265c35
-SHA512 (scikit_learn-1.8.0.tar.gz) = 956a1aececf0c219793653e2bb94a9a490f3edc87617dd8f1b16f9eeba53da874fb280fb9650cc8505a85d7c3a188aa72b8e675404519d57f666c44cbfc21ca4
-Size (scikit_learn-1.8.0.tar.gz) = 7335585 bytes
+BLAKE2s (scikit_learn-1.9.1.tar.gz) = 4d34413e909504ecb10df5308d58b7f114bd7f65c45a496ad4e6709f81edee95
+SHA512 (scikit_learn-1.9.1.tar.gz) = 0e1e9dc305aff9106080a329337b25ea5c48cf953dac415c7d13c5a6b6fbb5167ee9ca922c189cc553b25383e7863d40af620679965d306fb033e1578f582743
+Size (scikit_learn-1.9.1.tar.gz) = 7786908 bytes
 SHA1 (patch-sklearn_preprocessing___target__encoder__fast.pyx) = 8956f8eca857c3b11d46f4876e5c730123bd93ae
-SHA1 (patch-sklearn_tree___tree.pyx) = 447d0e470bae1ab152bee1d922fa369c990adaa7
+SHA1 (patch-sklearn_tree___tree.pyx) = e5efcdd81a390fe57ce302b4d46cf64b9368399f

Index: pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx
diff -u pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx:1.1 pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx:1.2
--- pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx:1.1       Mon Nov 13 10:42:42 2023
+++ pkgsrc/math/py-scikit-learn/patches/patch-sklearn_tree___tree.pyx   Fri Oct 23 12:18:46 2026
@@ -1,15 +1,16 @@
-$NetBSD: patch-sklearn_tree___tree.pyx,v 1.1 2023/11/13 10:42:42 wiz Exp $
+$NetBSD: patch-sklearn_tree___tree.pyx,v 1.2 2026/10/23 12:18:46 adam Exp $
 
 Fix build on NetBSD.
 
---- sklearn/tree/_tree.pyx.orig        2023-10-23 10:11:35.000000000 +0000
+--- sklearn/tree/_tree.pyx.orig        2026-09-10 05:14:20.000000000 +0000
 +++ sklearn/tree/_tree.pyx
-@@ -18,7 +18,7 @@ from libc.stdlib cimport free
+@@ -3,7 +3,8 @@
+ 
+ from cpython cimport Py_INCREF, PyObject, PyTypeObject
+ 
+-from libc.math cimport INFINITY, isnan
++from libc.math cimport INFINITY
++from libcpp.cmath cimport isnan as isnan
+ from libc.stdlib cimport free
  from libc.string cimport memcpy
  from libc.string cimport memset
- from libc.stdint cimport INTPTR_MAX
--from libc.math cimport isnan
-+from libcpp.cmath cimport isnan as isnan
- from libcpp.vector cimport vector
- from libcpp.algorithm cimport pop_heap
- from libcpp.algorithm cimport push_heap



Home | Main Index | Thread Index | Old Index