code: def score_cpe(self, metric_name, edp: EvaluationDataPage):
      logger.info("Using OPE adapter")
      direct_method = self.ope_dm_estimator.estimate(edp)
      inverse_propensity = self.ope_ips_estimator.estimate(edp)
      doubly_robust = self.ope_dr_estimator.estimate(edp)
  
      sequential_doubly_robust = self.ope_seq_dr_estimator.estimate(edp)
      weighted_doubly_robust = (
          self.ope_seq_weighted_dr_estimator.estimate(edp)
      )
      magic = self.ope_seq_magic_estimator.estimate(edp)
      return CpeEstimateSet(
          direct_method=direct_method,
          inverse_propensity=inverse_propensity,
          doubly_robust=doubly_robust,
          sequential_doubly_robust=sequential_doubly_robust,
          weighted_doubly_robust=weighted_doubly_robust,
          magic=magic,
      )
  
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 2 for calling the OPEvaluator obj's underlying member method code with example usage: obj.score_cpe(metric_name, edp) and returns: CpeEstimateSet