pywhy_graphs.classes.timeseries.TimeSeriesMixedEdgeGraph#

class pywhy_graphs.classes.timeseries.TimeSeriesMixedEdgeGraph(graphs=None, edge_types=None, max_lag=1, **attr)[source]#

A class to imbue mixed-edge graph with time-series structure.

This should not be used directly.

add_edge(u_of_edge: Tuple[int | float | str | Any, int], v_of_edge: Tuple[int | float | str | Any, int], edge_type: str = 'all', **attr)[source]#

Add an edge between u and v.

The nodes u and v will be automatically added if they are not already in the graph.

Edge attributes can be specified with keywords or by directly accessing the edge’s attribute dictionary.

Parameters:
u_for_edge, v_for_edgenodes

Nodes can be, for example, strings or numbers. Nodes must be hashable (and not None) Python objects.

edge_typestr

The edge type. By default ‘all’, which will then add an edge in all edge type subgraphs.

attrkeyword arguments, optional

Edge data (or labels or objects) can be assigned using keyword arguments.

See also

add_edges_from

add a collection of edges

add_edges_from(ebunch, edge_type='all', **attr)[source]#

Add all the edges in ebunch_to_add.

Parameters:
ebunch_to_addcontainer of edges

Each edge given in the container will be added to the graph. The edges must be given as 2-tuples (u, v) or 3-tuples (u, v, d) where d is a dictionary containing edge data.

edge_typestr

The edge type to add edges to. By default ‘all’, which will then add an edge in all edge type subgraphs.

attrkeyword arguments, optional

Edge data (or labels or objects) can be assigned using keyword arguments.

See also

add_edge

add a single edge

Notes

Adding the same edge twice has no effect but any edge data will be updated when each duplicate edge is added.

Edge attributes specified in an ebunch take precedence over attributes specified via keyword arguments.

add_homologous_edges(u_of_edge: Tuple[int | float | str | Any, int], v_of_edge: Tuple[int | float | str | Any, int], direction='both', edge_type='all', **attr)[source]#

Add homologous edges.

Assumes the edge that we consider is (u_of_edge, v_of_edge), that is ‘u’ points to ‘v’.

Parameters:
u_of_edgeTsNode

The from node.

v_of_edgeTsNode

The to node. The absolute value of the time lag should be less than or equal to the from node’s time lag.

directionstr, optional

Which direction to add homologous edges to, by default ‘both’, corresponding to making the edge stationary over all time.

copy()[source]#

Returns a copy of the graph.

Exactly the same as pywhy_graphs.networkx.MixedEdgeGraph.copy(), except this preserves the max lag graph attribute.

Parameters:
as_viewbool, optional (default=False)

If True, the returned graph-view provides a read-only view of the original graph without actually copying any data.

Returns:
GGraph

A copy of the graph.

See also

pywhy_graphs.networkx.MixedEdgeGraph.to_directed()

return a directed copy of the graph.

node_attr_dict_factory#

alias of tsdict

node_dict_factory#

alias of tsdict

remove_edge(u_of_edge, v_of_edge, edge_type='all')[source]#

Remove an edge between u and v.

Parameters:
u, vnodes

Remove an edge between nodes u and v.

edge_typestr

The edge type. By default ‘all’, which will then remove the edge in all edge type subgraphs (if it exists).

Raises:
NetworkXError

If there is not an edge between u and v, or if there is no edge with the specified key.

See also

remove_edges_from

remove a collection of edges

remove_edges_from(ebunch, edge_type='all')[source]#

Remove all edges specified in ebunch.

Parameters:
ebunch: list or container of edge tuples

Each edge given in the list or container will be removed from the graph. The edges can be:

  • 2-tuples (u, v) edge between u and v.

  • 3-tuples (u, v, k) where k is ignored.

See also

remove_edge

remove a single edge

Notes

Will fail silently if an edge in ebunch is not in the graph.

remove_homologous_edges(u_of_edge: Tuple[int | float | str | Any, int], v_of_edge: Tuple[int | float | str | Any, int], edge_type: str = 'all', direction='both')[source]#

Remove homologous edges.

Assumes the edge that we consider is (u_of_edge, v_of_edge), that is ‘u’ points to ‘v’.

Parameters:
u_of_edgeTsNode

The from node.

v_of_edgeTsNode

The to node. The absolute value of the time lag should be less than or equal to the from node’s time lag.

directionstr, optional

Which direction to add homologous edges to, by default ‘both’, corresponding to making the edge stationary over all time.