diff --git a/Orange/base.py b/Orange/base.py index c0d5f084a08..3566485a4f6 100644 --- a/Orange/base.py +++ b/Orange/base.py @@ -520,11 +520,14 @@ def params(self, value): def _get_sklparams(self, values): skllearner = self.__wraps__ if skllearner is not None: - spec = inspect.getargs(skllearner.__init__.__code__) + spec = list( + inspect.signature(skllearner.__init__).parameters.keys() + ) # first argument is 'self' - assert spec.args[0] == "self" - params = {name: values[name] for name in spec.args[1:] - if name in values} + assert spec[0] == "self" + params = { + name: values[name] for name in spec[1:] if name in values + } else: raise TypeError("Wrapper does not define '__wraps__'") return params diff --git a/Orange/projection/base.py b/Orange/projection/base.py index 28fea302eb0..b07f0cb39e1 100644 --- a/Orange/projection/base.py +++ b/Orange/projection/base.py @@ -196,11 +196,14 @@ def params(self, value): def _get_sklparams(self, values): sklprojection = self.__wraps__ if sklprojection is not None: - spec = inspect.getargs(sklprojection.__init__.__code__) + spec = list( + inspect.signature(sklprojection.__init__).parameters.keys() + ) # first argument is 'self' - assert spec.args[0] == "self" - params = {name: values[name] for name in spec.args[1:] - if name in values} + assert spec[0] == "self" + params = { + name: values[name] for name in spec[1:] if name in values + } else: raise TypeError("Wrapper does not define '__wraps__'") return params diff --git a/requirements-core.txt b/requirements-core.txt index 35c1e22b417..a6b0fd35683 100644 --- a/requirements-core.txt +++ b/requirements-core.txt @@ -1,7 +1,7 @@ pip>=9.0 numpy>=1.16.0 scipy>=0.16.1 -scikit-learn>=0.22.0,<0.23 # temp fix: https://github.com/biolab/orange3/pull/4768 +scikit-learn>=0.22.0,!=0.23.0 # 0.23.0 have error with slow k-means, it will be fixed in 0.23.1 bottleneck>=1.0.0 # Reading Excel files xlrd>=0.9.2