class_docstr: Interface for heuristics that halt trials early, typically based on early
  results from that trial.
docstr: Helper function for logging/constructing a reason when min number of
  trials with data is not yet reached.
docstr_tok: ["Helper","function","for","logging\/constructing","a","reason","when","min","number","of","trials","with","data","is","not","yet","reached","."]
code: def _log_and_return_num_trials_with_data(
      logger: logging.Logger,
      trial_index: int,
      trial_last_progression: float,
      num_trials_with_data: int,
      min_curves: int,
  ) -> Tuple[bool, str]:
      """Helper function for logging/constructing a reason when min number of
      trials with data is not yet reached."""
      logger.info(
          f"The number of trials with data ({num_trials_with_data}) "
          f"at trial {trial_index}'s last progression ({trial_last_progression}) "
          "is less than the specified minimum number for early stopping "
          f"({min_curves}). Not early stopping."
      )
      reason = (
          f"Number of trials with data ({num_trials_with_data}) at "
          f"last progression ({trial_last_progression}) is less than the "
          f"specified minimum number for early stopping ({min_curves})."
      )
      return False, reason
  
imports: import logging
  from abc import ABC, abstractmethod
  from dataclasses import dataclass
  from logging import Logger
  from typing import Any, Dict, Iterable, List, Optional, Sequence, Set, Tuple, Type
  import numpy
  import pandas
  from ax.core.base_trial import TrialStatus
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.map_data import MapData
  from ax.core.objective import MultiObjective
  from ax.modelbridge.map_torch import MapTorchModelBridge
  from ax.modelbridge.modelbridge_utils import _unpack_observations, observation_data_to_array, observation_features_to_array
  from ax.modelbridge.registry import Cont_X_trans, Y_trans
  from ax.modelbridge.transforms.base import Transform
  from ax.modelbridge.transforms.map_unit_x import MapUnitX
  from ax.models.torch_base import TorchModel
  from ax.utils.common.base import Base
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import checked_cast, not_none
label_desc: Use image node_id 8 for calling the BaseEarlyStoppingStrategy obj's underlying member method code with example usage: obj._log_and_return_num_trials_with_data(logger, trial_index, trial_last_progression, num_trials_with_data, min_curves) and returns: False,  reason