easygraph package
Subpackages
- easygraph.classes package
- Submodules
- easygraph.classes.base module
- easygraph.classes.directed_graph module
DiGraph
DiGraph.add_edge()
DiGraph.add_edges()
DiGraph.add_edges_from()
DiGraph.add_edges_from_file()
DiGraph.add_node()
DiGraph.add_nodes()
DiGraph.add_nodes_from()
DiGraph.add_weighted_edge()
DiGraph.adj
DiGraph.adjlist_inner_dict_factory
DiGraph.adjlist_outer_dict_factory
DiGraph.all_neighbors()
DiGraph.copy()
DiGraph.cpp()
DiGraph.degree()
DiGraph.edge_attr_dict_factory
DiGraph.edges
DiGraph.ego_subgraph()
DiGraph.gnn_data_dict_factory
DiGraph.graph_attr_dict_factory
DiGraph.has_edge()
DiGraph.has_node()
DiGraph.in_degree()
DiGraph.index2node
DiGraph.is_directed()
DiGraph.is_multigraph()
DiGraph.name
DiGraph.nbunch_iter()
DiGraph.ndata
DiGraph.neighbors()
DiGraph.node_attr_dict_factory
DiGraph.node_dict_factory
DiGraph.node_index
DiGraph.node_index_dict
DiGraph.nodes
DiGraph.nodes_subgraph()
DiGraph.number_of_edges()
DiGraph.number_of_nodes()
DiGraph.out_degree()
DiGraph.pred
DiGraph.predecessors()
DiGraph.remove_edge()
DiGraph.remove_edges()
DiGraph.remove_edges_from()
DiGraph.remove_node()
DiGraph.remove_nodes()
DiGraph.size()
DiGraph.successors()
DiGraph.to_index_node_graph()
DiGraphC
- easygraph.classes.directed_multigraph module
MultiDiGraph
MultiDiGraph.add_edge()
MultiDiGraph.degree
MultiDiGraph.edge_key_dict_factory
MultiDiGraph.edges
MultiDiGraph.in_degree
MultiDiGraph.in_edges
MultiDiGraph.is_directed()
MultiDiGraph.is_multigraph()
MultiDiGraph.out_degree
MultiDiGraph.out_edges
MultiDiGraph.remove_edge()
MultiDiGraph.reverse()
MultiDiGraph.to_undirected()
- easygraph.classes.graph module
Graph
Graph.A
Graph.D_v
Graph.D_v_neg_1_2
Graph.L_GCN
Graph.N_v()
Graph.add_edge()
Graph.add_edges()
Graph.add_edges_from()
Graph.add_edges_from_file()
Graph.add_extra_selfloop()
Graph.add_node()
Graph.add_nodes()
Graph.add_nodes_from()
Graph.add_weighted_edge()
Graph.add_weighted_edges_from()
Graph.adj
Graph.adjlist_inner_dict_factory
Graph.adjlist_outer_dict_factory
Graph.all_neighbors()
Graph.clone()
Graph.copy()
Graph.cpp()
Graph.degree()
Graph.e
Graph.e_both_side
Graph.edge_attr_dict_factory
Graph.edges
Graph.ego_subgraph()
Graph.gnn_data_dict_factory
Graph.graph_attr_dict_factory
Graph.has_edge()
Graph.has_node()
Graph.index2node
Graph.is_directed()
Graph.is_multigraph()
Graph.name
Graph.nbr_v()
Graph.nbunch_iter()
Graph.ndata
Graph.neighbors()
Graph.node_attr_dict_factory
Graph.node_dict_factory
Graph.node_index
Graph.node_index_dict
Graph.nodes
Graph.nodes_subgraph()
Graph.number_of_edges()
Graph.number_of_nodes()
Graph.order()
Graph.raw_selfloop_dict
Graph.remove_edge()
Graph.remove_edges()
Graph.remove_extra_selfloop()
Graph.remove_node()
Graph.remove_nodes()
Graph.remove_nodes_from()
Graph.remove_selfloop()
Graph.size()
Graph.smoothing_with_GCN()
Graph.to_directed()
Graph.to_directed_class()
Graph.to_index_node_graph()
GraphC
- easygraph.classes.graphviews module
- easygraph.classes.hypergraph module
- easygraph.classes.multigraph module
MultiGraph
MultiGraph.add_edge()
MultiGraph.add_edges_from()
MultiGraph.copy()
MultiGraph.degree
MultiGraph.edge_key_dict_factory
MultiGraph.edges
MultiGraph.get_edge_data()
MultiGraph.has_edge()
MultiGraph.is_directed()
MultiGraph.is_multigraph()
MultiGraph.new_edge_key()
MultiGraph.number_of_edges()
MultiGraph.remove_edge()
MultiGraph.remove_edges_from()
MultiGraph.to_directed()
- easygraph.classes.operation module
- Module contents
- easygraph.datapipe package
- easygraph.datasets package
- Subpackages
- easygraph.datasets.dynamic package
- easygraph.datasets.hypergraph package
- Submodules
- easygraph.datasets.hypergraph.House_Committees module
- easygraph.datasets.hypergraph.Yelp module
- easygraph.datasets.hypergraph.cat_edge_Cooking module
- easygraph.datasets.hypergraph.coauthorship module
- easygraph.datasets.hypergraph.cocitation module
- easygraph.datasets.hypergraph.contact_primary_school module
- easygraph.datasets.hypergraph.cooking_200 module
- easygraph.datasets.hypergraph.hypergraph_dataset_base module
- easygraph.datasets.hypergraph.loadDeepSetDatasets module
- easygraph.datasets.hypergraph.mathoverflow_answers module
- easygraph.datasets.hypergraph.senate_committees module
- easygraph.datasets.hypergraph.trivago_clicks module
- easygraph.datasets.hypergraph.walmart_trips module
- Module contents
- Submodules
- easygraph.datasets.citation_graph module
- easygraph.datasets.get_sample_graph module
- easygraph.datasets.gnn_benchmark module
- easygraph.datasets.graph_dataset_base module
- easygraph.datasets.karate module
- easygraph.datasets.ppi module
- easygraph.datasets.utils module
- Module contents
- Subpackages
- easygraph.experiments package
- easygraph.functions package
- Subpackages
- easygraph.functions.basic package
- easygraph.functions.centrality package
- Submodules
- easygraph.functions.centrality.betweenness module
- easygraph.functions.centrality.closeness module
- easygraph.functions.centrality.degree module
- easygraph.functions.centrality.ego_betweenness module
- easygraph.functions.centrality.flowbetweenness module
- easygraph.functions.centrality.laplacian module
- easygraph.functions.centrality.pagerank module
- Module contents
- easygraph.functions.community package
- Submodules
- easygraph.functions.community.LPA module
- easygraph.functions.community.ego_graph module
- easygraph.functions.community.louvain module
- easygraph.functions.community.modularity module
- easygraph.functions.community.modularity_max_detection module
- easygraph.functions.community.motif module
- Module contents
- easygraph.functions.components package
- easygraph.functions.core package
- easygraph.functions.drawing package
- Submodules
- easygraph.functions.drawing.defaults module
- easygraph.functions.drawing.drawing module
- easygraph.functions.drawing.geometry module
- easygraph.functions.drawing.layout module
- easygraph.functions.drawing.plot module
- easygraph.functions.drawing.positioning module
- easygraph.functions.drawing.simulator module
- easygraph.functions.drawing.utils module
- Module contents
- easygraph.functions.graph_embedding package
- Submodules
- easygraph.functions.graph_embedding.NOBE module
- easygraph.functions.graph_embedding.deepwalk module
- easygraph.functions.graph_embedding.line module
- easygraph.functions.graph_embedding.net_emb_example_citeseer module
- easygraph.functions.graph_embedding.node2vec module
- easygraph.functions.graph_embedding.sdne module
- Module contents
- easygraph.functions.graph_generator package
- easygraph.functions.hypergraph package
- easygraph.functions.path package
- easygraph.functions.structural_holes package
- Submodules
- easygraph.functions.structural_holes.AP_Greedy module
- easygraph.functions.structural_holes.HAM module
- easygraph.functions.structural_holes.HIS module
- easygraph.functions.structural_holes.ICC module
- easygraph.functions.structural_holes.MaxD module
- easygraph.functions.structural_holes.NOBE module
- easygraph.functions.structural_holes.SHII_metric module
- easygraph.functions.structural_holes.evaluation module
- easygraph.functions.structural_holes.maxBlock module
- easygraph.functions.structural_holes.metrics module
- easygraph.functions.structural_holes.weakTie module
- Module contents
- Submodules
- easygraph.functions.isolate module
- Module contents
- Subpackages
- easygraph.ml_metrics package
- easygraph.model package
- Subpackages
- easygraph.model.hypergraphs package
- Submodules
- easygraph.model.hypergraphs.dhcf module
- easygraph.model.hypergraphs.dhne module
- easygraph.model.hypergraphs.hgnn module
- easygraph.model.hypergraphs.hgnnp module
- easygraph.model.hypergraphs.hnhn module
- easygraph.model.hypergraphs.hwnn module
- easygraph.model.hypergraphs.hypergcn module
- easygraph.model.hypergraphs.setgnn module
- easygraph.model.hypergraphs.unignn module
- Module contents
- easygraph.model.hypergraphs package
- Module contents
- Subpackages
- easygraph.nn package
- easygraph.readwrite package
- Subpackages
- Submodules
- easygraph.readwrite.edgelist module
- easygraph.readwrite.gexf module
- easygraph.readwrite.gml module
- easygraph.readwrite.graphml module
- easygraph.readwrite.graphviz module
- easygraph.readwrite.pajek module
- easygraph.readwrite.pickle module
- easygraph.readwrite.ucinet module
- Module contents
- easygraph.utils package
- Submodules
- easygraph.utils.alias module
- easygraph.utils.convert_class module
- easygraph.utils.convert_to_matrix module
- easygraph.utils.decorators module
- easygraph.utils.download module
- easygraph.utils.exception module
- easygraph.utils.index_of_node module
- easygraph.utils.logging module
- easygraph.utils.mapped_queue module
- easygraph.utils.misc module
- easygraph.utils.relabel module
- easygraph.utils.sparse module
- easygraph.utils.type_change module
- Module contents
Submodules
easygraph.convert module
- easygraph.convert.dict_to_hypergraph(data, max_order=None, is_dynamic=False)[source]
A function to read a file in a standardized JSON format.
- Parameters
data (dict) – A dictionary in the hypergraph JSON format
max_order (int, optional) – Maximum order of edges to add to the hypergraph
- Returns
The loaded hypergraph
- Return type
A Hypergraph object
- Raises
EasyGraphError – If the JSON is not in a format that can be loaded.
See also
read_json
- easygraph.convert.from_dgl(g) Union[Graph, DiGraph] [source]
Convert a DGL graph to an EasyGraph graph.
- easygraph.convert.from_edgelist(edgelist, create_using=None)[source]
Returns a graph from a list of edges.
- Parameters
edgelist (list or iterator) – Edge tuples
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
Examples
>>> edgelist = [(0, 1)] # single edge (0,1) >>> G = eg.from_edgelist(edgelist)
or
>>> G = eg.Graph(edgelist) # use Graph constructor
- easygraph.convert.from_networkx(g: Union[nx.Graph, nx.DiGraph]) Union[Graph, DiGraph] [source]
Convert a NetworkX graph to an EasyGraph graph.
- easygraph.convert.from_pyg(data: torch_geometric.data.Data, node_attrs: Optional[Iterable[str]] = None, edge_attrs: Optional[Iterable[str]] = None, graph_attrs: Optional[Iterable[str]] = None, to_undirected: Optional[Union[bool, str]] = False, remove_self_loops: bool = False) Any [source]
Converts a
torch_geometric.data.Data
instance to aeasygraph.Graph
ifto_undirected
is set toTrue
, or a directedeasygraph.DiGraph
otherwise.- Parameters
data (torch_geometric.data.Data) – The data object.
node_attrs (iterable of str, optional) – The node attributes to be copied. (default:
None
)edge_attrs (iterable of str, optional) – The edge attributes to be copied. (default:
None
)graph_attrs (iterable of str, optional) – The graph attributes to be copied. (default:
None
)to_undirected (bool or str, optional) – If set to
True
or “upper”, will return aeasygraph.Graph
instead of aeasygraph.DiGraph
. The undirected graph will correspond to the upper triangle of the corresponding adjacency matrix. Similarly, if set to “lower”, the undirected graph will correspond to the lower triangle of the adjacency matrix. (default:False
)remove_self_loops (bool, optional) – If set to
True
, will not include self loops in the resulting graph. (default:False
)
Examples
>>> import torch_geometric as pyg
>>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> from_pyg(data) <easygraph.classes.digraph.DiGraph at 0x2713fdb40d0>
- easygraph.convert.to_dgl(g: Union[Graph, DiGraph])[source]
Convert an EasyGraph graph to a DGL graph.
- easygraph.convert.to_easygraph_graph(data, create_using=None, multigraph_input=False)[source]
Make a EasyGraph graph from a known data structure.
The preferred way to call this is automatically from the class constructor
>>> d = {0: {1: {"weight": 1}}} # dict-of-dicts single edge (0,1) >>> G = eg.Graph(d)
instead of the equivalent
>>> G = eg.from_dict_of_dicts(d)
- Parameters
data (object to be converted) –
- Current known types are:
any EasyGraph graph dict-of-dicts dict-of-lists container (e.g. set, list, tuple) of edges iterator (e.g. itertools.chain) that produces edges generator of edges Pandas DataFrame (row per edge) numpy matrix numpy ndarray scipy sparse matrix pygraphviz agraph
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
multigraph_input (bool (default False)) – If True and data is a dict_of_dicts, try to create a multigraph assuming dict_of_dict_of_lists. If data and create_using are both multigraphs then create a multigraph from a multigraph.
- easygraph.convert.to_networkx(g: Union[Graph, DiGraph]) Union[nx.Graph, nx.DiGraph] [source]
Convert an EasyGraph to a NetworkX graph.
- easygraph.convert.to_pyg(G: Any, group_node_attrs: Optional[Union[List[str], all]] = None, group_edge_attrs: Optional[Union[List[str], all]] = None) torch_geometric.data.Data [source]
Converts a
easygraph.Graph
oreasygraph.DiGraph
to atorch_geometric.data.Data
instance.- Parameters
G (easygraph.Graph or easygraph.DiGraph) – A easygraph graph.
group_node_attrs (List[str] or all, optional) – The node attributes to be concatenated and added to
data.x
. (default:None
)group_edge_attrs (List[str] or all, optional) – The edge attributes to be concatenated and added to
data.edge_attr
. (default:None
)
Note
All
group_node_attrs
andgroup_edge_attrs
values must be numeric.Examples
>>> import torch_geometric as pyg
>>> pyg_to_networkx = pyg.utils.convert.to_networkx # type: ignore >>> networkx_to_pyg = pyg.utils.convert.from_networkx # type: ignore >>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> g = pyg_to_networkx(data) >>> # A `Data` object is returned >>> to_pyg(g) Data(edge_index=[2, 6], num_nodes=4)
easygraph.exception module
Exceptions
Base exceptions and errors for EasyGraph.
- exception easygraph.exception.EasyGraphAlgorithmError[source]
Bases:
EasyGraphException
Exception for unexpected termination of algorithms.
- exception easygraph.exception.EasyGraphError[source]
Bases:
EasyGraphException
Exception for a serious error in EasyGraph
- exception easygraph.exception.EasyGraphException[source]
Bases:
Exception
Base class for exceptions in EasyGraph.
- exception easygraph.exception.EasyGraphNoCycle[source]
Bases:
EasyGraphUnfeasible
Exception for algorithms that should return a cycle when running on graphs where such a cycle does not exist.
- exception easygraph.exception.EasyGraphNoPath[source]
Bases:
EasyGraphUnfeasible
Exception for algorithms that should return a path when running on graphs where such a path does not exist.
- exception easygraph.exception.EasyGraphNotImplemented[source]
Bases:
EasyGraphException
Exception raised by algorithms not implemented for a type of graph.
- exception easygraph.exception.EasyGraphPointlessConcept[source]
Bases:
EasyGraphException
Raised when a null graph is provided as input to an algorithm that cannot use it.
The null graph is sometimes considered a pointless concept 1, thus the name of the exception.
References
- 1
Harary, F. and Read, R. “Is the Null Graph a Pointless Concept?” In Graphs and Combinatorics Conference, George Washington University. New York: Springer-Verlag, 1973.
- exception easygraph.exception.EasyGraphUnbounded[source]
Bases:
EasyGraphAlgorithmError
Exception raised by algorithms trying to solve a maximization or a minimization problem instance that is unbounded.
- exception easygraph.exception.EasyGraphUnfeasible[source]
Bases:
EasyGraphAlgorithmError
Exception raised by algorithms trying to solve a problem instance that has no feasible solution.
- exception easygraph.exception.HasACycle[source]
Bases:
EasyGraphException
Raised if a graph has a cycle when an algorithm expects that it will have no cycles.
- exception easygraph.exception.NodeNotFound[source]
Bases:
EasyGraphException
Exception raised if requested node is not present in the graph