docstr: g, df, data_types
code: def __init__(
      self,
      graph: nx.DiGraph,
      action_nodes: List[str],
      outcome_nodes: List[str],
      observed_nodes: List[str],
      data,
      params=None,
      variable_types=None,
      num_cores=1,
      keep_original_treatment=False,
      estimand_type=EstimandType.NONPARAMETRIC_ATE,
  ):
      """
      g, df, data_types
  
      """
      super().__init__(
          graph=graph,
          action_nodes=action_nodes,
          outcome_nodes=outcome_nodes,
          observed_nodes=observed_nodes,
          data=data,
          params=params,
          variable_types=variable_types,
          num_cores=num_cores,
          keep_original_treatment=keep_original_treatment,
          estimand_type=estimand_type,
      )
  
      self.logger.info(
          "Using MultivariateWeightingSampler for do sampling."
      )
      self.logger.info("Caution: do samplers assume iid data.")
  
      self.point_sampler = False
  
file_path: dowhy/dowhy/do_samplers/multivariate_weighting_sampler.py
imports: from typing import List
  import networkx
  from dowhy import EstimandType
  from dowhy.do_sampler import DoSampler
  from dowhy.utils.propensity_score import state_propensity_score
label_desc: Use image node_id 1 to create a new MultivariateWeightingSampler object from inherited base classes: DoSampler with example: obj = MultivariateWeightingSampler(graph, action_nodes, outcome_nodes, observed_nodes, data, params, variable_types, num_cores, keep_original_treatment, estimand_type)