class_docstr: Main class for storing the causal model state.
docstr: Retrieves an existing CausalEstimator object matching the given `method_name`.
  
  CausalEstimator objects are created in `estimate_effect()` and stored in a cache for reuse.
  Different instances can be created for different methods.
  They may be reused multiple times on different data with `estimate_effect(fit_estimator=False)`.
  This is useful for e.g. estimating effects on different samples of the same dataset.
  
  The `CausalEstimate` object returned by `estimate_effect()` also has a reference to the `CausalEstimator` object used to produce it:
  
  `effect = model.estimate_effect(...)`
  `effect.estimator  # returns the fitted CausalEstimator estimator object`
  
  :param method_name: name of the estimation method to be used.
  :returns: An instance of CausalEstimator for the given method, if it exists, or None.
docstr_tok: ["Retrieves","an","existing","CausalEstimator","object","matching","the","given","`","method_name","`",".","CausalEstimator","objects","are","created","in","`","estimate_effect","(",")","`","and","stored","in","a","cache","for","reuse",".","Different","instances","can","be","created","for","different","methods",".","They","may","be","reused","multiple","times","on","different","data","with","`","estimate_effect","(","fit_estimator=False",")","`",".","This","is","useful","for","e.g",".","estimating","effects","on","different","samples","of","the","same","dataset",".","The","`","CausalEstimate","`","object","returned","by","`","estimate_effect","(",")","`","also","has","a","reference","to","the","`","CausalEstimator","`","object","used","to","produce","it",":","`","effect","=","model.estimate_effect","(","...",")","`","`","effect.estimator","#","returns","the","fitted","CausalEstimator","estimator","object","`",":","param","method_name",":","name","of","the","estimation","method","to","be","used",".",":","returns",":","An","instance","of","CausalEstimator","for","the","given","method",",","if","it","exists",",","or","None","."]
code: def get_estimator(self, method_name):
      """
      Retrieves an existing CausalEstimator object matching the given `method_name`.
  
      CausalEstimator objects are created in `estimate_effect()` and stored in a cache for reuse.
      Different instances can be created for different methods.
      They may be reused multiple times on different data with `estimate_effect(fit_estimator=False)`.
      This is useful for e.g. estimating effects on different samples of the same dataset.
  
      The `CausalEstimate` object returned by `estimate_effect()` also has a reference to the `CausalEstimator` object used to produce it:
  
      `effect = model.estimate_effect(...)`
      `effect.estimator  # returns the fitted CausalEstimator estimator object`
  
      :param method_name: name of the estimation method to be used.
      :returns: An instance of CausalEstimator for the given method, if it exists, or None.
      """
      return self._estimator_cache.get(method_name)
  
imports: import logging
  import typing
  import warnings
  from itertools import combinations
  from sympy import init_printing
  import dowhy.causal_estimators
  import dowhy.causal_refuters
  import dowhy.graph_learners
  from dowhy.causal_estimator import CausalEstimate, estimate_effect
  from dowhy.causal_graph import CausalGraph
  from dowhy.causal_identifier import AutoIdentifier, BackdoorAdjustment, IDIdentifier
  from dowhy.causal_identifier.identify_effect import EstimandType
  from dowhy.causal_refuters.graph_refuter import GraphRefuter
  from dowhy.utils.api import parse_state
label_desc: Use image node_id 2 for calling the CausalModel obj's underlying member method code with example usage: obj.get_estimator(method_name) and returns: self