                  "\n  - You are working with a Merged Alignments file. This is not supported for "
                  "your current use case."
                  "\nYou should either extract the video to individual frames, re-encode the "
                  "video at a constant frame rate and re-run extraction or work with a dedicated "
                  "alignments file for your requested video.".format(len(pts_time), len(self.data)))
          self.save()
  
      @classmethod
      def _pad_leading_frames(cls, pts_time, keyframes):
          """ Calculate the number of frames to pad the video by when the first frame is not
 
</s> remove                 "There is a mismatch between the number of frames found in the video file ({}) "
                "and the number of frames found in the alignments file ({})."
                "\nThis can be caused by a number of issues:"
 </s> add                 "There is a mismatch between the number of frames found in the video file "
                f"({len(pts_time)}) and the number of frames found in the alignments file "
                f"({len(self.data)}).\nThis can be caused by a number of issues:" </s> remove         affine_matrix: numpy.ndarray
 </s> add         affine_matrix: :class:`numpy.ndarray` </s> remove def update_legacy_png_header(filename, alignments):
 </s> add def update_legacy_png_header(filename: str, alignments: Alignments
                             ) -> Optional[PNGHeaderDict]: </s> remove         new_location = "{}.{}".format(os.path.splitext(old_location)[0],
                                      self._serializer.file_extension)
 </s> add         new_location = f"{os.path.splitext(old_location)[0]}.{self._serializer.file_extension}" </s> remove     x: int
 </s> add     left: int
                "alignments file for your requested video.")
                  "\n  - You are working with a Merged Alignments file. This is not supported for "
                  "your current use case."
                  "\nYou should either extract the video to individual frames, re-encode the "
                  "video at a constant frame rate and re-run extraction or work with a dedicated "
                "alignments file for your requested video.")
          self.save()
  
      @classmethod
      def _pad_leading_frames(cls, pts_time, keyframes):
          """ Calculate the number of frames to pad the video by when the first frame is not
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 
lib/align/alignments.py