Here is a minimal code that shows this behaviour: #!/usr/bin/env python # -*- coding: utf-8 -*- import sys from numpy import array import graph_tool.all as gt print 'Graph_tool version : %s' % gt.__version__ def test1(): print ('\n' 'Performing test1:\n' '-----------------') graph1 = gt.lattice((2,2), periodic=False) pos = graph1.new_vertex_property('float') pos.a = array([0.0,0.1, 1.0, 1.1]) graph1.vertex_properties['pos'] = pos print ('\n' 'original pos: %s\n' 'reload graph property:\n' ' %s\n') % (str(pos.a), str(graph1.vertex_properties['pos'].a)) graph1.save("graph_tool_io_test1.xml") return graph1 def test2(): print ('\n' 'Performing test2:\n' '-----------------') graph2 = gt.load_graph("graph_tool_io_test1.xml") pos = array([0.0,0.1, 1.0, 1.1]) print ('\n' 'original pos: %s\n' 'reload graph property:\n' ' %s\n') % (str(pos), str(graph2.vertex_properties['pos'].a)) return graph2 def test3(): graph3 = gt.lattice((2,2), periodic=False) pos = graph3.new_vertex_property('float') pos.a = array([0.0,0.1, 1.0, 1.1]) graph3.load("graph_tool_io_test1.xml") print ('\n' 'original graph property: %s\n' 'reload graph property: %s\n') % (str(pos.a), str(graph3.vertex_properties['pos'].a)) return graph3 if __name__ == '__main__': switch = sys.argv[1] if switch == 'all': graph1 = test1() graph2 = test2() graph3 = test3() elif switch == 'test1': graph1 = test1() elif switch == 'test2': graph2 = test2() elif switch == 'test3': graph3 = test3() elif switch == 'import-only': print 'Imports only' else: print 'Usage: python test.py {all|test1|test2|test3}' ##### End Le 02/10/2012 14:37, Guillaume a écrit :
Hi list, hi Tiago,
First thank you for graph tool, that's a great package.
I run in a very strange problem when reloading a xml graph file with an 'internalized' PropertyMap. the minimum script does the following: * test1: create, internalize the PropertyMap pos1, save the graph in xml * test2: load the graph from xml, read the internalized PropertyMap pos2
Depending whether the two tests are ran in separate processes are in the same process, the two Propertymaps will not have the same values:
test1 and 2 in the same process: pos1 == pos2 test1 and test2 in different processes pos1 != pos2
-- View this message in context: http://main-discussion-list-for-the-graph-tool-project.982480.n3.nabble.com/... Sent from the Main discussion list for the graph-tool project mailing list archive at Nabble.com. _______________________________________________ graph-tool mailing list graph-tool@skewed.de http://lists.skewed.de/mailman/listinfo/graph-tool