Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(442)

Unified Diff: tools/telemetry/third_party/altgraph/altgraph/GraphUtil.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/altgraph/altgraph/GraphUtil.py
diff --git a/tools/telemetry/third_party/altgraph/altgraph/GraphUtil.py b/tools/telemetry/third_party/altgraph/altgraph/GraphUtil.py
deleted file mode 100644
index d3b6acd74d991d87ce4dea49bbc9d6d389239337..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/altgraph/altgraph/GraphUtil.py
+++ /dev/null
@@ -1,137 +0,0 @@
-'''
-altgraph.GraphUtil - Utility classes and functions
-==================================================
-'''
-
-import random
-from collections import deque
-from altgraph import Graph
-from altgraph import GraphError
-
-def generate_random_graph(node_num, edge_num, self_loops=False, multi_edges=False):
- '''
- Generates and returns a :py:class:`~altgraph.Graph.Graph` instance with *node_num* nodes
- randomly connected by *edge_num* edges.
- '''
- g = Graph.Graph()
-
- if not multi_edges:
- if self_loops:
- max_edges = node_num * node_num
- else:
- max_edges = node_num * (node_num-1)
-
- if edge_num > max_edges:
- raise GraphError("inconsistent arguments to 'generate_random_graph'")
-
- nodes = range(node_num)
-
- for node in nodes:
- g.add_node(node)
-
- while 1:
- head = random.choice(nodes)
- tail = random.choice(nodes)
-
- # loop defense
- if head == tail and not self_loops:
- continue
-
- # multiple edge defense
- if g.edge_by_node(head,tail) is not None and not multi_edges:
- continue
-
- # add the edge
- g.add_edge(head, tail)
- if g.number_of_edges() >= edge_num:
- break
-
- return g
-
-def generate_scale_free_graph(steps, growth_num, self_loops=False, multi_edges=False):
- '''
- Generates and returns a :py:class:`~altgraph.Graph.Graph` instance that will have *steps* \* *growth_num* nodes
- and a scale free (powerlaw) connectivity. Starting with a fully connected graph with *growth_num* nodes
- at every step *growth_num* nodes are added to the graph and are connected to existing nodes with
- a probability proportional to the degree of these existing nodes.
- '''
- # FIXME: The code doesn't seem to do what the documentation claims.
- graph = Graph.Graph()
-
- # initialize the graph
- store = []
- for i in range(growth_num):
- #store += [ i ] * (growth_num - 1)
- for j in range(i + 1, growth_num):
- store.append(i)
- store.append(j)
- graph.add_edge(i,j)
-
- # generate
- for node in range(growth_num, steps * growth_num):
- graph.add_node(node)
- while ( graph.out_degree(node) < growth_num ):
- nbr = random.choice(store)
-
- # loop defense
- if node == nbr and not self_loops:
- continue
-
- # multi edge defense
- if graph.edge_by_node(node, nbr) and not multi_edges:
- continue
-
- graph.add_edge(node, nbr)
-
-
- for nbr in graph.out_nbrs(node):
- store.append(node)
- store.append(nbr)
-
- return graph
-
-def filter_stack(graph, head, filters):
- """
- Perform a walk in a depth-first order starting
- at *head*.
-
- Returns (visited, removes, orphans).
-
- * visited: the set of visited nodes
- * removes: the list of nodes where the node
- data does not all *filters*
- * orphans: tuples of (last_good, node),
- where node is not in removes, is directly
- reachable from a node in *removes* and
- *last_good* is the closest upstream node that is not
- in *removes*.
- """
-
- visited, removes, orphans = set([head]), set(), set()
- stack = deque([(head, head)])
- get_data = graph.node_data
- get_edges = graph.out_edges
- get_tail = graph.tail
-
- while stack:
- last_good, node = stack.pop()
- data = get_data(node)
- if data is not None:
- for filtfunc in filters:
- if not filtfunc(data):
- removes.add(node)
- break
- else:
- last_good = node
- for edge in get_edges(node):
- tail = get_tail(edge)
- if last_good is not node:
- orphans.add((last_good, tail))
- if tail not in visited:
- visited.add(tail)
- stack.append((last_good, tail))
-
- orphans = [(last_good, tail) for (last_good, tail) in orphans if tail not in removes]
- #orphans.sort()
-
- return visited, removes, orphans

Powered by Google App Engine
This is Rietveld 408576698