diff env/lib/python3.7/site-packages/networkx/readwrite/p2g.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/networkx/readwrite/p2g.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-"""
-This module provides the following: read and write of p2g format
-used in metabolic pathway studies.
-
-See https://web.archive.org/web/20080626113807/http://www.cs.purdue.edu/homes/koyuturk/pathway/ for a description.
-
-The summary is included here:
-
-A file that describes a uniquely labeled graph (with extension ".gr")
-format looks like the following:
-
-
-name
-3 4
-a
-1 2
-b
-
-c
-0 2
-
-"name" is simply a description of what the graph corresponds to. The
-second line displays the number of nodes and number of edges,
-respectively. This sample graph contains three nodes labeled "a", "b",
-and "c". The rest of the graph contains two lines for each node. The
-first line for a node contains the node label. After the declaration
-of the node label, the out-edges of that node in the graph are
-provided. For instance, "a" is linked to nodes 1 and 2, which are
-labeled "b" and "c", while the node labeled "b" has no outgoing
-edges. Observe that node labeled "c" has an outgoing edge to
-itself. Indeed, self-loops are allowed. Node index starts from 0.
-
-"""
-#    Copyright (C) 2008-2012 by
-#    Aric Hagberg <hagberg@lanl.gov>
-#    Dan Schult <dschult@colgate.edu>
-#    Pieter Swart <swart@lanl.gov>
-#    All rights reserved.
-#    BSD license.
-import networkx
-from networkx.utils import is_string_like, open_file
-__author__ = '\n'.join(['Willem Ligtenberg (w.p.a.ligtenberg@tue.nl)',
-                        'Aric Hagberg (aric.hagberg@gmail.com)'])
-
-
-@open_file(1, mode='w')
-def write_p2g(G, path, encoding='utf-8'):
-    """Write NetworkX graph in p2g format.
-
-    Notes
-    -----
-    This format is meant to be used with directed graphs with
-    possible self loops.
-    """
-    path.write(("%s\n" % G.name).encode(encoding))
-    path.write(("%s %s\n" % (G.order(), G.size())).encode(encoding))
-    nodes = list(G)
-    # make dictionary mapping nodes to integers
-    nodenumber = dict(zip(nodes, range(len(nodes))))
-    for n in nodes:
-        path.write(("%s\n" % n).encode(encoding))
-        for nbr in G.neighbors(n):
-            path.write(("%s " % nodenumber[nbr]).encode(encoding))
-        path.write("\n".encode(encoding))
-
-
-@open_file(0, mode='r')
-def read_p2g(path, encoding='utf-8'):
-    """Read graph in p2g format from path.
-
-    Returns
-    -------
-    MultiDiGraph
-
-    Notes
-    -----
-    If you want a DiGraph (with no self loops allowed and no edge data)
-    use D=networkx.DiGraph(read_p2g(path))
-    """
-    lines = (line.decode(encoding) for line in path)
-    G = parse_p2g(lines)
-    return G
-
-
-def parse_p2g(lines):
-    """Parse p2g format graph from string or iterable.
-
-    Returns
-    -------
-    MultiDiGraph
-    """
-    description = next(lines).strip()
-    # are multiedges (parallel edges) allowed?
-    G = networkx.MultiDiGraph(name=description, selfloops=True)
-    nnodes, nedges = map(int, next(lines).split())
-    nodelabel = {}
-    nbrs = {}
-    # loop over the nodes keeping track of node labels and out neighbors
-    # defer adding edges until all node labels are known
-    for i in range(nnodes):
-        n = next(lines).strip()
-        nodelabel[i] = n
-        G.add_node(n)
-        nbrs[n] = map(int, next(lines).split())
-    # now we know all of the node labels so we can add the edges
-    # with the correct labels
-    for n in G:
-        for nbr in nbrs[n]:
-            G.add_edge(n, nodelabel[nbr])
-    return G