def __setitem__(self, key, value): if self.isID(key): if key in self.ID2artist: self.ID2artist[key].append(value) else: self.ID2artist[key] = [value] self.artist2ID[value] = key if isinteger(key) and key >= self.nowID: self.nowID = key + 1 else: self.__setitem__(value, key)
def intersection(a, b): """calculate the length of 2 lines' intersection. a, b: (beg, end) tuple of two lines; or two arrays. returns: intersection length of the two lines. e.g., intersection( (3, 6), (4, 8) ) -> 2, which is 4 ~ 6. """ ab = np.r_[a, b] res = np.abs(a[-1] - a[0]) + np.abs(b[-1] - b[0]) - (np.max(ab) - np.min(ab)) if isinstance(res, timedelta): zerotd = timedelta(seconds=0) if res < zerotd: res = zerotd elif isinteger(res): if res < 0: res = 0 else: if res < 0.0: res = 0.0 return res
def __getitem__(self, key): if isinteger(key): return self._plotter_list[key] else: return Null