Am 15.06.20 um 16:45 schrieb James Ruffle:
> Tiago,
> 
> I’m sorry that you feel that my code to use the graph_union with 
> intersection, following which to remove parallel edges, then call 
> Graph.copy_property on the union graph, did not follow your instructions 
> which, as far as I can read, specifically asked I use all of those and in 
> that order.

I didn't "feel" it, you had not called copy_property in your example,
you had just alluded that it "didn't work".

>> # To take the union of all edges between two graphs, you can use the 
>> graph_union(g1, g2) function, while passing the 'intersection’ parameter 
>> with the Graph.vertex_index property map of g2 (to avoid the nodes being 
>> duplicated). This will create parallel edges for those that appear in both 
>> graphs, which you can remove with remove_parallel_edges(). You can then copy 
>> any edge property map from either g1 or g2 by calling Graph.copy_property() 
>> on the union graph.
> 
> 
> A complete and minimal example with just vertex labels is the following:

It had a syntax error, and some missing parts, but I managed to get it
working.

> #run copy property on the union graph, where src is the source property, 
> namely the original label file
> ug.copy_property(src=g.vp.label)
> ####This is the error I want to fix in this example, and transfer the label 
> property from the original lesmis graph object to the union graph

The documentation of "copy_property" says: "The optional parameter ``g``
specifies the source graph to copy properties from (defaults to self)."
Since this not owned by the same graph you need to do:

  ug.copy_property(src=g.vp.label, g=g)

(I will actually change this, so that the default becomes the graph that
owns the property, which is less error prone).

-- 
Tiago de Paula Peixoto <ti...@skewed.de>
_______________________________________________
graph-tool mailing list
graph-tool@skewed.de
https://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to