code: def _stop_index(self, stop_point, inclusive):
          
          if not stop_point:
              # Null case, no stopping point
              return len(self._stages)
          stop_name = parse_stage_name(stop_point)
          try:
              stop_index = self.stage_names.index(stop_name)
          except ValueError:
              raise UnknownPipelineStageError(stop_name, self)
          return stop_index + 1 if inclusive else stop_index
docs: Determine index of stage of stopping point for run().
  
          :param str | pypiper.Stage | function stop_point: Stopping point itself
              or name of it.
          :param bool inclusive: Whether the stopping point is to be regarded as
              inclusive (i.e., whether it's the final stage to run, or the one
              just beyond)
          :return int: Index into sequence of Pipeline's stages that indicates
              where to stop; critically, the value of the inclusive parameter
              here is used to contextualize this index such that it's always
              returned as an exclusive stopping index (i.e., execute up to the
              stage indexed by the value returned from this function.)