code: def check_argument(
      name,
      c,
      enum_list=None,
      max_val=None,
      min_val=None,
      restricted=False,
      val_type=None,
      alternative=None,
  ):
      if alternative in c.keys() and c[alternative] is not None:
          return
      if restricted:
          assert (
              name in c.keys()
          ), f" [!] {name} not defined in config.json"
      if name in c.keys():
          if max_val:
              assert (
                  c[name] <= max_val
              ), f" [!] {name} is larger than max value {max_val}"
          if min_val:
              assert (
                  c[name] >= min_val
              ), f" [!] {name} is smaller than min value {min_val}"
          if enum_list:
              assert (
                  c[name].lower() in enum_list
              ), f" [!] {name} is not a valid value"
          if isinstance(val_type, list):
              is_valid = False
              for typ in val_type:
                  if isinstance(c[name], typ):
                      is_valid = True
              assert (
                  is_valid or c[name] is None
              ), f" [!] {name} has wrong type - {type(c[name])} vs {val_type}"
          elif val_type:
              assert (
                  isinstance(c[name], val_type) or c[name] is None
              ), f" [!] {name} has wrong type - {type(c[name])} vs {val_type}"
  
imports: import datetime
  import glob
  import os
  import shutil
  import subprocess
  import sys
  from pathlib import Path
  import torch
label_desc: Use image node_id 8 for calling a global function with example usage: check_argument(name, c, enum_list, max_val, min_val, restricted, val_type, alternative) without return types