code: def locate_range(self, start=None, stop=None):
          
  
          # locate start and stop indices
          if start is None:
              start_index = 0
          else:
              start_index = bisect.bisect_left(self, start)
          if stop is None:
              stop_index = len(self)
          else:
              stop_index = bisect.bisect_right(self, stop)
  
          if stop_index - start_index == 0:
              raise KeyError(start, stop)
  
          loc = slice(start_index, stop_index)
          return loc
docs: Locate slice of index containing all entries within `start` and
          `stop` values **inclusive**.
  
          Parameters
          ----------
          start : int, optional
              Start value.
          stop : int, optional
              Stop value.
  
          Returns
          -------
          loc : slice
              Slice object.
  
          Examples
          --------
  
          >>> import allel
          >>> idx = allel.SortedIndex([3, 6, 11, 20, 35])
          >>> loc = idx.locate_range(4, 32)
          >>> loc
          slice(1, 4, None)
          >>> idx[loc]
          <SortedIndex shape=(3,) dtype=int64>
          [6, 11, 20]