Skip to content

Update `_check_fit_params` to `_check_method_params` to allow updated scikit-learn versions

I'm unable to update past scikit-learn 1.3.0 because of deprecated imports. Would it be possible to do a try and except?

For example:

try:
    from sklearn.utils.validation import _check_method_params
except ImportError:
    from sklearn.utils.validation import _check_fit_params as _check_method_params

Here's the error:

ImportError                               Traceback (most recent call last)
Cell In[1], line 10
      7 # from sklearn.metrics.pairwise import pairwise_kernels
      8 from sklearn.model_selection import train_test_split
---> 10 from datafold.pcfold.distance import BruteForceDist
     11 from datafold.pcfold import PCManifoldKernel
     12 from datafold.dynfold import DiffusionMaps

File ~/miniconda3/envs/test_env/lib/python3.10/site-packages/datafold/__init__.py:10
      1 #!/usr/bin/env python3
      2
      3 # by importing all objects from the three layers (with from X import *) this allows to access
   (...)
      6 # import datafold
      7 # datafold.DiffusionMaps()
      9 from datafold._version import Version
---> 10 from datafold.appfold.edmd import *  # noqa F403
     11 from datafold.dynfold import *  # noqa F403
     12 from datafold.pcfold import *  # noqa F403

File ~/miniconda3/envs/test_env/lib/python3.10/site-packages/datafold/appfold/__init__.py:27
      1 """The highest level of *datafold* accommodates models that capture complex processing
      2 pipelines. Essentially, the models are "meta-models" because they provide a single point
      3 of access to multiple sub-models captured in the class. The models at this layer are
   (...)
     24   parameters from all sub-models and includes data-splitting schemes of time series data.
     25 """
---> 27 from datafold.appfold.edmd import EDMD, EDMDCV

File ~/miniconda3/envs/test_env/lib/python3.10/site-packages/datafold/appfold/edmd.py:76
     74 from sklearn.pipeline import Pipeline
     75 from sklearn.utils import _print_elapsed_time, check_scalar
---> 76 from sklearn.utils.validation import _check_fit_params, check_is_fitted, indexable
     78 from datafold._decorators import warn_experimental_class
     79 from datafold.dynfold import DMDBase, DMDStandard

ImportError: cannot import name '_check_fit_params' from 'sklearn.utils.validation' (/Users/jolespin/miniconda3/envs/test_env/lib/python3.10/site-packages/sklearn/utils/validation.py)

Here's a relevant issue: https://github.com/scikit-learn/scikit-learn/discussions/27942

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information