code: def extract_argument_names(expr, accepted_funcs):
      """Extract the names of the arguments passed to a function.
  
      This is used to extract the labels from function calls such as `c(y1, y2, y3, y3)`.
  
      Parameters
      ----------
      expr : str
          An expression that is parsed to extract the components of the call.
      accepted_funcs : list
          A list with the names of the functions that we accept to parse.
  
      Returns
      -------
      list
          If all criteria are met, the names of the arguments. Otherwise it returns None.
      """
      # Extract the first thing in the body
      parsed_expr = ast.parse(expr).body[0]
      if not isinstance(parsed_expr, ast.Expr):
          return None
  
      # Check the value is a call
      value = parsed_expr.value
      if not isinstance(value, ast.Call):
          return None
  
      # Check call name is the name of an exepcted function
      if value.func.id not in accepted_funcs:
          return None
  
      # Check all arguments are either names or constants
      args = value.args
      if not all(isinstance(arg, ast.Name) for arg in args):
          return None
  
      # We can safely build labels now
      labels = [arg.id for arg in args]
  
      if labels:
          return labels
      return None
  
file_path: bambi/bambi/utils.py
imports: from typing import Sequence
  import ast
  import textwrap
  import formulae
  import numpy
  from bambi.transformations import HSGP
label_desc: Use image node_id 5 for calling a global function with example usage: extract_argument_names(expr, accepted_funcs) and returns: None, None, None, None, None, labels