# Copyright (C) 2013 INRIA
#
# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation;
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
#
# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
+from __future__ import print_function
+
from nepi.util.netgraph import NetGraph, TopologyType
from nepi.util.timefuncs import stformat, tsformat
try:
xml = doc.toprettyxml(indent=" ", encoding="UTF-8")
except:
- print >>sys.stderr, "Oops: generating XML from %s" % (data,)
+ print("Oops: generating XML from %s" % (data,), file=sys.stderr)
raise
return xml
for nid in ec.netgraph.nodes():
ngnnode = doc.createElement("node")
ngnnode.setAttribute("nid", xmlencode(nid))
+ ngnnode.setAttribute("nid-type", from_type(nid))
ngnsnode.appendChild(ngnnode)
# Mark ources and targets
for nid1, nid2 in ec.netgraph.edges():
ngenode = doc.createElement("edge")
ngenode.setAttribute("nid1", xmlencode(nid1))
+ ngenode.setAttribute("nid1-type", from_type(nid1))
ngenode.setAttribute("nid2", xmlencode(nid2))
+ ngenode.setAttribute("nid2-type", from_type(nid2))
ngesnode.appendChild(ngenode)
# Edge annotations
os.environ["NEPI_NTHREADS"] = nthreads
# Deserialize netgraph
+ topology = None
+ topo_type = None
+
netgraph = self._netgraph_from_xml(doc, ecnode)
- topo_type = netgraph.topo_type if netgraph else None
+
+ if netgraph:
+ topo_type = netgraph.topo_type
+ topology = netgraph.topology
# Instantiate EC
ec = ExperimentController(exp_id = exp_id, local_dir = local_dir,
- topology = netgraph.topology, topo_type = topo_type)
+ topology = topology, topo_type = topo_type)
connections = set()
ngnsnode = ngnsnode_list[0].getElementsByTagName("node")
for ngnnode in ngnsnode:
nid = xmldecode(ngnnode.getAttribute("nid"))
+ tipe = xmldecode(ngnnode.getAttribute("nid-type"))
+ nid = to_type(tipe, nid)
netgraph.add_node(nid)
if ngnnode.hasAttribute("source"):
ngesnode = ngesnode_list[0].getElementsByTagName("edge")
for ngenode in ngesnode:
nid1 = xmldecode(ngenode.getAttribute("nid1"))
+ tipe1 = xmldecode(ngenode.getAttribute("nid1-type"))
+ nid1 = to_type(tipe1, nid1)
+
nid2 = xmldecode(ngenode.getAttribute("nid2"))
+ tipe2 = xmldecode(ngenode.getAttribute("nid2-type"))
+ nid2 = to_type(tipe2, nid2)
+
netgraph.add_edge(nid1, nid2)
annosnode_list = ngenode.getElementsByTagName("edge-annotations")