code: def __interpret_slices(self, slices):
      
      maxsize = list(self.bounds.maxpt) + [ self.num_channels ]
      minsize = list(self.bounds.minpt) + [ 0 ]
  
      slices = generate_slices(slices, minsize, maxsize, bounded=self.bounded)
      channel_slice = slices.pop()
  
      minpt = Vec(*[ slc.start for slc in slices ])
      maxpt = Vec(*[ slc.stop for slc in slices ]) 
      steps = Vec(*[ slc.step for slc in slices ])
  
      return Bbox(minpt, maxpt), steps, channel_slice
docs: Convert python slice objects into a more useful and computable form:
  
      - requested_bbox: A bounding box representing the volume requested
      - steps: the requested stride over x,y,z
      - channel_slice: A python slice object over the channel dimension
  
      Returned as a tuple: (requested_bbox, steps, channel_slice)