def add_node_presence(self, n, time): """ Add presence for a node for a period :param n: node :param time: a period, couple (start, stop) or an interval """ if not isinstance(time, Intervals): time = Intervals(time) if not self._graph.has_node(n): self._graph.add_node(n, t=time) else: self._graph.nodes[n]["t"] += time self._start = min(self._start, time.start()) self._end = max(self._end, time.end())
def add_interaction(self, u, v, time): """ Add an interaction between nodes u and v at time time :param u: first node :param b: second node :param time: pair (start,end) or Intervals :return: """ if not isinstance(time, Intervals): time = Intervals(time) self.add_node_presence(u, time) self.add_node_presence(v, time) self._add_interaction_safe(u, v, time) start = time.start() end = time.end() self._start = min(self._start, start) self._end = max(self._end, end)