docs: def fromlist(items, accessor=None, keys=None, dims=None, dtype=None, labels=None, npartitions=None, engine=None):
      """
      Load images from a list of items using the given accessor.
  
      Parameters
      ----------
      accessor : function
          Apply to each item from the list to yield an image.
  
      keys : list, optional, default=None
          An optional list of keys.
  
      dims : tuple, optional, default=None
          Specify a known image dimension to avoid computation.
  
      labels : array, optional, default = None
          Labels for records. If provided, should be one-dimensional.
  
      npartitions : int
          Number of partitions for computational engine.
      """
      if spark and isinstance(engine, spark):
          nrecords = len(items)
          if keys:
              items = zip(keys, items)
          else:
              keys = [(i,) for i in range(nrecords)]
              items = zip(keys, items)
          if not npartitions:
              npartitions = engine.defaultParallelism
          rdd = engine.parallelize(items, npartitions)
          if accessor:
              rdd = rdd.mapValues(accessor)
          return fromrdd(rdd, nrecords=nrecords, dims=dims, dtype=dtype, labels=labels, ordered=True)
  
      else:
          if accessor:
              items = asarray([accessor(i) for i in items])
          return fromarray(items, labels=labels)