{"action":"created","comment":{"url":"https://api.github.com/repos/networkx/networkx/pulls/comments/32763766","id":32763766,"diff_hunk":"@@ -0,0 +1,323 @@\n+# -*- coding: utf-8 -*-\n+\"\"\"\n+Algorithms for calculating min/max spanning trees/forests.\n+\n+\"\"\"\n+#    Copyright (C) 2015 NetworkX Developers\n+#    Aric Hagberg <hagberg@lanl.gov>\n+#    Dan Schult <dschult@colgate.edu>\n+#    Pieter Swart <swart@lanl.gov>\n+#    Loïc Séguin-C. <loicseguin@gmail.com>\n+#    All rights reserved.\n+#    BSD license.\n+\n+__all__ = [\n+    'minimum_spanning_edges', 'maximum_spanning_edges',\n+    'minimum_spanning_tree', 'maximum_spanning_tree',\n+]\n+\n+from heapq import heappop, heappush\n+from itertools import count\n+\n+import networkx as nx\n+from networkx.utils import UnionFind, not_implemented_for\n+\n+\n+def kruskal_mst_edges(G, minimum, weight='weight', data=True):\n+    subtrees = UnionFind()\n+    edges = sorted(G.edges(data=True), key=lambda t: t[2].get(weight, 1),\n+                   reverse=not minimum)\n+\n+    for u, v, d in edges:\n+        if subtrees[u] != subtrees[v]:\n+            if data:\n+                yield (u, v, d)\n+            else:\n+                yield (u, v)\n+            subtrees.union(u, v)\n+\n+\n+def prim_mst_edges(G, minimum, weight='weight', data=True):\n+    push = heappush\n+    pop = heappop\n+\n+    nodes = list(G.nodes())\n+    c = count()\n+\n+    neg = 1\n+    if not minimum:\n+        neg = -1\n+\n+    while nodes:\n+        u = nodes.pop(0)\n+        frontier = []\n+        visited = [u]\n+        for u, v in G.edges(u):\n+            push(frontier, (G[u][v].get(weight, 1) * neg, next(c), u, v))\n+\n+        while frontier:\n+            W, _, u, v = pop(frontier)\n+            if v in visited:\n+                continue\n+            visited.append(v)\n+            nodes.remove(v)\n+            for v, w in G.edges(v):\n+                if w in visited:\n+                    continue\n+                push(frontier, (G[v][w].get(weight, 1) * neg, next(c), v, w))\n+\n+            if data:\n+                yield u, v, G[u][v]\n+            else:\n+                yield u, v\n+\n+ALGORITHMS = {\n+    'kruskal': kruskal_mst_edges,\n+    'prim': prim_mst_edges\n+}\n+\n+\n+def spanning_edges(G, minimum, algorithm='kruskal', weight='weight', data=True):\n+    if algorithm not in ALGORITHMS:\n+        msg = '{} is not a valid choice for an algorithm.'.format(algorithm)\n+        raise ValueError(msg)\n+\n+    return ALGORITHMS[algorithm](G, minimum=minimum, weight='weight', data=data)\n+\n+\n+@not_implemented_for('directed')\n+def minimum_spanning_edges(G, algorithm='kruskal', weight='weight', data=True):\n+    \"\"\"Generate edges in a minimum spanning forest of an undirected\n+    weighted graph.\n+\n+    A minimum spanning tree is a subgraph of the graph (a tree)\n+    with the minimum sum of edge weights.  A spanning forest is a\n+    union of the spanning trees for each connected component of the graph.\n+\n+    Parameters\n+    ----------\n+    G : undirected Graph\n+       An undirected graph. If `G` is connected, then the algorithm finds a\n+       spanning tree. Otherwise, a spanning forest is found.\n+\n+    algorithm : string\n+       The algorithm to use when finding a minimum spanning tree. Valid\n+       choices are 'kruskal' or 'prim'. Default is 'kruskal'.\n+\n+    weight : string\n+       Edge data key to use for weight (default 'weight').\n+\n+    data : bool, optional\n+       If True yield the edge data along with the edge.\n+\n+    Returns\n+    -------\n+    edges : iterator\n+       A generator that produces edges in the minimum spanning tree.\n+       The edges are three-tuples (u,v,w) where w is the weight.\n+\n+    Examples\n+    --------\n+    >>> from networkx.algorithms import tree\n+\n+    Find minimum spanning edges by Kruskal's algorithm\n+\n+    >>> G=nx.cycle_graph(4)\n+    >>> G.add_edge(0,3,weight=2) # assign weight 2 to edge 0-3\n+    >>> mst=tree.minimum_spanning_edges(G, algorithm='kruskal', data=False) # a generator of MST edges\n+    >>> edgelist=list(mst) # make a list of the edges\n+    >>> print(sorted(edgelist))\n+    [(0, 1), (1, 2), (2, 3)]\n+\n+    Find minimum spanning edges by Prim's algorithm\n+\n+    >>> G=nx.cycle_graph(4)\n+    >>> G.add_edge(0,3,weight=2) # assign weight 2 to edge 0-3\n+    >>> mst=tree.minimum_spanning_edges(G, algorithm='prim', data=False) # a generator of MST edges\n+    >>> edgelist=list(mst) # make a list of the edges\n+    >>> print(sorted(edgelist))\n+    [(0, 1), (1, 2), (2, 3)]\n+\n+    Notes\n+    -----\n+\n+    If the graph edges do not have a weight attribute a default weight of 1\n+    will be used.\n+\n+    Modified code from David Eppstein, April 2006\n+    http://www.ics.uci.edu/~eppstein/PADS/\n+    \"\"\"\n+    return spanning_edges(G, minimum=True, algorithm=algorithm,\n+                          weight=weight, data=data)\n+\n+\n+@not_implemented_for('directed')\n+def maximum_spanning_edges(G, algorithm='kruskal', weight='weight', data=True):\n+    \"\"\"Generate edges in a maximum spanning forest of an undirected\n+    weighted graph.\n+\n+    A maximum spanning tree is a subgraph of the graph (a tree)\n+    with the maximum possible sum of edge weights.  A spanning forest is a\n+    union of the spanning trees for each connected component of the graph.\n+\n+    Parameters\n+    ----------\n+    G : undirected Graph\n+       An undirected graph. If `G` is connected, then the algorithm finds a\n+       spanning tree. Otherwise, a spanning forest is found.\n+\n+    algorithm : string\n+       The algorithm to use when finding a minimum spanning tree. Valid\n+       choices are 'kruskal' or 'prim'. Default is 'kruskal'.\n+\n+    weight : string\n+       Edge data key to use for weight (default 'weight').\n+\n+    data : bool, optional\n+       If True yield the edge data along with the edge.\n+\n+    Returns\n+    -------\n+    edges : iterator\n+       A generator that produces edges in the maximum spanning tree.\n+       The edges are three-tuples (u,v,w) where w is the weight.\n+\n+    Examples\n+    --------\n+    >>> from networkx.algorithms import tree\n+\n+    Find maximum spanning edges by Kruskal's algorithm\n+\n+    >>> G=nx.cycle_graph(4)\n+    >>> G.add_edge(0,3,weight=2) # assign weight 2 to edge 0-3\n+    >>> mst=tree.maximum_spanning_edges(G, algorithm='kruskal', data=False) # a generator of MST edges\n+    >>> edgelist=list(mst) # make a list of the edges\n+    >>> print(sorted(edgelist))","path":"networkx/algorithms/tree/mst.py","position":195,"original_position":195,"commit_id":"32c7e4baddfadcdda924daae6bf19896ad587c47","original_commit_id":"32c7e4baddfadcdda924daae6bf19896ad587c47","user":{"login":"SanketDG","id":8980971,"avatar_url":"https://avatars.githubusercontent.com/u/8980971?v=3","gravatar_id":"","url":"https://api.github.com/users/SanketDG","html_url":"https://github.com/SanketDG","followers_url":"https://api.github.com/users/SanketDG/followers","following_url":"https://api.github.com/users/SanketDG/following{/other_user}","gists_url":"https://api.github.com/users/SanketDG/gists{/gist_id}","starred_url":"https://api.github.com/users/SanketDG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SanketDG/subscriptions","organizations_url":"https://api.github.com/users/SanketDG/orgs","repos_url":"https://api.github.com/users/SanketDG/repos","events_url":"https://api.github.com/users/SanketDG/events{/privacy}","received_events_url":"https://api.github.com/users/SanketDG/received_events","type":"User","site_admin":false},"body":"I agree with the `print()` so that people don't get confused. But those comments are supposed to help someone reading the documentation, Should we really remove them in favour of pep8? Wrapping at 80 characters yields clean readable code, but in this case, the comments clearly supersede pep8 in terms of having good docstrings.","created_at":"2015-06-18T18:41:30Z","updated_at":"2015-06-18T18:41:30Z","html_url":"https://github.com/networkx/networkx/pull/1577#discussion_r32763766","pull_request_url":"https://api.github.com/repos/networkx/networkx/pulls/1577","_links":{"self":{"href":"https://api.github.com/repos/networkx/networkx/pulls/comments/32763766"},"html":{"href":"https://github.com/networkx/networkx/pull/1577#discussion_r32763766"},"pull_request":{"href":"https://api.github.com/repos/networkx/networkx/pulls/1577"}}},"pull_request":{"url":"https://api.github.com/repos/networkx/networkx/pulls/1577","id":37291801,"html_url":"https://github.com/networkx/networkx/pull/1577","diff_url":"https://github.com/networkx/networkx/pull/1577.diff","patch_url":"https://github.com/networkx/networkx/pull/1577.patch","issue_url":"https://api.github.com/repos/networkx/networkx/issues/1577","number":1577,"state":"open","locked":false,"title":"Maximum spanning tree","user":{"login":"SanketDG","id":8980971,"avatar_url":"https://avatars.githubusercontent.com/u/8980971?v=3","gravatar_id":"","url":"https://api.github.com/users/SanketDG","html_url":"https://github.com/SanketDG","followers_url":"https://api.github.com/users/SanketDG/followers","following_url":"https://api.github.com/users/SanketDG/following{/other_user}","gists_url":"https://api.github.com/users/SanketDG/gists{/gist_id}","starred_url":"https://api.github.com/users/SanketDG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SanketDG/subscriptions","organizations_url":"https://api.github.com/users/SanketDG/orgs","repos_url":"https://api.github.com/users/SanketDG/repos","events_url":"https://api.github.com/users/SanketDG/events{/privacy}","received_events_url":"https://api.github.com/users/SanketDG/received_events","type":"User","site_admin":false},"body":"#1563 and #1575 ","created_at":"2015-06-09T19:48:46Z","updated_at":"2015-06-18T18:41:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0ddb5b623236752ca696e3f653255abfa448a9fb","assignee":null,"milestone":{"url":"https://api.github.com/repos/networkx/networkx/milestones/3","html_url":"https://github.com/networkx/networkx/milestones/networkx-2.0","labels_url":"https://api.github.com/repos/networkx/networkx/milestones/3/labels","id":236124,"number":3,"title":"networkx-2.0","description":"","creator":{"login":"hagberg","id":187875,"avatar_url":"https://avatars.githubusercontent.com/u/187875?v=3","gravatar_id":"","url":"https://api.github.com/users/hagberg","html_url":"https://github.com/hagberg","followers_url":"https://api.github.com/users/hagberg/followers","following_url":"https://api.github.com/users/hagberg/following{/other_user}","gists_url":"https://api.github.com/users/hagberg/gists{/gist_id}","starred_url":"https://api.github.com/users/hagberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hagberg/subscriptions","organizations_url":"https://api.github.com/users/hagberg/orgs","repos_url":"https://api.github.com/users/hagberg/repos","events_url":"https://api.github.com/users/hagberg/events{/privacy}","received_events_url":"https://api.github.com/users/hagberg/received_events","type":"User","site_admin":false},"open_issues":42,"closed_issues":14,"state":"open","created_at":"2012-12-29T15:43:08Z","updated_at":"2015-06-17T13:22:17Z","due_on":"2015-09-15T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/networkx/networkx/pulls/1577/commits","review_comments_url":"https://api.github.com/repos/networkx/networkx/pulls/1577/comments","review_comment_url":"https://api.github.com/repos/networkx/networkx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/networkx/networkx/issues/1577/comments","statuses_url":"https://api.github.com/repos/networkx/networkx/statuses/32c7e4baddfadcdda924daae6bf19896ad587c47","head":{"label":"SanketDG:maximum_spanning","ref":"maximum_spanning","sha":"32c7e4baddfadcdda924daae6bf19896ad587c47","user":{"login":"SanketDG","id":8980971,"avatar_url":"https://avatars.githubusercontent.com/u/8980971?v=3","gravatar_id":"","url":"https://api.github.com/users/SanketDG","html_url":"https://github.com/SanketDG","followers_url":"https://api.github.com/users/SanketDG/followers","following_url":"https://api.github.com/users/SanketDG/following{/other_user}","gists_url":"https://api.github.com/users/SanketDG/gists{/gist_id}","starred_url":"https://api.github.com/users/SanketDG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SanketDG/subscriptions","organizations_url":"https://api.github.com/users/SanketDG/orgs","repos_url":"https://api.github.com/users/SanketDG/repos","events_url":"https://api.github.com/users/SanketDG/events{/privacy}","received_events_url":"https://api.github.com/users/SanketDG/received_events","type":"User","site_admin":false},"repo":{"id":31659136,"name":"networkx","full_name":"SanketDG/networkx","owner":{"login":"SanketDG","id":8980971,"avatar_url":"https://avatars.githubusercontent.com/u/8980971?v=3","gravatar_id":"","url":"https://api.github.com/users/SanketDG","html_url":"https://github.com/SanketDG","followers_url":"https://api.github.com/users/SanketDG/followers","following_url":"https://api.github.com/users/SanketDG/following{/other_user}","gists_url":"https://api.github.com/users/SanketDG/gists{/gist_id}","starred_url":"https://api.github.com/users/SanketDG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SanketDG/subscriptions","organizations_url":"https://api.github.com/users/SanketDG/orgs","repos_url":"https://api.github.com/users/SanketDG/repos","events_url":"https://api.github.com/users/SanketDG/events{/privacy}","received_events_url":"https://api.github.com/users/SanketDG/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/SanketDG/networkx","description":"Official NetworkX source code repository.  ","fork":true,"url":"https://api.github.com/repos/SanketDG/networkx","forks_url":"https://api.github.com/repos/SanketDG/networkx/forks","keys_url":"https://api.github.com/repos/SanketDG/networkx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SanketDG/networkx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SanketDG/networkx/teams","hooks_url":"https://api.github.com/repos/SanketDG/networkx/hooks","issue_events_url":"https://api.github.com/repos/SanketDG/networkx/issues/events{/number}","events_url":"https://api.github.com/repos/SanketDG/networkx/events","assignees_url":"https://api.github.com/repos/SanketDG/networkx/assignees{/user}","branches_url":"https://api.github.com/repos/SanketDG/networkx/branches{/branch}","tags_url":"https://api.github.com/repos/SanketDG/networkx/tags","blobs_url":"https://api.github.com/repos/SanketDG/networkx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SanketDG/networkx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SanketDG/networkx/git/refs{/sha}","trees_url":"https://api.github.com/repos/SanketDG/networkx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SanketDG/networkx/statuses/{sha}","languages_url":"https://api.github.com/repos/SanketDG/networkx/languages","stargazers_url":"https://api.github.com/repos/SanketDG/networkx/stargazers","contributors_url":"https://api.github.com/repos/SanketDG/networkx/contributors","subscribers_url":"https://api.github.com/repos/SanketDG/networkx/subscribers","subscription_url":"https://api.github.com/repos/SanketDG/networkx/subscription","commits_url":"https://api.github.com/repos/SanketDG/networkx/commits{/sha}","git_commits_url":"https://api.github.com/repos/SanketDG/networkx/git/commits{/sha}","comments_url":"https://api.github.com/repos/SanketDG/networkx/comments{/number}","issue_comment_url":"https://api.github.com/repos/SanketDG/networkx/issues/comments{/number}","contents_url":"https://api.github.com/repos/SanketDG/networkx/contents/{+path}","compare_url":"https://api.github.com/repos/SanketDG/networkx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SanketDG/networkx/merges","archive_url":"https://api.github.com/repos/SanketDG/networkx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SanketDG/networkx/downloads","issues_url":"https://api.github.com/repos/SanketDG/networkx/issues{/number}","pulls_url":"https://api.github.com/repos/SanketDG/networkx/pulls{/number}","milestones_url":"https://api.github.com/repos/SanketDG/networkx/milestones{/number}","notifications_url":"https://api.github.com/repos/SanketDG/networkx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SanketDG/networkx/labels{/name}","releases_url":"https://api.github.com/repos/SanketDG/networkx/releases{/id}","created_at":"2015-03-04T13:46:11Z","updated_at":"2015-05-06T19:00:33Z","pushed_at":"2015-06-18T18:21:21Z","git_url":"git://github.com/SanketDG/networkx.git","ssh_url":"git@github.com:SanketDG/networkx.git","clone_url":"https://github.com/SanketDG/networkx.git","svn_url":"https://github.com/SanketDG/networkx","homepage":"http://networkx.github.io","size":13189,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"networkx:master","ref":"master","sha":"afb8ec85d71598ccf6b174bed3ee52593448f671","user":{"login":"networkx","id":388785,"avatar_url":"https://avatars.githubusercontent.com/u/388785?v=3","gravatar_id":"","url":"https://api.github.com/users/networkx","html_url":"https://github.com/networkx","followers_url":"https://api.github.com/users/networkx/followers","following_url":"https://api.github.com/users/networkx/following{/other_user}","gists_url":"https://api.github.com/users/networkx/gists{/gist_id}","starred_url":"https://api.github.com/users/networkx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/networkx/subscriptions","organizations_url":"https://api.github.com/users/networkx/orgs","repos_url":"https://api.github.com/users/networkx/repos","events_url":"https://api.github.com/users/networkx/events{/privacy}","received_events_url":"https://api.github.com/users/networkx/received_events","type":"Organization","site_admin":false},"repo":{"id":890377,"name":"networkx","full_name":"networkx/networkx","owner":{"login":"networkx","id":388785,"avatar_url":"https://avatars.githubusercontent.com/u/388785?v=3","gravatar_id":"","url":"https://api.github.com/users/networkx","html_url":"https://github.com/networkx","followers_url":"https://api.github.com/users/networkx/followers","following_url":"https://api.github.com/users/networkx/following{/other_user}","gists_url":"https://api.github.com/users/networkx/gists{/gist_id}","starred_url":"https://api.github.com/users/networkx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/networkx/subscriptions","organizations_url":"https://api.github.com/users/networkx/orgs","repos_url":"https://api.github.com/users/networkx/repos","events_url":"https://api.github.com/users/networkx/events{/privacy}","received_events_url":"https://api.github.com/users/networkx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/networkx/networkx","description":"Official NetworkX source code repository.  ","fork":false,"url":"https://api.github.com/repos/networkx/networkx","forks_url":"https://api.github.com/repos/networkx/networkx/forks","keys_url":"https://api.github.com/repos/networkx/networkx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/networkx/networkx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/networkx/networkx/teams","hooks_url":"https://api.github.com/repos/networkx/networkx/hooks","issue_events_url":"https://api.github.com/repos/networkx/networkx/issues/events{/number}","events_url":"https://api.github.com/repos/networkx/networkx/events","assignees_url":"https://api.github.com/repos/networkx/networkx/assignees{/user}","branches_url":"https://api.github.com/repos/networkx/networkx/branches{/branch}","tags_url":"https://api.github.com/repos/networkx/networkx/tags","blobs_url":"https://api.github.com/repos/networkx/networkx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/networkx/networkx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/networkx/networkx/git/refs{/sha}","trees_url":"https://api.github.com/repos/networkx/networkx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/networkx/networkx/statuses/{sha}","languages_url":"https://api.github.com/repos/networkx/networkx/languages","stargazers_url":"https://api.github.com/repos/networkx/networkx/stargazers","contributors_url":"https://api.github.com/repos/networkx/networkx/contributors","subscribers_url":"https://api.github.com/repos/networkx/networkx/subscribers","subscription_url":"https://api.github.com/repos/networkx/networkx/subscription","commits_url":"https://api.github.com/repos/networkx/networkx/commits{/sha}","git_commits_url":"https://api.github.com/repos/networkx/networkx/git/commits{/sha}","comments_url":"https://api.github.com/repos/networkx/networkx/comments{/number}","issue_comment_url":"https://api.github.com/repos/networkx/networkx/issues/comments{/number}","contents_url":"https://api.github.com/repos/networkx/networkx/contents/{+path}","compare_url":"https://api.github.com/repos/networkx/networkx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/networkx/networkx/merges","archive_url":"https://api.github.com/repos/networkx/networkx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/networkx/networkx/downloads","issues_url":"https://api.github.com/repos/networkx/networkx/issues{/number}","pulls_url":"https://api.github.com/repos/networkx/networkx/pulls{/number}","milestones_url":"https://api.github.com/repos/networkx/networkx/milestones{/number}","notifications_url":"https://api.github.com/repos/networkx/networkx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/networkx/networkx/labels{/name}","releases_url":"https://api.github.com/repos/networkx/networkx/releases{/id}","created_at":"2010-09-06T00:53:44Z","updated_at":"2015-06-18T16:28:00Z","pushed_at":"2015-06-18T18:21:22Z","git_url":"git://github.com/networkx/networkx.git","ssh_url":"git@github.com:networkx/networkx.git","clone_url":"https://github.com/networkx/networkx.git","svn_url":"https://github.com/networkx/networkx","homepage":"http://networkx.github.io","size":23521,"stargazers_count":1445,"watchers_count":1445,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":460,"mirror_url":null,"open_issues_count":232,"forks":460,"open_issues":232,"watchers":1445,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/networkx/networkx/pulls/1577"},"html":{"href":"https://github.com/networkx/networkx/pull/1577"},"issue":{"href":"https://api.github.com/repos/networkx/networkx/issues/1577"},"comments":{"href":"https://api.github.com/repos/networkx/networkx/issues/1577/comments"},"review_comments":{"href":"https://api.github.com/repos/networkx/networkx/pulls/1577/comments"},"review_comment":{"href":"https://api.github.com/repos/networkx/networkx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/networkx/networkx/pulls/1577/commits"},"statuses":{"href":"https://api.github.com/repos/networkx/networkx/statuses/32c7e4baddfadcdda924daae6bf19896ad587c47"}}}}