Example #1
0
    def pg_insert_edges(self):

        """
        Insert Postgres edges.
        """

        size = nx.number_of_edges(self.graph)

        for cn1, cn2, e in bar(self.graph.edges_iter(data=True),
                               expected_size=size):

            # Pop out the nodes.
            n1 = HLOM_Node.get(HLOM_Node.control_number==cn1)
            n2 = HLOM_Node.get(HLOM_Node.control_number==cn2)

            HLOM_Edge.create(
                source=n1,
                target=n2,
                weight=e.get('weight', 1)
            )

            HLOM_Edge.create(
                source=n2,
                target=n1,
                weight=e.get('weight', 1)
            )
Example #2
0
    def pg_insert_nodes(self):

        """
        Insert Postgres nodes.
        """

        for cn, n in bar(self.graph.nodes_iter(data=True),
                         expected_size=len(self.graph)):

            # Insert the node.
            HLOM_Node.create(control_number=cn, node=n)
Example #3
0
def neighbors():

    """
    Given all nodes adjacent to a node.
    """

    cn = request.args.get('cn')
    node = HLOM_Node.get(HLOM_Node.control_number==cn)

    query = (
        HLOM_Edge
        .select(HLOM_Edge.weight, HLOM_Node.node)
        .join(HLOM_Node, on=(HLOM_Node.id==HLOM_Edge.target))
        .where(HLOM_Edge.source==node)
        .order_by(HLOM_Edge.weight.desc())
        .limit(100)
    )

    neighbors = []
    for n in query.naive():
        neighbors.append({
            'node': n.node, 'weight': n.weight
        })

    return jsonify({'neighbors': neighbors })