Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tiago Peixoto
graph-tool
Commits
4ca52e7c
Commit
4ca52e7c
authored
Apr 29, 2014
by
Tiago Peixoto
Browse files
Fix copying of graphs with internal unwritable properties
parent
4d0809f2
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/graph_tool/__init__.py
View file @
4ca52e7c
...
...
@@ -1107,10 +1107,14 @@ class Graph(object):
eprops
=
[]
ef_pos
=
vf_pos
=
None
for
k
,
m
in
gv
.
vertex_properties
.
items
():
if
not
m
.
is_writable
():
m
=
m
.
copy
(
"int32_t"
)
if
not
vprune
and
m
is
vfilt
:
vf_pos
=
len
(
vprops
)
vprops
.
append
([
_prop
(
"v"
,
gv
,
m
),
libcore
.
any
()])
for
k
,
m
in
gv
.
edge_properties
.
items
():
if
not
m
.
is_writable
():
m
=
m
.
copy
(
"int32_t"
)
if
not
eprune
and
m
is
efilt
:
ef_pos
=
len
(
eprops
)
eprops
.
append
([
_prop
(
"e"
,
gv
,
m
),
libcore
.
any
()])
...
...
@@ -1133,21 +1137,21 @@ class Graph(object):
_prop
(
"v"
,
gv
,
vorder
))
# Put the copied properties in the internal dictionary
for
i
,
(
k
,
m
)
in
enumerate
(
g
.
vertex_properties
.
items
()):
pmap
=
new_vertex_property
(
m
.
value_type
(),
for
i
,
(
k
,
m
)
in
enumerate
(
g
v
.
vertex_properties
.
items
()):
pmap
=
new_vertex_property
(
m
.
value_type
()
if
m
.
is_writable
()
else
"int32_t"
,
self
.
__graph
.
GetVertexIndex
(),
vprops
[
i
][
1
])
self
.
vertex_properties
[
k
]
=
PropertyMap
(
pmap
,
self
,
"v"
)
for
i
,
(
k
,
m
)
in
enumerate
(
g
.
edge_properties
.
items
()):
pmap
=
new_edge_property
(
m
.
value_type
(),
for
i
,
(
k
,
m
)
in
enumerate
(
g
v
.
edge_properties
.
items
()):
pmap
=
new_edge_property
(
m
.
value_type
()
if
m
.
is_writable
()
else
"int32_t"
,
self
.
__graph
.
GetEdgeIndex
(),
eprops
[
i
][
1
])
self
.
edge_properties
[
k
]
=
PropertyMap
(
pmap
,
self
,
"e"
)
for
k
,
v
in
g
.
graph_properties
.
items
():
for
k
,
v
in
g
v
.
graph_properties
.
items
():
new_p
=
self
.
new_graph_property
(
v
.
value_type
())
new_p
[
self
]
=
v
[
g
]
new_p
[
self
]
=
v
[
g
v
]
self
.
graph_properties
[
k
]
=
new_p
if
vf_pos
is
not
None
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment