Unverified Commit 444becf0 authored by Minjie Wang's avatar Minjie Wang Committed by GitHub
Browse files

[Misc] Move many deprecated codes to the deprecate folder (#1893)

* some file movements

* move some codes to deprecated

* more deprecation

* lint

* remove useless test
parent 68a978d4
...@@ -11,7 +11,7 @@ import numpy as np ...@@ -11,7 +11,7 @@ import numpy as np
import os import os
from ... import ndarray as nd from ... import ndarray as nd
from ... import kernel as K from ..._deprecate import kernel as K
from ...function.base import TargetCode from ...function.base import TargetCode
if not os.getenv("USE_TFDLPACK", False): if not os.getenv("USE_TFDLPACK", False):
......
...@@ -11,7 +11,7 @@ from collections.abc import MutableMapping ...@@ -11,7 +11,7 @@ from collections.abc import MutableMapping
from ..base import ALL, is_all, DGLError, dgl_warning from ..base import ALL, is_all, DGLError, dgl_warning
from .. import backend as F from .. import backend as F
from ..graph import DGLGraph from .._deprecate.graph import DGLGraph
from .. import utils from .. import utils
from ..graph_index import GraphIndex, create_graph_index, from_shared_mem_graph_index from ..graph_index import GraphIndex, create_graph_index, from_shared_mem_graph_index
from .._ffi.ndarray import empty_shared_mem from .._ffi.ndarray import empty_shared_mem
......
...@@ -10,9 +10,9 @@ from ..._ffi.function import _init_api ...@@ -10,9 +10,9 @@ from ..._ffi.function import _init_api
from ..._ffi.object import register_object, ObjectBase from ..._ffi.object import register_object, ObjectBase
from ..._ffi.ndarray import empty from ..._ffi.ndarray import empty
from ... import utils from ... import utils
from ...nodeflow import NodeFlow from ..._deprecate.nodeflow import NodeFlow
from ... import backend as F from ... import backend as F
from ...graph import DGLGraph as DGLGraphStale from ..._deprecate.graph import DGLGraph as DGLGraphStale
from ...base import NID, EID, dgl_warning from ...base import NID, EID, dgl_warning
try: try:
......
...@@ -5,7 +5,7 @@ import datetime ...@@ -5,7 +5,7 @@ import datetime
from .utils import get_download_dir, download, extract_archive from .utils import get_download_dir, download, extract_archive
from ..utils import retry_method_with_fix from ..utils import retry_method_with_fix
from ..graph import DGLGraph from .. import convert
class BitcoinOTC(object): class BitcoinOTC(object):
...@@ -49,12 +49,10 @@ class BitcoinOTC(object): ...@@ -49,12 +49,10 @@ class BitcoinOTC(object):
time_index = np.around( time_index = np.around(
(data[:, 3] - data[:, 3].min())/delta).astype(np.int64) (data[:, 3] - data[:, 3].min())/delta).astype(np.int64)
for i in range(time_index.max()): for i in range(time_index.max()):
g = DGLGraph()
g.add_nodes(num_nodes)
row_mask = time_index <= i row_mask = time_index <= i
edges = data[row_mask][:, 0:2] edges = data[row_mask][:, 0:2]
rate = data[row_mask][:, 2] rate = data[row_mask][:, 2]
g.add_edges(edges[:, 0], edges[:, 1]) g = convert.graph((edges[:, 0], edges[:, 1]))
g.edata['h'] = rate.reshape(-1, 1) g.edata['h'] = rate.reshape(-1, 1)
self.graphs.append(g) self.graphs.append(g)
......
...@@ -5,7 +5,7 @@ import datetime ...@@ -5,7 +5,7 @@ import datetime
from .utils import get_download_dir, download, extract_archive, loadtxt from .utils import get_download_dir, download, extract_archive, loadtxt
from ..utils import retry_method_with_fix from ..utils import retry_method_with_fix
from ..graph import DGLGraph from .. import convert
class GDELT(object): class GDELT(object):
...@@ -78,12 +78,10 @@ class GDELT(object): ...@@ -78,12 +78,10 @@ class GDELT(object):
if idx >= len(self) or idx < 0: if idx >= len(self) or idx < 0:
raise IndexError("Index out of range") raise IndexError("Index out of range")
i = idx + self.start_time i = idx + self.start_time
g = DGLGraph()
g.add_nodes(self.num_nodes)
row_mask = self.time_index <= i row_mask = self.time_index <= i
edges = self.data[row_mask][:, [0, 2]] edges = self.data[row_mask][:, [0, 2]]
rate = self.data[row_mask][:, 1] rate = self.data[row_mask][:, 1]
g.add_edges(edges[:, 0], edges[:, 1]) g = convert.graph((edges[:, 0], edges[:, 1]))
g.edata['rel_type'] = rate.reshape(-1, 1) g.edata['rel_type'] = rate.reshape(-1, 1)
return g return g
......
...@@ -3,7 +3,7 @@ import numpy as np ...@@ -3,7 +3,7 @@ import numpy as np
import os import os
from .utils import download, extract_archive, get_download_dir, _get_dgl_url from .utils import download, extract_archive, get_download_dir, _get_dgl_url
from ..utils import retry_method_with_fix from ..utils import retry_method_with_fix
from ..graph import DGLGraph from .. import convert
__all__=["AmazonCoBuy", "Coauthor", 'CoraFull'] __all__=["AmazonCoBuy", "Coauthor", 'CoraFull']
...@@ -59,10 +59,9 @@ class GNNBenchmarkDataset(object): ...@@ -59,10 +59,9 @@ class GNNBenchmarkDataset(object):
labels = loader['labels'] labels = loader['labels']
else: else:
labels = None labels = None
g = DGLGraph() row = np.hstack([adj_matrix.row, adj_matrix.col])
g.add_nodes(num_nodes) col = np.hstack([adj_matrix.col, adj_matrix.row])
g.add_edges(adj_matrix.row, adj_matrix.col) g = convert.graph((row, col))
g.add_edges(adj_matrix.col, adj_matrix.row)
g.ndata['feat'] = attr_matrix g.ndata['feat'] = attr_matrix
g.ndata['label'] = labels g.ndata['label'] = labels
return g return g
......
"""For Graph Serialization""" """For Graph Serialization"""
from __future__ import absolute_import from __future__ import absolute_import
import os import os
from ..graph import DGLGraph from .._deprecate.graph import DGLGraph
from ..heterograph import DGLHeteroGraph from ..heterograph import DGLHeteroGraph
from .._ffi.object import ObjectBase, register_object from .._ffi.object import ObjectBase, register_object
from .._ffi.function import _init_api from .._ffi.function import _init_api
......
...@@ -6,7 +6,7 @@ import warnings ...@@ -6,7 +6,7 @@ import warnings
from .utils import get_download_dir, download, extract_archive, loadtxt from .utils import get_download_dir, download, extract_archive, loadtxt
from ..utils import retry_method_with_fix from ..utils import retry_method_with_fix
from ..graph import DGLGraph from .. import convert
class ICEWS18(object): class ICEWS18(object):
...@@ -75,12 +75,10 @@ class ICEWS18(object): ...@@ -75,12 +75,10 @@ class ICEWS18(object):
start_time = time_index[time_index != -1].min() start_time = time_index[time_index != -1].min()
end_time = time_index.max() end_time = time_index.max()
for i in range(start_time, end_time+1): for i in range(start_time, end_time+1):
g = DGLGraph()
g.add_nodes(num_nodes)
row_mask = time_index <= i row_mask = time_index <= i
edges = data[row_mask][:, [0, 2]] edges = data[row_mask][:, [0, 2]]
rate = data[row_mask][:, 1] rate = data[row_mask][:, 1]
g.add_edges(edges[:, 0], edges[:, 1]) g = convert.graph((edges[:, 0], edges[:, 1]))
g.edata['rel_type'] = rate.reshape(-1, 1) g.edata['rel_type'] = rate.reshape(-1, 1)
self.graphs.append(g) self.graphs.append(g)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
""" """
import numpy as np import numpy as np
import networkx as nx import networkx as nx
from ..graph import DGLGraph from .. import convert
class KarateClub(object): class KarateClub(object):
...@@ -19,7 +19,7 @@ class KarateClub(object): ...@@ -19,7 +19,7 @@ class KarateClub(object):
kG = nx.karate_club_graph() kG = nx.karate_club_graph()
self.label = np.asarray( self.label = np.asarray(
[kG.nodes[i]['club'] != 'Mr. Hi' for i in kG.nodes]).astype(np.int64) [kG.nodes[i]['club'] != 'Mr. Hi' for i in kG.nodes]).astype(np.int64)
g = DGLGraph(kG) g = convert.graph(kG)
g.ndata['label'] = self.label g.ndata['label'] = self.label
self.data = [g] self.data = [g]
......
...@@ -4,7 +4,7 @@ import os ...@@ -4,7 +4,7 @@ import os
from .utils import get_download_dir, download from .utils import get_download_dir, download
from ..utils import retry_method_with_fix from ..utils import retry_method_with_fix
from ..graph import DGLGraph from .. import convert
class QM7b(object): class QM7b(object):
""" """
...@@ -36,11 +36,8 @@ class QM7b(object): ...@@ -36,11 +36,8 @@ class QM7b(object):
num_graphs = labels.shape[0] num_graphs = labels.shape[0]
self.label = labels self.label = labels
for i in range(num_graphs): for i in range(num_graphs):
g = DGLGraph()
edge_list = feats[i].nonzero() edge_list = feats[i].nonzero()
num_nodes = np.max(edge_list) + 1 g = convert.graph(edge_list)
g.add_nodes(num_nodes)
g.add_edges(edge_list[0], edge_list[1])
g.edata['h'] = feats[i][edge_list[0], edge_list[1]].reshape(-1, 1) g.edata['h'] = feats[i][edge_list[0], edge_list[1]].reshape(-1, 1)
self.graphs.append(g) self.graphs.append(g)
......
...@@ -5,8 +5,8 @@ import sys ...@@ -5,8 +5,8 @@ import sys
from itertools import product from itertools import product
from .base import BuiltinFunction, TargetCode from .base import BuiltinFunction, TargetCode
from ..runtime import ir from .._deprecate.runtime import ir
from ..runtime.ir import var from .._deprecate.runtime.ir import var
__all__ = ["src_mul_edge", "copy_src", "copy_edge", "copy_u", "copy_e"] __all__ = ["src_mul_edge", "copy_src", "copy_edge", "copy_u", "copy_e"]
......
...@@ -5,8 +5,8 @@ from __future__ import absolute_import ...@@ -5,8 +5,8 @@ from __future__ import absolute_import
import sys import sys
from .base import BuiltinFunction, TargetCode from .base import BuiltinFunction, TargetCode
from ..runtime import ir from .._deprecate.runtime import ir
from ..runtime.ir import var from .._deprecate.runtime.ir import var
class ReduceFunction(BuiltinFunction): class ReduceFunction(BuiltinFunction):
......
...@@ -12,7 +12,7 @@ from . import graph_index ...@@ -12,7 +12,7 @@ from . import graph_index
from . import heterograph_index from . import heterograph_index
from . import utils from . import utils
from . import backend as F from . import backend as F
from .runtime import ir, scheduler, Runtime, GraphAdapter from ._deprecate.runtime import ir, scheduler, Runtime, GraphAdapter
from .frame import Frame, FrameRef, frame_like from .frame import Frame, FrameRef, frame_like
from .view import HeteroNodeView, HeteroNodeDataView, HeteroEdgeView, HeteroEdgeDataView from .view import HeteroNodeView, HeteroNodeDataView, HeteroEdgeView, HeteroEdgeDataView
from .base import ALL, SLICE_FULL, NTYPE, NID, ETYPE, EID, is_all, DGLError, dgl_warning from .base import ALL, SLICE_FULL, NTYPE, NID, ETYPE, EID, is_all, DGLError, dgl_warning
...@@ -4344,7 +4344,7 @@ class DGLHeteroGraph(object): ...@@ -4344,7 +4344,7 @@ class DGLHeteroGraph(object):
return F.nonzero_1d(mask) return F.nonzero_1d(mask)
else: else:
v = utils.prepare_tensor(self, nodes, 'nodes') v = utils.prepare_tensor(self, nodes, 'nodes')
return F.boolean_mask(v, mask[v]) return F.boolean_mask(v, F.gather_row(mask, v))
def filter_edges(self, predicate, edges=ALL, etype=None): def filter_edges(self, predicate, edges=ALL, etype=None):
"""Return a tensor of edge IDs with the given edge type that satisfy """Return a tensor of edge IDs with the given edge type that satisfy
...@@ -4391,7 +4391,7 @@ class DGLHeteroGraph(object): ...@@ -4391,7 +4391,7 @@ class DGLHeteroGraph(object):
e = self.edge_ids(edges[0], edges[1], etype=etype) e = self.edge_ids(edges[0], edges[1], etype=etype)
else: else:
e = utils.prepare_tensor(self, edges, 'edges') e = utils.prepare_tensor(self, edges, 'edges')
return F.boolean_mask(e, mask[e]) return F.boolean_mask(e, F.gather_row(mask, e))
def readonly(self, readonly_state=True): def readonly(self, readonly_state=True):
"""Deprecated: DGLGraph will always be mutable.""" """Deprecated: DGLGraph will always be mutable."""
......
...@@ -7,7 +7,7 @@ from collections import namedtuple ...@@ -7,7 +7,7 @@ from collections import namedtuple
import dgl.backend as F import dgl.backend as F
from ._ffi.function import _init_api from ._ffi.function import _init_api
from .nodeflow import NodeFlow from ._deprecate.nodeflow import NodeFlow
from . import utils from . import utils
_init_api("dgl.network") _init_api("dgl.network")
......
"""Segment aggregation operators implemented using DGL graph.""" """Segment aggregation operators implemented using DGL graph."""
from .base import DGLError from ..base import DGLError
from . import backend as F from .. import backend as F
from . import convert from .. import convert
from . import function as fn from .. import function as fn
def segment_reduce(seglen, value, reducer='sum'): def segment_reduce(seglen, value, reducer='sum'):
"""Segment reduction operator. """Segment reduction operator.
......
...@@ -3,7 +3,7 @@ from __future__ import absolute_import ...@@ -3,7 +3,7 @@ from __future__ import absolute_import
from .base import DGLError from .base import DGLError
from . import backend as F from . import backend as F
from . import segment from .ops import segment
__all__ = ['readout_nodes', 'readout_edges', __all__ = ['readout_nodes', 'readout_edges',
'sum_nodes', 'sum_edges', 'mean_nodes', 'mean_edges', 'sum_nodes', 'sum_edges', 'mean_nodes', 'mean_edges',
......
...@@ -18,7 +18,7 @@ from .partition import partition_graph_with_halo as hetero_partition_graph_with_ ...@@ -18,7 +18,7 @@ from .partition import partition_graph_with_halo as hetero_partition_graph_with_
from .partition import metis_partition as hetero_metis_partition from .partition import metis_partition as hetero_metis_partition
# TO BE DEPRECATED # TO BE DEPRECATED
from .graph import DGLGraph as DGLGraphStale from ._deprecate.graph import DGLGraph as DGLGraphStale
from .graph_index import _get_halo_subgraph_inner_node from .graph_index import _get_halo_subgraph_inner_node
__all__ = [ __all__ = [
......
...@@ -4,250 +4,12 @@ from __future__ import absolute_import ...@@ -4,250 +4,12 @@ from __future__ import absolute_import
from collections import namedtuple from collections import namedtuple
from collections.abc import MutableMapping from collections.abc import MutableMapping
import numpy as np from .base import ALL, DGLError
from .base import ALL, is_all, DGLError
from . import backend as F from . import backend as F
NodeSpace = namedtuple('NodeSpace', ['data']) NodeSpace = namedtuple('NodeSpace', ['data'])
EdgeSpace = namedtuple('EdgeSpace', ['data']) EdgeSpace = namedtuple('EdgeSpace', ['data'])
class NodeView(object):
"""A NodeView class to act as G.nodes for a DGLGraph.
Can be used to get a list of current nodes and get and set node data.
See Also
--------
dgl.DGLGraph.nodes
"""
__slots__ = ['_graph']
def __init__(self, graph):
self._graph = graph
def __len__(self):
return self._graph.number_of_nodes()
def __getitem__(self, nodes):
if isinstance(nodes, slice):
# slice
if not (nodes.start is None and nodes.stop is None
and nodes.step is None):
raise DGLError('Currently only full slice ":" is supported')
return NodeSpace(data=NodeDataView(self._graph, ALL))
else:
return NodeSpace(data=NodeDataView(self._graph, nodes))
def __call__(self):
"""Return the nodes."""
return F.copy_to(F.arange(0, len(self)), F.cpu())
class NodeDataView(MutableMapping):
"""The data view class when G.nodes[...].data is called.
See Also
--------
dgl.DGLGraph.nodes
"""
__slots__ = ['_graph', '_nodes']
def __init__(self, graph, nodes):
self._graph = graph
self._nodes = nodes
def __getitem__(self, key):
return self._graph.get_n_repr(self._nodes)[key]
def __setitem__(self, key, val):
if isinstance(val, np.ndarray):
val = F.zerocopy_from_numpy(val)
self._graph.set_n_repr({key : val}, self._nodes)
def __delitem__(self, key):
if not is_all(self._nodes):
raise DGLError('Delete feature data is not supported on only a subset'
' of nodes. Please use `del G.ndata[key]` instead.')
self._graph.pop_n_repr(key)
def __len__(self):
return len(self._graph._node_frame)
def __iter__(self):
return iter(self._graph._node_frame)
def __repr__(self):
data = self._graph.get_n_repr(self._nodes)
return repr({key : data[key] for key in self._graph._node_frame})
class EdgeView(object):
"""A EdgeView class to act as G.edges for a DGLGraph.
Can be used to get a list of current edges and get and set edge data.
See Also
--------
dgl.DGLGraph.edges
"""
__slots__ = ['_graph']
def __init__(self, graph):
self._graph = graph
def __len__(self):
return self._graph.number_of_edges()
def __getitem__(self, edges):
if isinstance(edges, slice):
# slice
if not (edges.start is None and edges.stop is None
and edges.step is None):
raise DGLError('Currently only full slice ":" is supported')
return EdgeSpace(data=EdgeDataView(self._graph, ALL))
else:
return EdgeSpace(data=EdgeDataView(self._graph, edges))
def __call__(self, *args, **kwargs):
"""Return all the edges."""
return self._graph.all_edges(*args, **kwargs)
class EdgeDataView(MutableMapping):
"""The data view class when G.edges[...].data is called.
See Also
--------
dgl.DGLGraph.edges
"""
__slots__ = ['_graph', '_edges']
def __init__(self, graph, edges):
self._graph = graph
self._edges = edges
def __getitem__(self, key):
return self._graph.get_e_repr(self._edges)[key]
def __setitem__(self, key, val):
if isinstance(val, np.ndarray):
val = F.zerocopy_from_numpy(val)
self._graph.set_e_repr({key : val}, self._edges)
def __delitem__(self, key):
if not is_all(self._edges):
raise DGLError('Delete feature data is not supported on only a subset'
' of nodes. Please use `del G.edata[key]` instead.')
self._graph.pop_e_repr(key)
def __len__(self):
return len(self._graph._edge_frame)
def __iter__(self):
return iter(self._graph._edge_frame)
def __repr__(self):
data = self._graph.get_e_repr(self._edges)
return repr({key : data[key] for key in self._graph._edge_frame})
class LayerView(object):
"""A LayerView class to act as nflow.layers for a NodeFlow.
Can be used to get a list of current nodes and get and set node data.
"""
__slots__ = ['_graph']
def __init__(self, graph):
self._graph = graph
def __len__(self):
return self._graph.num_layers()
def __getitem__(self, layer):
if not isinstance(layer, int):
raise DGLError('Currently we only support the view of one layer')
return NodeSpace(data=LayerDataView(self._graph, layer))
def __call__(self):
"""Return the nodes."""
return F.arange(0, len(self))
class LayerDataView(MutableMapping):
"""The data view class when G.layers[...].data is called.
"""
__slots__ = ['_graph', '_layer']
def __init__(self, graph, layer):
self._graph = graph
self._layer = layer
def __getitem__(self, key):
return self._graph._node_frames[self._layer][key]
def __setitem__(self, key, val):
self._graph._node_frames[self._layer][key] = val
def __delitem__(self, key):
del self._graph._node_frames[self._layer][key]
def __len__(self):
return len(self._graph._node_frames[self._layer])
def __iter__(self):
return iter(self._graph._node_frames[self._layer])
def __repr__(self):
data = self._graph._node_frames[self._layer]
return repr({key : data[key] for key in data})
class BlockView(object):
"""A BlockView class to act as nflow.blocks for a NodeFlow.
Can be used to get a list of current edges and get and set edge data.
"""
__slots__ = ['_graph']
def __init__(self, graph):
self._graph = graph
def __len__(self):
return self._graph.num_blocks
def __getitem__(self, flow):
if not isinstance(flow, int):
raise DGLError('Currently we only support the view of one flow')
return EdgeSpace(data=BlockDataView(self._graph, flow))
def __call__(self, *args, **kwargs):
"""Return all the edges."""
return self._graph.all_edges(*args, **kwargs)
class BlockDataView(MutableMapping):
"""The data view class when G.blocks[...].data is called.
"""
__slots__ = ['_graph', '_flow']
def __init__(self, graph, flow):
self._graph = graph
self._flow = flow
def __getitem__(self, key):
return self._graph._edge_frames[self._flow][key]
def __setitem__(self, key, val):
self._graph._edge_frames[self._flow][key] = val
def __delitem__(self, key):
del self._graph._edge_frames[self._flow][key]
def __len__(self):
return len(self._graph._edge_frames[self._flow])
def __iter__(self):
return iter(self._graph._edge_frames[self._flow])
def __repr__(self):
data = self._graph._edge_frames[self._flow]
return repr({key : data[key] for key in data})
class HeteroNodeView(object): class HeteroNodeView(object):
"""A NodeView class to act as G.nodes for a DGLHeteroGraph.""" """A NodeView class to act as G.nodes for a DGLHeteroGraph."""
__slots__ = ['_graph', '_typeid_getter'] __slots__ = ['_graph', '_typeid_getter']
......
...@@ -77,7 +77,7 @@ std::vector<IdArray> GetNodeFlowSlice(const ImmutableGraph &graph, const std::st ...@@ -77,7 +77,7 @@ std::vector<IdArray> GetNodeFlowSlice(const ImmutableGraph &graph, const std::st
} }
} }
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetBlockAdj") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetBlockAdj")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
GraphRef g = args[0]; GraphRef g = args[0];
std::string format = args[1]; std::string format = args[1];
......
...@@ -596,31 +596,31 @@ NodeFlow SampleSubgraph(const ImmutableGraph *graph, ...@@ -596,31 +596,31 @@ NodeFlow SampleSubgraph(const ImmutableGraph *graph,
} // namespace } // namespace
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetGraph") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetGraph")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
NodeFlow nflow = args[0]; NodeFlow nflow = args[0];
*rv = nflow->graph; *rv = nflow->graph;
}); });
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetNodeMapping") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetNodeMapping")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
NodeFlow nflow = args[0]; NodeFlow nflow = args[0];
*rv = nflow->node_mapping; *rv = nflow->node_mapping;
}); });
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetEdgeMapping") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetEdgeMapping")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
NodeFlow nflow = args[0]; NodeFlow nflow = args[0];
*rv = nflow->edge_mapping; *rv = nflow->edge_mapping;
}); });
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetLayerOffsets") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetLayerOffsets")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
NodeFlow nflow = args[0]; NodeFlow nflow = args[0];
*rv = nflow->layer_offsets; *rv = nflow->layer_offsets;
}); });
DGL_REGISTER_GLOBAL("nodeflow._CAPI_NodeFlowGetBlockOffsets") DGL_REGISTER_GLOBAL("_deprecate.nodeflow._CAPI_NodeFlowGetBlockOffsets")
.set_body([] (DGLArgs args, DGLRetValue* rv) { .set_body([] (DGLArgs args, DGLRetValue* rv) {
NodeFlow nflow = args[0]; NodeFlow nflow = args[0];
*rv = nflow->flow_offsets; *rv = nflow->flow_offsets;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment