class_docstr: Estimator results
class_docstr_tok: ["Estimator","results"]
docstr: Append a data point
  
  Args:
      result: result from an experimental run
docstr_tok: ["Append","a","data","point","Args",":","result",":","result","from","an","experimental","run"]
code: def append(self, result: EstimatorResult):
      """Append a data point
  
      Args:
          result: result from an experimental run
      """
      er = result.estimated_reward
      if math.isnan(er) or math.isinf(er):
          logging.warning(f"  Invalid estimate: {er}")
          return
      lr = result.log_reward
      gr = (
          result.ground_truth_reward
          if result.ground_truth_reward is not None
          else 0.0
      )
      logging.info(
          f"  Append estimate [{len(self.results) + 1}]: "
          f"log={lr}, estimated={er}, ground_truth={gr}"
      )
      self.results.append(
          EstimatorResult(
              log_reward=result.log_reward,
              estimated_reward=result.estimated_reward,
              ground_truth_reward=gr,
              estimated_weight=result.estimated_weight,
          )
      )
  
imports: import logging
  import math
  import pickle
  import tempfile
  from abc import ABC, abstractmethod
  from dataclasses import dataclass, field
  from multiprocessing import Pool
  from typing import Iterable, List, Mapping, Optional, Tuple, Union
  import torch
  from reagent.evaluation.cpe import bootstrapped_std_error_of_mean
  from torch import Tensor
label_desc: Use image node_id 1 for calling the EstimatorResults obj's underlying member method code with example usage: obj.append(result) without return types