class_docstr: The early stopping logic.
docstr: Report a result at the given epoch.
  
  :param metric:
      The result metric.
  :param epoch:
      The epoch.
  
  :return:
      If the result did not improve more than delta for patience evaluations
  
  :raises ValueError:
      if more than one metric is reported for a single epoch
docstr_tok: ["Report","a","result","at","the","given","epoch",".",":","param","metric",":","The","result","metric",".",":","param","epoch",":","The","epoch",".",":","return",":","If","the","result","did","not","improve","more","than","delta","for","patience","evaluations",":","raises","ValueError",":","if","more","than","one","metric","is","reported","for","a","single","epoch"]
code: def report_result(self, metric: float, epoch: int) -> bool:
      """
      Report a result at the given epoch.
  
      :param metric:
          The result metric.
      :param epoch:
          The epoch.
  
      :return:
          If the result did not improve more than delta for patience evaluations
  
      :raises ValueError:
          if more than one metric is reported for a single epoch
      """
      if self.best_epoch is not None and epoch <= self.best_epoch:
          raise ValueError(
              "Cannot report more than one metric for one epoch"
          )
  
      # check for improvement
      if self.is_improvement(metric):
          self.best_epoch = epoch
          self.best_metric = metric
          self.remaining_patience = self.patience
      else:
          self.remaining_patience -= 1
  
      # stop if the result did not improve more than delta for patience evaluations
      return self.remaining_patience <= 0
  
imports: import dataclasses
  import logging
  import math
  import pathlib
  from dataclasses import dataclass
  from typing import Any, Callable, List, Mapping, Optional, Union
  from uuid import uuid4
  import torch
  from .stopper import Stopper
  from ..constants import PYKEEN_CHECKPOINTS
  from ..evaluation import Evaluator
  from ..models import Model
  from ..trackers import ResultTracker
  from ..triples import CoreTriplesFactory
  from ..utils import fix_dataclass_init_docs
label_desc: Use image node_id 3 for calling the EarlyStoppingLogic obj's underlying member method code with example usage: obj.report_result(metric, epoch) and returns: unknown