              black_pixels = [np.ndarray.all(img == [0, 0, 0], axis=2).sum()/img.size*100*3
                              for img in image_list]
              temp_list = list(zip(filename_list, black_pixels))
          else:
              raise ValueError("{} group_method not found.".format(group_method))
  
          return self.splice_lists(img_list, temp_list)
  
      @staticmethod
      def _near_split(bin_range, num_bins):
 
</s> remove                 filename = "{}_{}".format(vid, filename)
 </s> add                 filename = f"{vid}_{filename}" </s> remove     def original_roi(self):
 </s> add     def original_roi(self) -> np.ndarray: </s> remove             raise FaceswapError("Error: Alignments file not found at "
                                "{}".format(self._file))
 </s> add             raise FaceswapError(f"Error: Alignments file not found at {self._file}") </s> remove         affine_matrix: numpy,ndarray
 </s> add         affine_matrix: :class:`numpy,ndarray` </s> remove             top_left = face.aligned.original_roi[0]  # pylint:disable=unsubscriptable-object
 </s> add             top_left = face.aligned.original_roi[0]
            raise ValueError(f"{group_method} group_method not found.")
              black_pixels = [np.ndarray.all(img == [0, 0, 0], axis=2).sum()/img.size*100*3
                              for img in image_list]
              temp_list = list(zip(filename_list, black_pixels))
          else:
            raise ValueError(f"{group_method} group_method not found.")
  
          return self.splice_lists(img_list, temp_list)
  
      @staticmethod
      def _near_split(bin_range, num_bins):
keep keep keep keep replace keep keep keep keep keep
 lib.align updates:
  - alignments.py
    - Add typed dicts for imported alignments
    - Explicitly check for presence of thumb value in alignments dict
    - linting
  - detected_face.py
    - Typing
    - Linting
    - Legacy support for pre-aligned face
    - Update dependencies to new property names 
tools/sort/sort.py