def __setitem__()

in distill/segmentation/segments.py [0:0]


    def __setitem__(self, key, value):
        """
        Allows subscripts to be used to set items.
        """
        if not isinstance(value, distill.Segment):
            raise TypeError("Segments objects can only hold Segment objects.")

        if isinstance(key, str):
            if not value.segment_name == key:
                raise SegmentationError("Segment name in subscript must match the segment name of the Segment object.")

            segment_names = [segment.get_segment_name() for segment in self.segments]
            if key in segment_names:
                index = segment_names.index(key)
                self.segments[index] = value
            else:
                self.segments.append(value)
        elif isinstance(key, int):
            if key < len(self.segments):
                self.segments[key] = value
            else:
                raise SegmentationError("Index provided goes beyond the length of the underlying list of Segment objects.")