Пример #1
0
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)
Пример #2
0
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) == []
Пример #3
0
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)