# HG changeset patch
# User bernhardlutz
# Date 1393595864 18000
# Node ID fe01a054a6b25deefdbad1bdf0d5bdb52dfb2112
Uploaded
diff -r 000000000000 -r fe01a054a6b2 3_molecules.gspan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/3_molecules.gspan Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,129 @@
+t # id 1
+v 0 O
+v 1 O
+v 2 O
+v 3 O
+v 4 C
+v 5 C
+v 6 C
+v 7 C
+v 8 C
+v 9 C
+v 10 C
+v 11 C
+v 12 C
+v 13 H
+v 14 H
+v 15 H
+v 16 H
+v 17 H
+v 18 H
+v 19 H
+v 20 H
+e 0 4 1
+e 0 11 1
+e 1 10 1
+e 1 20 1
+e 2 10 2
+e 3 11 2
+e 4 5 1
+e 4 6 2
+e 5 7 2
+e 5 10 1
+e 6 8 1
+e 6 13 1
+e 7 9 1
+e 7 14 1
+e 8 9 2
+e 8 15 1
+e 9 16 1
+e 11 12 1
+e 12 17 1
+e 12 18 1
+e 12 19 1
+t # id 2
+v 0 O
+v 1 O
+v 2 O
+v 3 O
+v 4 C
+v 5 C
+v 6 C
+v 7 C
+v 8 C
+v 9 C
+v 10 C
+v 11 C
+v 12 C
+v 13 H
+v 14 H
+v 15 H
+v 16 H
+v 17 H
+v 18 H
+v 19 H
+v 20 H
+e 0 4 1
+e 0 11 1
+e 1 10 1
+e 1 20 1
+e 2 10 2
+e 3 11 2
+e 4 5 1
+e 4 6 2
+e 5 7 2
+e 5 10 1
+e 6 8 1
+e 6 13 1
+e 7 9 1
+e 7 14 1
+e 8 9 2
+e 8 15 1
+e 9 16 1
+e 11 12 1
+e 12 17 1
+e 12 18 1
+e 12 19 1
+t # id 3
+v 0 O
+v 1 O
+v 2 O
+v 3 O
+v 4 C
+v 5 C
+v 6 C
+v 7 C
+v 8 C
+v 9 C
+v 10 C
+v 11 C
+v 12 C
+v 13 H
+v 14 H
+v 15 H
+v 16 H
+v 17 H
+v 18 H
+v 19 H
+v 20 H
+e 0 4 1
+e 0 11 1
+e 1 10 1
+e 1 20 1
+e 2 10 2
+e 3 11 2
+e 4 5 1
+e 4 6 2
+e 5 7 2
+e 5 10 1
+e 6 8 1
+e 6 13 1
+e 7 9 1
+e 7 14 1
+e 8 9 2
+e 8 15 1
+e 9 16 1
+e 11 12 1
+e 12 17 1
+e 12 18 1
+e 12 19 1
diff -r 000000000000 -r fe01a054a6b2 convert_graph.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convert_graph.py Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,129 @@
+#!/usr/bin/env python
+# Aufruf convert_graph.py --infile datei --informat typ --outfile ausgabedatei --outformat ausgabetyp
+
+import sys, os
+import networkx as nx
+import argparse
+import json
+
+from xgmml_networkx import XGMMLParserHelper, XGMMLWriter
+from networkx.readwrite import json_graph
+
+#supported graph_types
+graph_types = ["gml", "yaml", "gspan", "xgmml", "gexf", "graphml", "json", "pajek"]
+
+func_dic_read= {'gml': nx.read_gml, 'yaml':nx.read_yaml, 'gexf': nx.read_gexf,
+ 'graphml': nx.read_graphml, 'pajek': nx.read_pajek}
+
+func_dic_write= {'gml': nx.write_gml, 'yaml':nx.write_yaml, 'gexf': nx.write_gexf,
+ 'graphml': nx.write_graphml, 'pajek': nx.write_pajek}
+
+#completely supported types by networkx
+completely_supported_types = ["gml", "gexf", "yaml", "graphml", "pajek"]
+
+def read_gspan(infile):
+ G = nx.Graph()
+ idoffset=0
+ old_id_start=0
+ for line in infile:
+ line_split=line.split(" ")
+ if line[0] == "v":
+ G.add_node(idoffset, label=line_split[2].strip())
+ idoffset+=1
+ elif line[0] == "e":
+ G.add_edge(old_id_start+int(line_split[1]), old_id_start+int(line_split[2]), label=line_split[3].strip())
+ elif line[0] == "t":
+ # its a new subgraph
+ #idoffset*=1
+ old_id_start=idoffset
+ #print(nx.is_connected(G))
+ return G
+
+
+def write_gspan(graph, outfile):
+ # get all subgraphs only works with undirected
+ subgraphs=nx.connected_components(graph.to_undirected())
+ id_count=1
+ node_count=0
+ #get labels
+ label_dic=nx.get_node_attributes(graph,'label')
+ for s in subgraphs:
+ node_count_tree=0
+ node_dict={}
+ outfile.write("t # id "+str(id_count)+"\n")
+ # for every node in subgraph
+ for v in sorted(s):
+ # node id restart from 0 for every sub graph
+ node_dict[v]=node_count_tree
+ outfile.write("v "+str(node_count_tree)+" "+label_dic[v]+" \n")
+ node_count_tree+=1
+ node_count+=1
+
+ # all edges adjacent to a node of s
+ edges=nx.edges(graph, s)
+ for e in sorted(edges):
+ #print(graph[e[0]][e[1]])
+ outfile.write("e "+str(node_dict[e[0]])+" "+str(node_dict[e[1]])+" "+graph[e[0]][e[1]]['label']+"\n")
+
+ id_count+=1
+def read_json(file):
+ json_string=file.read()
+ print(json_string)
+ json_dict=json.loads(json_string)
+ print(json_dict)
+ return nx.Graph()
+
+def write_json(graph, outfile):
+ json_dict=json_graph.node_link_data(graph)
+ json_string=json.dumbs(json_dict)
+ outfile.write(json_string)
+ print("did it")
+
+def main( args ):
+
+ if args.informat not in graph_types:
+ print "EXCEPTION COMPUTER EXPLODING"
+ # everything networkx can do by itself ;)
+ elif args.informat in completely_supported_types:
+ function = func_dic_read[args.informat]
+ graph = function(args.infile)
+ elif args.informat == "gspan":
+ graph = read_gspan(args.infile)
+ elif args.informat == "json":
+ graph = read_json(args.infile)
+ elif args.informat == "xgmml":
+ xgmml=XGMMLParserHelper()
+ xgmml.parseFile(args.infile)
+ graph=xgmml.graph()
+
+
+
+ if args.outformat in completely_supported_types:
+ function = func_dic_write[args.outformat]
+ function(graph, args.outfile)
+ elif args.outformat == "gspan":
+ write_gspan(graph, args.outfile)
+ elif args.outformat == "json":
+ write_json(graph, args.outfile)
+ elif args.outformat == "xgmml":
+ #xgmml=XGMMLParserHelper(graph)
+ #xgmml.parseFile(open(sys.argv[1]))
+ a=XGMMLWriter(args.outfile, graph, "MyGraph")
+
+if __name__ == "__main__":
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--infile', type=argparse.FileType('r'),
+ help="Specify the input file representing a graph")
+ parser.add_argument('--outfile', type=argparse.FileType('w'),
+ help="Specify one output file")
+ parser.add_argument('--informat', type=str,
+ help="Specify the format of the input graph", choices = graph_types)
+ parser.add_argument('--outformat', type=str,
+ help="Specify the format of the output graph", choices = graph_types)
+ if len(sys.argv) < 8:
+ print "Too few arguments..."
+ parser.print_help()
+ exit(1)
+ args = parser.parse_args()
+ main( args )
diff -r 000000000000 -r fe01a054a6b2 convert_graph.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/convert_graph.xml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,44 @@
+
+ Convert between different Graphformats
+ echo "0.1.0"
+
+ GRAPHCONVERTER_SCRIPT_PATH
+
+
+ python \$GRAPHCONVERTER_SCRIPT_PATH/convert_graph.py --infile $inputfile --informat $informat --outfile $outfile --outformat $outformat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+This tool converts a file representing a graph into another format.
+
+
diff -r 000000000000 -r fe01a054a6b2 deps.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/deps.txt Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,1 @@
+libyaml->pyyaml
diff -r 000000000000 -r fe01a054a6b2 gspantest2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gspantest2 Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,18 @@
+t # id 1
+v 0 O
+v 3 O
+e 0 3 1
+t # id 2
+v 0 O
+v 1 O
+v 2 O
+v 3 O
+e 0 1 1
+e 1 2 1
+e 1 3 1
+
+t # id 3
+v 0 O
+v 1 O
+e 0 1 1
+
diff -r 000000000000 -r fe01a054a6b2 jsonex
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jsonex Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,19 @@
+{
+ "id": "root",
+ "children": [{
+ id: "n1",
+ labels: [ { text: "n1" } ],
+ width: 100,
+ height: 100,
+ },{
+ id: "n2",
+ labels: [ { text: "n2" } ],
+ width: 100,
+ height: 50
+ }],
+ "edges": [{
+ id: "e1",
+ source: "n1",
+ target: "n2"
+ }]
+}
diff -r 000000000000 -r fe01a054a6b2 jsonwiki
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jsonwiki Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,16 @@
+{
+ "Herausgeber": "Xema",
+ "Nummer": "1234-5678-9012-3456",
+ "Deckung": 2e+6,
+ "Währung": "EURO",
+ "Inhaber": {
+ "Name": "Mustermann",
+ "Vorname": "Max",
+ "männlich": true,
+ "Hobbys": [ "Reiten", "Golfen", "Lesen" ],
+ "Alter": 42,
+ "Kinder": [],
+ "Partner": null
+ }
+}
+
diff -r 000000000000 -r fe01a054a6b2 neu.gml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/neu.gml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,18 @@
+graph [
+ directed 1
+ edge_default [
+ ]
+ node [
+ id 0
+ label "Word"
+ ]
+ node [
+ id 1
+ label "Hello"
+ ]
+ edge [
+ source 1
+ target 0
+ id "0"
+ ]
+]
diff -r 000000000000 -r fe01a054a6b2 neu.xgmml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/neu.xgmml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 neu.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/neu.xml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 neu2.gml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/neu2.gml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,39 @@
+graph [
+ directed 1
+ node [
+ id 1
+ label "A"
+ weiteresAttribut "42"
+ ]
+ node [
+ id 3
+ label "C"
+ weiteresAttribut "44"
+ ]
+ node [
+ id 2
+ label "B"
+ weiteresAttribut "43"
+ ]
+ edge [
+ source 1
+ target 2
+ weiteresAttribut "44"
+ id "3"
+ label "Kante AB"
+ ]
+ edge [
+ source 3
+ target 1
+ weiteresAttribut "44"
+ id "3"
+ label "Kante CA"
+ ]
+ edge [
+ source 2
+ target 3
+ weiteresAttribut "44"
+ id "3"
+ label "Kante BC"
+ ]
+]
diff -r 000000000000 -r fe01a054a6b2 test-data/bsp_graph.gml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bsp_graph.gml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,37 @@
+graph [
+ comment "Das ist ein Beispielgraph."
+ directed 1
+ id 42
+ label "Graph"
+ node [
+ id 1
+ label "A"
+ weiteresAttribut 42
+ ]
+ node [
+ id 2
+ label "B"
+ weiteresAttribut 43
+ ]
+ node [
+ id 3
+ label "C"
+ weiteresAttribut 44
+ ]
+ edge [
+ source 1
+ target 2
+ label "Kante AB"
+ ]
+ edge [
+ source 2
+ target 3
+ label "Kante BC"
+ ]
+ edge [
+ source 3
+ target 1
+ label "Kante CA"
+ ]
+]
+
diff -r 000000000000 -r fe01a054a6b2 test-data/bsp_graph.gml~
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bsp_graph.gml~ Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,49 @@
+ Creator "yFiles"
+ Version 2.2
+ graph
+ [ hierarchic 1
+ directed 1
+ node
+ [ id 0
+ graphics
+ [ x 200.0
+ y 0.0
+ ]
+ LabelGraphics
+ [ text "January" ]
+ ]
+ node
+ [ id 1
+ graphics
+ [ x 425.0
+ y 75.0
+ ]
+ LabelGraphics
+ [ text "December" ]
+ ]
+ edge
+ [ source 1
+ target 0
+ graphics
+ [ Line
+ [ point
+ [ x 425.0
+ y 75.0
+ ]
+ point
+ [ x 425.0
+ y 0.0
+ ]
+ point
+ [ x 200.0
+ y 0.0
+ ]
+ ]
+ ]
+ LabelGraphics
+ [ text "Happy New Year!"
+ model "six_pos"
+ position "head"
+ ]
+ ]
+ ]
diff -r 000000000000 -r fe01a054a6b2 test-data/graph2.gexf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/graph2.gexf Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,16 @@
+
+
+
+ Gexf.net
+ A hello world! file
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 test.gexf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.gexf Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,389 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 test.gml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.gml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,569 @@
+graph [
+ node [
+ id 0
+ label "O"
+ ]
+ node [
+ id 1
+ label "O"
+ ]
+ node [
+ id 2
+ label "O"
+ ]
+ node [
+ id 3
+ label "O"
+ ]
+ node [
+ id 4
+ label "C"
+ ]
+ node [
+ id 5
+ label "C"
+ ]
+ node [
+ id 6
+ label "C"
+ ]
+ node [
+ id 7
+ label "C"
+ ]
+ node [
+ id 8
+ label "C"
+ ]
+ node [
+ id 9
+ label "C"
+ ]
+ node [
+ id 10
+ label "C"
+ ]
+ node [
+ id 11
+ label "C"
+ ]
+ node [
+ id 12
+ label "C"
+ ]
+ node [
+ id 13
+ label "H"
+ ]
+ node [
+ id 14
+ label "H"
+ ]
+ node [
+ id 15
+ label "H"
+ ]
+ node [
+ id 16
+ label "H"
+ ]
+ node [
+ id 17
+ label "H"
+ ]
+ node [
+ id 18
+ label "H"
+ ]
+ node [
+ id 19
+ label "H"
+ ]
+ node [
+ id 20
+ label "H"
+ ]
+ node [
+ id 21
+ label "O"
+ ]
+ node [
+ id 22
+ label "O"
+ ]
+ node [
+ id 23
+ label "O"
+ ]
+ node [
+ id 24
+ label "O"
+ ]
+ node [
+ id 25
+ label "C"
+ ]
+ node [
+ id 26
+ label "C"
+ ]
+ node [
+ id 27
+ label "C"
+ ]
+ node [
+ id 28
+ label "C"
+ ]
+ node [
+ id 29
+ label "C"
+ ]
+ node [
+ id 30
+ label "C"
+ ]
+ node [
+ id 31
+ label "C"
+ ]
+ node [
+ id 32
+ label "C"
+ ]
+ node [
+ id 33
+ label "C"
+ ]
+ node [
+ id 34
+ label "H"
+ ]
+ node [
+ id 35
+ label "H"
+ ]
+ node [
+ id 36
+ label "H"
+ ]
+ node [
+ id 37
+ label "H"
+ ]
+ node [
+ id 38
+ label "H"
+ ]
+ node [
+ id 39
+ label "H"
+ ]
+ node [
+ id 40
+ label "H"
+ ]
+ node [
+ id 41
+ label "H"
+ ]
+ node [
+ id 42
+ label "O"
+ ]
+ node [
+ id 43
+ label "O"
+ ]
+ node [
+ id 44
+ label "O"
+ ]
+ node [
+ id 45
+ label "O"
+ ]
+ node [
+ id 46
+ label "C"
+ ]
+ node [
+ id 47
+ label "C"
+ ]
+ node [
+ id 48
+ label "C"
+ ]
+ node [
+ id 49
+ label "C"
+ ]
+ node [
+ id 50
+ label "C"
+ ]
+ node [
+ id 51
+ label "C"
+ ]
+ node [
+ id 52
+ label "C"
+ ]
+ node [
+ id 53
+ label "C"
+ ]
+ node [
+ id 54
+ label "C"
+ ]
+ node [
+ id 55
+ label "H"
+ ]
+ node [
+ id 56
+ label "H"
+ ]
+ node [
+ id 57
+ label "H"
+ ]
+ node [
+ id 58
+ label "H"
+ ]
+ node [
+ id 59
+ label "H"
+ ]
+ node [
+ id 60
+ label "H"
+ ]
+ node [
+ id 61
+ label "H"
+ ]
+ node [
+ id 62
+ label "H"
+ ]
+ edge [
+ source 0
+ target 11
+ label "1"
+ ]
+ edge [
+ source 0
+ target 4
+ label "1"
+ ]
+ edge [
+ source 1
+ target 10
+ label "1"
+ ]
+ edge [
+ source 1
+ target 20
+ label "1"
+ ]
+ edge [
+ source 2
+ target 10
+ label "2"
+ ]
+ edge [
+ source 3
+ target 11
+ label "2"
+ ]
+ edge [
+ source 4
+ target 5
+ label "1"
+ ]
+ edge [
+ source 4
+ target 6
+ label "2"
+ ]
+ edge [
+ source 5
+ target 10
+ label "1"
+ ]
+ edge [
+ source 5
+ target 7
+ label "2"
+ ]
+ edge [
+ source 6
+ target 8
+ label "1"
+ ]
+ edge [
+ source 6
+ target 13
+ label "1"
+ ]
+ edge [
+ source 7
+ target 9
+ label "1"
+ ]
+ edge [
+ source 7
+ target 14
+ label "1"
+ ]
+ edge [
+ source 8
+ target 9
+ label "2"
+ ]
+ edge [
+ source 8
+ target 15
+ label "1"
+ ]
+ edge [
+ source 9
+ target 16
+ label "1"
+ ]
+ edge [
+ source 11
+ target 12
+ label "1"
+ ]
+ edge [
+ source 12
+ target 19
+ label "1"
+ ]
+ edge [
+ source 12
+ target 17
+ label "1"
+ ]
+ edge [
+ source 12
+ target 18
+ label "1"
+ ]
+ edge [
+ source 21
+ target 32
+ label "1"
+ ]
+ edge [
+ source 21
+ target 25
+ label "1"
+ ]
+ edge [
+ source 22
+ target 41
+ label "1"
+ ]
+ edge [
+ source 22
+ target 31
+ label "1"
+ ]
+ edge [
+ source 23
+ target 31
+ label "2"
+ ]
+ edge [
+ source 24
+ target 32
+ label "2"
+ ]
+ edge [
+ source 25
+ target 26
+ label "1"
+ ]
+ edge [
+ source 25
+ target 27
+ label "2"
+ ]
+ edge [
+ source 26
+ target 28
+ label "2"
+ ]
+ edge [
+ source 26
+ target 31
+ label "1"
+ ]
+ edge [
+ source 27
+ target 34
+ label "1"
+ ]
+ edge [
+ source 27
+ target 29
+ label "1"
+ ]
+ edge [
+ source 28
+ target 35
+ label "1"
+ ]
+ edge [
+ source 28
+ target 30
+ label "1"
+ ]
+ edge [
+ source 29
+ target 36
+ label "1"
+ ]
+ edge [
+ source 29
+ target 30
+ label "2"
+ ]
+ edge [
+ source 30
+ target 37
+ label "1"
+ ]
+ edge [
+ source 32
+ target 33
+ label "1"
+ ]
+ edge [
+ source 33
+ target 40
+ label "1"
+ ]
+ edge [
+ source 33
+ target 38
+ label "1"
+ ]
+ edge [
+ source 33
+ target 39
+ label "1"
+ ]
+ edge [
+ source 42
+ target 53
+ label "1"
+ ]
+ edge [
+ source 42
+ target 46
+ label "1"
+ ]
+ edge [
+ source 43
+ target 52
+ label "1"
+ ]
+ edge [
+ source 43
+ target 62
+ label "1"
+ ]
+ edge [
+ source 44
+ target 52
+ label "2"
+ ]
+ edge [
+ source 45
+ target 53
+ label "2"
+ ]
+ edge [
+ source 46
+ target 48
+ label "2"
+ ]
+ edge [
+ source 46
+ target 47
+ label "1"
+ ]
+ edge [
+ source 47
+ target 49
+ label "2"
+ ]
+ edge [
+ source 47
+ target 52
+ label "1"
+ ]
+ edge [
+ source 48
+ target 50
+ label "1"
+ ]
+ edge [
+ source 48
+ target 55
+ label "1"
+ ]
+ edge [
+ source 49
+ target 56
+ label "1"
+ ]
+ edge [
+ source 49
+ target 51
+ label "1"
+ ]
+ edge [
+ source 50
+ target 57
+ label "1"
+ ]
+ edge [
+ source 50
+ target 51
+ label "2"
+ ]
+ edge [
+ source 51
+ target 58
+ label "1"
+ ]
+ edge [
+ source 53
+ target 54
+ label "1"
+ ]
+ edge [
+ source 54
+ target 59
+ label "1"
+ ]
+ edge [
+ source 54
+ target 60
+ label "1"
+ ]
+ edge [
+ source 54
+ target 61
+ label "1"
+ ]
+]
diff -r 000000000000 -r fe01a054a6b2 test.gspan
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.gspan Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,7 @@
+t # id 1
+v 0 A
+v 1 B
+v 2 C
+e 0 1 Kante AB
+e 1 2 Kante BC
+e 2 0 Kante CA
diff -r 000000000000 -r fe01a054a6b2 test.json
diff -r 000000000000 -r fe01a054a6b2 test.xgmml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.xgmml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 test.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.xml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff -r 000000000000 -r fe01a054a6b2 test.yaml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test.yaml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,28 @@
+!!python/object:networkx.classes.digraph.DiGraph
+adj: &id001
+ !!python/unicode '1':
+ !!python/unicode '2': &id003 {!!python/unicode 'id': !!python/unicode '3', !!python/unicode 'label': !!python/unicode 'Kante
+ AB', !!python/unicode 'weiteresAttribut': !!python/unicode '44'}
+ !!python/unicode '2':
+ !!python/unicode '3': &id004 {!!python/unicode 'id': !!python/unicode '3', !!python/unicode 'label': !!python/unicode 'Kante
+ BC', !!python/unicode 'weiteresAttribut': !!python/unicode '44'}
+ !!python/unicode '3':
+ !!python/unicode '1': &id002 {!!python/unicode 'id': !!python/unicode '3', !!python/unicode 'label': !!python/unicode 'Kante
+ CA', !!python/unicode 'weiteresAttribut': !!python/unicode '44'}
+edge: *id001
+graph: {}
+node:
+ !!python/unicode '1': {!!python/unicode 'id': !!python/unicode '1', label: !!python/unicode 'A',
+ !!python/unicode 'weiteresAttribut': !!python/unicode '42'}
+ !!python/unicode '2': {!!python/unicode 'id': !!python/unicode '2', label: !!python/unicode 'B',
+ !!python/unicode 'weiteresAttribut': !!python/unicode '43'}
+ !!python/unicode '3': {!!python/unicode 'id': !!python/unicode '3', label: !!python/unicode 'C',
+ !!python/unicode 'weiteresAttribut': !!python/unicode '44'}
+pred:
+ !!python/unicode '1':
+ !!python/unicode '3': *id002
+ !!python/unicode '2':
+ !!python/unicode '1': *id003
+ !!python/unicode '3':
+ !!python/unicode '2': *id004
+succ: *id001
diff -r 000000000000 -r fe01a054a6b2 tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,5 @@
+
+
+ $REPOSITORY_INSTALL_DIR
+
+
diff -r 000000000000 -r fe01a054a6b2 xgmml_networkx.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xgmml_networkx.py Fri Feb 28 08:57:44 2014 -0500
@@ -0,0 +1,124 @@
+__author__ = "Yasunobu OKAMURA"
+__copyright__ = "Copyright (c) 2012 Y.Okamura"
+__license__ = "GPL v3+"
+
+import xml.parsers.expat
+import networkx as nx
+
+class XGMMLParserHelper(object):
+ """
+ """
+
+ def __init__(self, graph=nx.DiGraph()):
+ """
+
+ Arguments:
+ - `graph`: Network X graph object
+ """
+ self._graph = graph
+ self._parser = xml.parsers.expat.ParserCreate()
+ self._parser.StartElementHandler = self._start_element
+ self._parser.EndElementHandler = self._end_element
+ self._tagstack = list()
+
+ self._current_attr = dict()
+ self._current_obj = dict()
+
+ def _start_element(self, tag, attr):
+ """
+
+ Arguments:
+ - `self`:
+ - `tag`:
+ - `attr`:
+ """
+
+ self._tagstack.append(tag)
+
+ if tag == 'node' or tag == 'edge':
+ self._current_obj = dict(attr)
+
+ if tag == 'att' and (self._tagstack[-2] == 'node' or self._tagstack[-2] == 'edge'):
+ if attr['type'] == 'string':
+ self._current_attr[attr['name']] = attr['value']
+ elif attr['type'] == 'real':
+ self._current_attr[attr['name']] = float(attr['value'])
+ elif attr['type'] == 'integer':
+ self._current_attr[attr['name']] = int(attr['value'])
+ elif attr['type'] == 'boolean':
+ self._current_attr[attr['name']] = bool(attr['value'])
+ else:
+ raise NotImplementedError(attr['type'])
+
+ def _end_element(self, tag):
+ """
+
+ Arguments:
+ - `self`:
+ - `tag`:
+ """
+
+ if tag == 'node':
+ self._graph.add_node(self._current_obj['id'], label=self._current_obj['label'], **self._current_attr)
+ #print 'add node', self._current_obj
+ elif tag == 'edge':
+ self._graph.add_edge(self._current_obj['source'], self._current_obj['target'], **self._current_attr)
+
+ self._tagstack.pop()
+
+ def parseFile(self, file):
+ """
+
+ Arguments:
+ - `self`:
+ - `file`:
+ """
+
+ self._parser.ParseFile(file)
+
+ def graph(self):
+ """
+
+ Arguments:
+ - `self`:
+ """
+
+ return self._graph
+
+def XGMMLWriter(file, graph, graph_name):
+ """
+
+ Arguments:
+ - `graph`:
+ """
+
+ print >>file, """
+
+
+
+
+""".format(graph_name)
+
+
+ for onenode in graph.nodes(data=True):
+ id = onenode[0]
+ attr = dict(onenode[1])
+
+ if 'label' in attr:
+ label = attr['label']
+ del attr['label']
+ else:
+ label = id
+
+ print >>file, ''.format(id=id, label=label)
+ for k, v in attr.iteritems():
+ print >>file, ''.format(k, v)
+ print >>file, ''
+
+ for oneedge in graph.edges(data=True):
+ print >>file, ''.format(oneedge[0], oneedge[1])
+ for k, v in oneedge[2].iteritems():
+ print >>file, ''.format(k, v)
+ print >>file, ''
+ print >>file, ''
+
diff -r 000000000000 -r fe01a054a6b2 xgmml_networkx.pyc
Binary file xgmml_networkx.pyc has changed