def filter_none(el: Jelm): el2 = el.attribute_filter(lambda x: True) print(el) print(el2) print(el == el2) return el2
def test_attribute_filter(): node_list1 = [{"type": "node", "id": "n{}".format(i)} for i in range(1, 4)] edge_list1 = [ { "type": "edge", "source": "n1", "target": "n2", "attributes": { "good_edge": True }, }, { "type": "edge", "source": "n1", "target": "n3", "attributes": { "good_edge": False }, }, { "type": "edge", "source": "n2", "target": "n3", "attributes": { "good_edge": False }, }, ] el1 = Jelm(objects=[*node_list1, *edge_list1]) def filter_fun(atts): is_good_edge = atts.get("good_edge") if is_good_edge is None: return True return is_good_edge expected_el = Jelm(objects=[ { "type": "node", "id": "n1" }, { "type": "node", "id": "n2" }, { "type": "node", "id": "n3" }, { "type": "edge", "source": "n1", "target": "n2", "attributes": { "good_edge": True }, }, ]) assert expected_el == el1.attribute_filter(filter_fun)
def filter_none(el: Jelm): el.attribute_filter(lambda x: True) return el