code: def estimator_result_to_cpe_estimate(
      result: EstimatorResult,
  ) -> CpeEstimate:
      assert result.estimated_reward_normalized is not None
      assert result.estimated_reward_normalized is not None
      assert result.estimated_reward_std_error is not None
      assert result.estimated_reward_normalized_std_error is not None
      return CpeEstimate(
          raw=result.estimated_reward,
          normalized=result.estimated_reward_normalized,
          raw_std_error=result.estimated_reward_std_error,
          normalized_std_error=result.estimated_reward_normalized_std_error,
      )
  
imports: import logging
  import torch
  from reagent.evaluation.cpe import bootstrapped_std_error_of_mean, CpeEstimate, CpeEstimateSet
  from reagent.evaluation.evaluation_data_page import EvaluationDataPage
  from reagent.evaluation.evaluator import Evaluator
  from reagent.evaluation.weighted_sequential_doubly_robust_estimator import WeightedSequentialDoublyRobustEstimator
  from reagent.ope.estimators.contextual_bandits_estimators import BanditsEstimatorInput, DMEstimator, DoublyRobustEstimator, IPSEstimator, LogSample, ModelOutputs
  from reagent.ope.estimators.estimator import Estimator, EstimatorResult, EstimatorResults
  from reagent.ope.estimators.sequential_estimators import Action, ActionDistribution, DoublyRobustEstimator, MAGICEstimator, RLEstimator, RLEstimatorInput, RLPolicy, State, Transition, ValueFunction
  from reagent.ope.estimators.types import ActionSpace
label_desc: Use image node_id 3 for calling the OPEstimatorAdapter obj's underlying member method code with example usage: obj.estimator_result_to_cpe_estimate(result) and returns: CpeEstimate