docstr: x.__delitem__(y) <==> del x[y]
docstr_tok: ["x.__delitem__","(","y",")","<","==",">","del","x","[","y","]"]
code: def __delitem__(self, index):
      """x.__delitem__(y) <==> del x[y]"""
      # Deleting one item
      if isinstance(index, int):
          if index < 0:
              index += len(self)
          if index < 0 or index > len(self):
              raise IndexError("Collection deletion index out of range")
          istart, istop = index, index + 1
      # Deleting several items
      elif isinstance(index, slice):
          istart, istop, _ = index.indices(len(self))
          if istart > istop:
              istart, istop = istop, istart
          if istart == istop:
              return
      # Deleting everything
      elif index is Ellipsis:
          istart, istop = 0, len(self)
      # Error
      else:
          raise TypeError(
              "Collection deletion indices must be integers"
          )
  
      vsize = len(self._vertices_list[index])
      if self.itype is not None:
          del self._indices_list[index]
          self._indices_list[index:] -= vsize
  
      if self.utype:
          self._vertices_list[index:]["collection_index"] -= (
              istop - istart
          )
      del self._vertices_list[index]
  
      if self.utype is not None:
          del self._uniforms_list[index]
  
      self._need_update = True
  
imports: from __future__ import division
  import math
  import numpy
  from ...gloo import Texture2D, VertexBuffer, IndexBuffer
  from .util import dtype_reduce
  from .array_list import ArrayList
label_desc: Use image node_id 7 for calling the BaseCollection obj's underlying member method code with example usage: obj.__delitem__(index) without return types