code: def create_nested_struct_type(max_types_at_each_level, nesting_level):
      dtypes_list = cudf.utils.dtypes.ALL_TYPES
      picked_types = np.random.choice(
          list(dtypes_list), max_types_at_each_level
      )
      type_dict = {}
      for name, type_ in enumerate(picked_types):
          if type_ == "struct":
              type_dict[str(name)] = create_nested_struct_type(
                  max_types_at_each_level, nesting_level - 1
              )
          else:
              type_dict[str(name)] = cudf.dtype(type_)
      return cudf.StructDtype(type_dict)
  
imports: import copy
  import random
  import string
  import uuid
  from multiprocessing import Pool
  import numpy
  import pandas
  import pyarrow
  from pyarrow import parquet
  import cudf
  from cudf.utils.dtypes import np_to_pa_dtype
label_desc: Use image node_id 19 for calling a global function with example usage: create_nested_struct_type(max_types_at_each_level, nesting_level) and returns: cudf