diff options
Diffstat (limited to 'lib/python2.7/site-packages/setoolsgui/networkx/readwrite/leda.py')
-rw-r--r-- | lib/python2.7/site-packages/setoolsgui/networkx/readwrite/leda.py | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/lib/python2.7/site-packages/setoolsgui/networkx/readwrite/leda.py b/lib/python2.7/site-packages/setoolsgui/networkx/readwrite/leda.py deleted file mode 100644 index a4d17db..0000000 --- a/lib/python2.7/site-packages/setoolsgui/networkx/readwrite/leda.py +++ /dev/null @@ -1,106 +0,0 @@ -""" -Read graphs in LEDA format. - -LEDA is a C++ class library for efficient data types and algorithms. - -Format ------- -See http://www.algorithmic-solutions.info/leda_guide/graphs/leda_native_graph_fileformat.html - -""" -# Original author: D. Eppstein, UC Irvine, August 12, 2003. -# The original code at http://www.ics.uci.edu/~eppstein/PADS/ is public domain. -__author__ = """Aric Hagberg (hagberg@lanl.gov)""" -# Copyright (C) 2004-2010 by -# Aric Hagberg <hagberg@lanl.gov> -# Dan Schult <dschult@colgate.edu> -# Pieter Swart <swart@lanl.gov> -# All rights reserved. -# BSD license. - -__all__ = ['read_leda', 'parse_leda'] - -import networkx as nx -from networkx.exception import NetworkXError -from networkx.utils import open_file, is_string_like - -@open_file(0,mode='rb') -def read_leda(path, encoding='UTF-8'): - """Read graph in LEDA format from path. - - Parameters - ---------- - path : file or string - File or filename to read. Filenames ending in .gz or .bz2 will be - uncompressed. - - Returns - ------- - G : NetworkX graph - - Examples - -------- - G=nx.read_leda('file.leda') - - References - ---------- - .. [1] http://www.algorithmic-solutions.info/leda_guide/graphs/leda_native_graph_fileformat.html - """ - lines=(line.decode(encoding) for line in path) - G=parse_leda(lines) - return G - - -def parse_leda(lines): - """Read graph in LEDA format from string or iterable. - - Parameters - ---------- - lines : string or iterable - Data in LEDA format. - - Returns - ------- - G : NetworkX graph - - Examples - -------- - G=nx.parse_leda(string) - - References - ---------- - .. [1] http://www.algorithmic-solutions.info/leda_guide/graphs/leda_native_graph_fileformat.html - """ - if is_string_like(lines): lines=iter(lines.split('\n')) - lines = iter([line.rstrip('\n') for line in lines \ - if not (line.startswith('#') or line.startswith('\n') or line=='')]) - for i in range(3): - next(lines) - # Graph - du = int(next(lines)) # -1=directed, -2=undirected - if du==-1: - G = nx.DiGraph() - else: - G = nx.Graph() - - # Nodes - n =int(next(lines)) # number of nodes - node={} - for i in range(1,n+1): # LEDA counts from 1 to n - symbol=next(lines).rstrip().strip('|{}| ') - if symbol=="": symbol=str(i) # use int if no label - could be trouble - node[i]=symbol - - G.add_nodes_from([s for i,s in node.items()]) - - # Edges - m = int(next(lines)) # number of edges - for i in range(m): - try: - s,t,reversal,label=next(lines).split() - except: - raise NetworkXError('Too few fields in LEDA.GRAPH edge %d'%(i+1)) - # BEWARE: no handling of reversal edges - G.add_edge(node[int(s)],node[int(t)],label=label[2:-2]) - return G - |