def test_select(vos, label_grid): tree = Tree(vos, label_grid) res = tree.select({}, eq_func) assert res == vos res = tree.select({"d1": "world"}, eq_func) assert res == [ { "d0": 1, "d1": "world", "value": 1 }, { "d0": 3, "d1": "world", "value": 1 }, ] res = tree.select({"d0": 1, "d1": "world"}, eq_func) assert res == [{"d0": 1, "d1": "world", "value": 1}] with pytest.raises(KeyError): tree.select({"d2": 1}, eq_func, exact_match=True)
def test_select(vos, label_grid): tree = Tree(vos, label_grid) res = tree.select({}, eq_func) assert res == vos res = tree.select({"d1": "world"}, eq_func) assert res == [ { "d0": 1, "d1": "world", "value": 1 }, { "d0": 3, "d1": "world", "value": 1 }, ] res = tree.select({"d0": 1, "d1": "world"}, eq_func) assert res == [{"d0": 1, "d1": "world", "value": 1}] assert tree.select({"d2": 1}, eq_func, strict=True) == []
def select( value_objects: List[ValueObject], exact_match: bool, cmp_func: CmpFunc, labels: dict, tree: Tree = None, ) -> List[ValueObject]: """ Query a parameter along some labels. If exact_match is True, all values in `labels` must be equal to the corresponding label in the parameter's "value" dictionary. Ignores state. Returns: [{"value": val, "label0": ..., }] """ if not labels: return value_objects if tree is None: tree = Tree(vos=value_objects, label_grid=None) return tree.select(labels, cmp_func, exact_match)