docs: def unwrap_arrays(l):
      """
      Unwrap nested lists to be one "flat" list of lists. Mainly for prepping ensemble data for DataFrame() creation
  
      :param list l: Nested lists
      :return list l2: Flattened lists
      """
      # keep processing until all nesting is removed
      process = True
      # fail safe: cap the loops at 20, so we don't run into an error and loop infinitely.
      # if it takes more than 20 loops then there is a problem with the data given.
      loops = 25
      while process and loops > 0:
          try:
              # new "flat" list
              l2 = []
              for k in l:
                  # all items in this list are numeric, so this list is done. append to main list
                  if all(isinstance(i, float) or isinstance(i, int) for i in k):
                      l2.append(k)
                  # this list has more nested lists inside. append each individual nested list to the main one.
                  elif all(isinstance(i, list) or isinstance(i, np.ndarray) for i in k):
                      for i in k:
                          l2.append(i)
          except Exception:
              print("something went wrong during process")
          # verify the main list
          try:
              # if every list has a numeric at index 0, then there is no more nesting and we can stop processing
              if all(isinstance(i[0], (int, str, float)) for i in l2):
                  process = False
              else:
                  l = l2
          except IndexError:
              # there's no index 0, so there must be mixed data types or empty data somewhere.
              print("something went wrong during verify")
          loops -= 1
      return l2