Esempio n. 1
0
    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())
Esempio n. 2
0
    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)