code: def parse_variables(variables):
      # Build input variables
      pre_tx_vars = []
      if variables is None:
          return []
  
      if isinstance(variables, str):
          variables = [variables]
  
      err_msg = "Elements of variables argument must be strings are two-element tuples"
      for var in variables:
          if isinstance(var, str):
              pre_tx_vars.append((var, []))
          elif isinstance(var, (list, tuple)):
              if len(var) == 2:
                  pre_tx_vars.append(tuple(var))
              else:
                  raise ValueError(err_msg)
          else:
              raise ValueError(err_msg)
      return pre_tx_vars
  
imports: import pandas
  import psutil
  import pyarrow
  from typing import Union
  from .connection import SqlConnection
  from .dataset import SqlDataset, DataFrameDataset
  from .datasource import PandasDatasource, DfiDatasource
  from .evaluation import get_mark_group_for_scope
  from .transformer import import_pyarrow_interchange, to_arrow_table
  from .local_tz import get_local_tz
  from typing import TypedDict, List, Literal, Any
label_desc: Use image node_id 2 for calling a global function with example usage: parse_variables(variables) and returns: pre_tx_vars, list