code: def get_list(shapes, types):
          
          if types is not None:
              type_dict = dict(types)
              return [DataDesc(x[0], x[1], type_dict[x[0]]) for x in shapes]
          else:
              return [DataDesc(x[0], x[1]) for x in shapes]
docs: Get DataDesc list from attribute lists.
  
          Parameters
          ----------
          shapes : a tuple of (name_, shape_)
          types : a tuple of  (name_, np.dtype)