docs: def _checkpoint(self, stage):
          """
          Decide whether to stop processing of a pipeline. This is the hook
  
          A pipeline can report various "checkpoints" as sort of status markers
          that designate the logical processing phase that's just been completed.
          The initiation of a pipeline can preordain one of those as a "stopping
          point" that when reached, should stop the pipeline's execution.
  
          :param pypiper.Stage | str stage: Pipeline processing stage/phase just completed.
          :return bool: Whether a checkpoint was created (i.e., whether it didn't
              already exist)
          :raise ValueError: If the stage is specified as an absolute filepath,
              and that path indicates a location that's not immediately within
              the main output folder, raise a ValueError.
          """
  
          # For null stage, short-circuit and indicate no file write.
          # This handles case in which we're timestamping prospectively and
          # previously weren't in a stage.
          if stage is None:
              return False
  
          try:
              is_checkpoint = stage.checkpoint
          except AttributeError:
              # Maybe we have a raw function, not a stage.
              if hasattr(stage, "__call__"):
                  stage = stage.__name__
              else:
                  # Maybe we have a stage name not a Stage.
                  # In that case, we can proceed as-is, with downstream
                  # processing handling Stage vs. stage name disambiguation.
                  # Here, though, warn about inputs that appear filename/path-like.
                  # We can't rely on raw text being a filepath or filename,
                  # because that would ruin the ability to pass stage name rather
                  # than actual stage. We can issue a warning message based on the
                  # improbability of a stage name containing the '.' that would
                  # be expected to characterize the extension of a file name/path.
                  base, ext = os.path.splitext(stage)
                  if ext and "." not in base:
                      print("WARNING: '{}' looks like it may be the name or path of "
                            "a file; for such a checkpoint, use touch_checkpoint.".
                            format(stage))
          else:
              if not is_checkpoint:
                  print("Not a checkpoint: {}".format(stage))
                  return False
              stage = stage.name
  
          print("Checkpointing: '{}'".format(stage))
          if os.path.isabs(stage):
              check_fpath = stage
          else:
              check_fpath = checkpoint_filepath(stage, pm=self)
          return self._touch_checkpoint(check_fpath)