Public bug reported: Imported from Debian bug http://bugs.debian.org/1135062:
Source: python-pynndescent Version: 0.6.0-1 Severity: normal python-pynndescent debci tests are failing with scipy 1.17, currently available in experimental e.g. https://ci.debian.net/packages/p/python- pynndescent/unstable/amd64/70512939/ 365s _______________________ test_binary_check[sokalmichener] _______________________ 365s 365s binary_data = array([[False, False, False, False, True, False, False, True, False, 365s False, False, False, False, False, Fals...se, False, False, False, 365s False, False, False, False, False, False, False, False, False, 365s False, False]]) 365s metric = 'sokalmichener' 365s 365s @pytest.mark.parametrize( 365s "metric", 365s [ 365s "jaccard", 365s "matching", 365s "dice", 365s "rogerstanimoto", 365s "russellrao", 365s "sokalmichener", 365s "sokalsneath", 365s "yule", 365s ], 365s ) 365s def test_binary_check(binary_data, metric): 365s > dist_matrix = pairwise_distances(binary_data, metric=metric) 365s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 365s 365s ../build.Ulb/src/pynndescent/tests/test_distances.py:70: 365s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 365s /usr/lib/python3/dist-packages/sklearn/utils/_param_validation.py:208: in wrapper 365s validate_parameter_constraints( 365s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 365s 365s parameter_constraints = {'X': ['array-like', 'sparse matrix'], 'Y': ['array-like', 'sparse matrix', None], 'ensure_all_finite': ['boolean', <s..., 'metric': [<sklearn.utils._param_validation.StrOptions object at 0x7fa6a0b007c0>, <built-in function callable>], ...} 365s params = {'X': array([[False, False, False, False, True, False, False, True, False, 365s False, False, False, False, False...se, False, False, False, 365s False, False]]), 'Y': None, 'ensure_all_finite': True, 'metric': 'sokalmichener', ...} 365s caller_name = 'pairwise_distances' 365s 365s def validate_parameter_constraints(parameter_constraints, params, caller_name): 365s """Validate types and values of given parameters. 365s 365s Parameters 365s ---------- 365s parameter_constraints : dict or {"no_validation"} 365s If "no_validation", validation is skipped for this parameter. 365s 365s If a dict, it must be a dictionary `param_name: list of constraints`. 365s A parameter is valid if it satisfies one of the constraints from the list. 365s Constraints can be: 365s - an Interval object, representing a continuous or discrete range of numbers 365s - the string "array-like" 365s - the string "sparse matrix" 365s - the string "random_state" 365s - callable 365s - None, meaning that None is a valid value for the parameter 365s - any type, meaning that any instance of this type is valid 365s - an Options object, representing a set of elements of a given type 365s - a StrOptions object, representing a set of strings 365s - the string "boolean" 365s - the string "verbose" 365s - the string "cv_object" 365s - the string "nan" 365s - a MissingValues object representing markers for missing values 365s - a HasMethods object, representing method(s) an object must have 365s - a Hidden object, representing a constraint not meant to be exposed to the user 365s 365s params : dict 365s A dictionary `param_name: param_value`. The parameters to validate against the 365s constraints. 365s 365s caller_name : str 365s The name of the estimator or function or method that called this function. 365s """ 365s for param_name, param_val in params.items(): 365s # We allow parameters to not have a constraint so that third party estimators 365s # can inherit from sklearn estimators without having to necessarily use the 365s # validation tools. 365s if param_name not in parameter_constraints: 365s continue 365s 365s constraints = parameter_constraints[param_name] 365s 365s if constraints == "no_validation": 365s continue 365s 365s constraints = [make_constraint(constraint) for constraint in constraints] 365s 365s for constraint in constraints: 365s if constraint.is_satisfied_by(param_val): 365s # this constraint is satisfied, no need to check further. 365s break 365s else: 365s # No constraint is satisfied, raise with an informative message. 365s 365s # Ignore constraints that we don't want to expose in the error message, 365s # i.e. options that are for internal purpose or not officially supported. 365s constraints = [ 365s constraint for constraint in constraints if not constraint.hidden 365s ] 365s 365s if len(constraints) == 1: 365s constraints_str = f"{constraints[0]}" 365s else: 365s constraints_str = ( 365s f"{', '.join([str(c) for c in constraints[:-1]])} or" 365s f" {constraints[-1]}" 365s ) 365s 365s > raise InvalidParameterError( 365s f"The {param_name!r} parameter of {caller_name} must be" 365s f" {constraints_str}. Got {param_val!r} instead." 365s ) 365s E sklearn.utils._param_validation.InvalidParameterError: The 'metric' parameter of pairwise_distances must be a str among {'wminkowski', 'haversine', 'euclidean', 'mahalanobis', 'canberra', 'matching', 'l2', 'nan_euclidean', 'precomputed', 'cosine', 'jaccard', 'seuclidean', 'sqeuclidean', 'sokalsneath', 'dice', 'l1', 'braycurtis', 'correlation', 'manhattan', 'yule', 'minkowski', 'cityblock', 'russellrao', 'hamming', 'chebyshev', 'rogerstanimoto'} or a callable. Got 'sokalmichener' instead. 365s 365s /usr/lib/python3/dist-packages/sklearn/utils/_param_validation.py:98: InvalidParameterError This bug will later become RC severity: serious once scipy 1.17 is uploaded to unstable. ** Affects: python-pynndescent (Ubuntu) Importance: Undecided Status: New ** Affects: scipy (Ubuntu) Importance: Undecided Status: New ** Affects: python-pynndescent (Debian) Importance: Undecided Status: New ** Tags: update-excuse ** Bug watch added: Debian Bug tracker #1135062 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1135062 ** Changed in: python-pynndescent (Debian) Remote watch: None => Debian Bug tracker #1135062 ** Also affects: scipy (Ubuntu) Importance: Undecided Status: New ** Tags added: update-excuse -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2163627 Title: python-pynndescent: tests fail with scipy 1.17: sklearn: InvalidParameterError To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-pynndescent/+bug/2163627/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
