                               for row in range(rows)])
          logger.debug("display shape: %s", display.shape)
          return Image.fromarray(display)
  
      def _create_placeholder(self, thumbnail_size):
          """ Create a placeholder image for when there are fewer thumbnails available
          than columns to display them.
  
          Parameters
          ----------
 
</s> remove         display = np.vstack([np.hstack(samples[row * cols: (row + 1) * cols])
 </s> add         display = np.vstack([np.hstack(cast(Sequence, samples[row * cols: (row + 1) * cols])) </s> remove             placeholder = np.concatenate([np.expand_dims(self._previewcache["placeholder"],
                                                         0)] * remainder)
 </s> add             placeholder = np.concatenate([np.expand_dims(
                cast(np.ndarray, self._previewcache["placeholder"]), 0)] * remainder) </s> remove     def _place_previews(self, frame_dims):
 </s> add     def _place_previews(self, frame_dims: Tuple[int, int]) -> Image.Image: </s> remove         logger.debug("Cache shape: %s", self._previewcache["images"].shape)
 </s> add         logger.debug("Cache shape: %s", cast(np.ndarray, self._previewcache["images"]).shape) </s> remove     def previewtrain(self):
 </s> add     def previewtrain(self) -> Dict[str, List[Union[Image.Image, ImageTk.PhotoImage, None, float]]]:
    def _create_placeholder(self, thumbnail_size: int) -> None:
                               for row in range(rows)])
          logger.debug("display shape: %s", display.shape)
          return Image.fromarray(display)
  
    def _create_placeholder(self, thumbnail_size: int) -> None:
          """ Create a placeholder image for when there are fewer thumbnails available
          than columns to display them.
  
          Parameters
          ----------
keep keep keep keep replace keep keep keep keep keep
 Bugfix: Preview for extract in batch mode 
lib/gui/utils.py