code: def _warn_if_unused_data_variables(
      data_variable_names: typing.Set[str],
      graph_variable_names: typing.Set[str],
      logger: logging.Logger,
  ):
      """Logs a warning message if there are any data variables that are not used in the graph."""
      unused_data_variable_names = data_variable_names.difference(
          graph_variable_names
      )
  
      if unused_data_variable_names:
          logger.warn(
              "There are an additional %d variables in the dataset that are "
              "not in the graph. Variable names are: '%s'",
              len(unused_data_variable_names),
              sorted(unused_data_variable_names),
          )
  
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 a global function with example usage: _warn_if_unused_data_variables(data_variable_names, graph_variable_names, logger) without return types