예제 #1
0
def get_collection_intersection(*args):
    ret = []
    for ii, arg in enumerate(args):
        if ii == 0:
            ret = OrderedSet(tf.get_collection(arg))
        else:
            ret = ret.intersection(OrderedSet(tf.get_collection(arg)))
    return list(ret)
예제 #2
0
파일: tfutil.py 프로젝트: niurouli/SWEM
def get_collection_intersection(*args):
    ret = []
    for ii,arg in enumerate(args):
        if ii == 0:
            ret = OrderedSet(tf.get_collection(arg))
        else:
            ret = ret.intersection(OrderedSet(tf.get_collection(arg)))
    return list(ret)
    def _merge_node(self, node_list):
        _node_set = set([])
        merged_list = []

        for n in node_list:
            if n not in _node_set:
                node_set = OrderedSet([n])
                node_set.update(self._get_pe_cluster(n))
                _node_set.update(node_set)
                if merged_list and node_set.intersection(merged_list[-1]):
                    merged_list[-1].update(node_set)
                else:
                    merged_list.append(node_set)

        return merged_list
예제 #4
0
파일: graph.py 프로젝트: dbl0null/pyutils
    def iter_links_by_attrs(self, **k_attrs: Any) -> Generator[LinkType, None, None]:
        matched_links = None

        if len(k_attrs) == 0:
            for link in self.links.values():
                yield link
        else:
            for attr, value in k_attrs.items():
                assert attr in self.link_index, 'Attr %s must be indexed before search' % attr

                if value not in self.link_index[attr]:
                    matched_links = OrderedSet()
                    break
                else:
                    tmp = self.link_index[attr][value]

                if matched_links is None:
                    matched_links = tmp
                else:
                    matched_links = matched_links.intersection(tmp)

            for link_id in matched_links:
                yield self.links[link_id]
예제 #5
0
파일: graph.py 프로젝트: dbl0null/pyutils
    def iter_nodes_by_attrs(self, **k_attrs: Any) -> Generator[NodeType, None, None]:
        matched_nodes = None

        if len(k_attrs) == 0:
            for node in self.nodes.values():
                yield node
        else:
            for attr, value in k_attrs.items():
                assert attr in self.node_index, 'Attr `%s` must be indexed before search' % attr

                if value not in self.node_index[attr]:
                    matched_nodes = OrderedSet()
                    break
                else:
                    tmp = self.node_index[attr][value]

                if matched_nodes is None:
                    matched_nodes = tmp
                else:
                    matched_nodes = matched_nodes.intersection(tmp)

            for node_id in matched_nodes:
                yield self.nodes[node_id]
예제 #6
0
def comm(a, b):
    sa, sb = map(OrderedSet, (a, b))
    return (sa.difference(sb), sb.difference(sa),
            OrderedSet.intersection(sa, sb))