Browse Source

fix bug "AttributeError("'Graph' object has no attribute 'node'",)" for new version of NetworkX.

v0.2.x
jajupmochi 5 years ago
parent
commit
b4747fc16b
6 changed files with 6 additions and 5 deletions
  1. +1
    -0
      gklearn/kernels/__init__.py
  2. +1
    -1
      gklearn/kernels/graph_kernel.py
  3. +1
    -1
      gklearn/kernels/treeletKernel.py
  4. +1
    -1
      gklearn/kernels/untilHPathKernel.py
  5. +1
    -1
      gklearn/preimage/median_preimage_generator.py
  6. +1
    -1
      gklearn/utils/utils.py

+ 1
- 0
gklearn/kernels/__init__.py View File

@@ -9,3 +9,4 @@ __date__ = "November 2018"


from gklearn.kernels.graph_kernel import GraphKernel from gklearn.kernels.graph_kernel import GraphKernel
from gklearn.kernels.structural_sp import StructuralSP from gklearn.kernels.structural_sp import StructuralSP
from gklearn.kernels.shortest_path import ShortestPath

+ 1
- 1
gklearn/kernels/graph_kernel.py View File

@@ -44,7 +44,7 @@ class GraphKernel(object):
elif len(graphs) == 2: elif len(graphs) == 2:
if self.is_graph(graphs[0]) and self.is_graph(graphs[1]): if self.is_graph(graphs[0]) and self.is_graph(graphs[1]):
kernel = self.__compute_single_kernel(graphs[0], graphs[1])
kernel = self.__compute_single_kernel(graphs[0].copy(), graphs[1].copy())
return kernel, self._run_time return kernel, self._run_time
elif self.is_graph(graphs[0]) and isinstance(graphs[1], list): elif self.is_graph(graphs[0]) and isinstance(graphs[1], list):
g1 = graphs[0].copy() g1 = graphs[0].copy()


+ 1
- 1
gklearn/kernels/treeletKernel.py View File

@@ -308,7 +308,7 @@ def get_canonkeys(G, node_label, edge_label, labeled, is_directed):
for i in range(1, 6): # for i in range(1, 6): for i in range(1, 6): # for i in range(1, 6):
treelet = [] treelet = []
for pattern in patterns[str(i)]: for pattern in patterns[str(i)]:
canonlist = list(chain.from_iterable((G.node[node][node_label], \
canonlist = list(chain.from_iterable((G.nodes[node][node_label], \
G[node][pattern[idx+1]][edge_label]) for idx, node in enumerate(pattern[:-1]))) G[node][pattern[idx+1]][edge_label]) for idx, node in enumerate(pattern[:-1])))
canonlist.append(G.node[pattern[-1]][node_label]) canonlist.append(G.node[pattern[-1]][node_label])
canonkey_t = canonlist if canonlist < canonlist[::-1] else canonlist[::-1] canonkey_t = canonlist if canonlist < canonlist[::-1] else canonlist[::-1]


+ 1
- 1
gklearn/kernels/untilHPathKernel.py View File

@@ -637,7 +637,7 @@ def paths2labelseqs(plist, G, ds_attrs, node_label, edge_label):
(G.node[node][node_label], (G.node[node][node_label],
G[node][path[idx + 1]][edge_label]) G[node][path[idx + 1]][edge_label])
for idx, node in enumerate(path[:-1]))) + for idx, node in enumerate(path[:-1]))) +
[G.node[path[-1]][node_label]]) for path in plist
[G.nodes[path[-1]][node_label]]) for path in plist
] ]
# path_strs = [] # path_strs = []
# for path in all_paths: # for path in all_paths:


+ 1
- 1
gklearn/preimage/median_preimage_generator.py View File

@@ -704,7 +704,7 @@ class MedianPreimageGenerator(PreimageGenerator):
# def __clean_graph(self, G, node_labels=[], edge_labels=[], node_attrs=[], edge_attrs=[]): # def __clean_graph(self, G, node_labels=[], edge_labels=[], node_attrs=[], edge_attrs=[]):
def __clean_graph(self, G):
def __clean_graph(self, G): # @todo: this may not be needed when datafile is updated.
""" """
Cleans node and edge labels and attributes of the given graph. Cleans node and edge labels and attributes of the given graph.
""" """


+ 1
- 1
gklearn/utils/utils.py View File

@@ -134,7 +134,7 @@ def untotterTransformation(G, node_label, edge_label):
gt.add_nodes_from(G.nodes(data=True)) gt.add_nodes_from(G.nodes(data=True))
for edge in G.edges(): for edge in G.edges():
gt.add_node(edge) gt.add_node(edge)
gt.node[edge].update({node_label: G.node[edge[1]][node_label]})
gt.nodes[edge].update({node_label: G.node[edge[1]][node_label]})
gt.add_edge(edge[0], edge) gt.add_edge(edge[0], edge)
gt.edges[edge[0], edge].update({ gt.edges[edge[0], edge].update({
edge_label: edge_label:


Loading…
Cancel
Save