Example #1
0
def test_eval_tag_exprs_parentheses(test_sets):
    sets = test_sets
    res1 = eval_tag_expr('(whole ! even) | fivesix',sets)
    res2 = eval_tag_expr('whole ! (even | fivesix)',sets)
    assert res1 != res2, "`(whole ! even) | fivesix` is not equal to `whole ! (even | fivesix)`"
    assert sorted(list(res1)) == [1,3,5,6,7,9], "Correct result for: `(whole ! even) | fivesix`"
    assert sorted(list(res2)) == [1,3,7,9], "Correct result for: `whole ! (even | fivesix)`"
Example #2
0
    def run_sel_page(self, index, conf, page_data, indextemplate, runtags):

        table = []
        # defining columns for the table
        cols = ["Run"] + [field["label"] for k, field in conf["fields"].items()]
        toc_path = []
        #evaluate tag selection expression in configuration
        sel_runs = parse.eval_tag_expr(expr=conf['tags_sel'],retr_val=runtags)


        # Create run list page
        for run in sorted(sel_runs):
            toc_path.append("runs/" + run)
            row = {"Run": ":ref:`{}`".format(run)}
            for field, settings in conf["fields"].items():
                row[settings["label"]] = str(
                    nested_access(page_data[run], *(settings["sources"][0].split(".")))
                )
            table.append(row)

        table_rendered = sphinx.simple_tbl(table, cols)
        toc_rendered = sphinx.toc(toc_path, hidden="")
        indexpage = indextemplate.render(
            title=conf["title"],
            tables={conf["title"]: {"table": table_rendered, "toc": toc_rendered}},
        )
        with open(os.path.join(self.display_path, "source", f"{index}.rst"), "w") as f:
            f.writelines(indexpage)
        self.n_pages_generated +=1
Example #3
0
def test_eval_tag_exprs_multi_parentheses(test_sets):
    sets = test_sets
    res = eval_tag_expr('whole  & (even | fivesix | fivesix ) ! (odd | fivesix)',sets)
    assert sorted(list(res)) == [0,2,4,8]
Example #4
0
def test_eval_tag_exprs_nested_parentheses(test_sets):
    sets = test_sets
    res = eval_tag_expr('fivesix | (whole & (even & fivesix))',sets)
    assert sorted(list(res)) == [5,6],"Correct result for: `fivesix | (whole & (even & fivesix))`"
    res = eval_tag_expr('(fivesix | whole) & (even & fivesix)',sets)
    assert sorted(list(res)) == [6], "Correct result for: `(fivesix | whole) & (even & fivesix)`"
Example #5
0
def test_eval_tag_exprs_andnot(test_sets):
    sets = test_sets
    res = eval_tag_expr('fivesix ! even',sets)
    assert list(res) == [5], "Picking out 5 using andnot"
    res = eval_tag_expr('even ! fivesix',sets)
    assert sorted(list(res)) == [0,2,4,8], "Picking out all even except 6 by reversing order (andnot is not unary)"
Example #6
0
def test_eval_tag_exprs_or(test_sets):
    sets = test_sets
    res = eval_tag_expr('odd | even',sets)
    assert list(res) == sets['whole'], "odd `or` even makes whole"
Example #7
0
def test_eval_tag_exprs_and(test_sets):
    sets = test_sets
    res = eval_tag_expr('whole & even',sets)
    assert list(res) == sets['even'], "Picking out even numbers from the whole set"