      @staticmethod
      def alignment_dict(filename, image):
          """ Set the image to an ExtractMedia object for alignment """
          height, width = image.shape[:2]
          face = DetectedFace(x=0, w=width, y=0, h=height)
          return ExtractMedia(filename, image, detected_faces=[face])
  
      def _get_landmarks(self):
          """ Multi-threaded, parallel and sequentially ordered landmark loader """
          extractor = self.launch_aligner()
 
</s> remove         face.x = pnt_x
        face.w = width
        face.y = pnt_y
        face.h = height
        face.landmarks_xy = self._extractor.get_landmarks(frame_index, face_index, aligner)
 </s> add         face.left = pnt_x
        face.width = width
        face.top = pnt_y
        face.height = height
        face._landmarks_xy = self._extractor.get_landmarks(frame_index, face_index, aligner) </s> remove         face.x = int(pt_x)
        face.y = int(pt_y)
        face.w = int(width)
        face.h = int(height)
 </s> add         face.left = int(pt_x)
        face.top = int(pt_y)
        face.width = int(width)
        face.height = int(height) </s> remove     def from_alignment(self, alignment, image=None, with_thumb=False):
 </s> add     def from_alignment(self, alignment: AlignmentFileDict,
                       image: Optional[np.ndarray] = None, with_thumb: bool = False) -> None: </s> remove         face.landmarks_xy = cv2.transform(np.expand_dims(face.landmarks_xy, axis=0),
                                          rot_mat).squeeze()
 </s> add         face._landmarks_xy = cv2.transform(np.expand_dims(face.landmarks_xy, axis=0),
                                           rot_mat).squeeze() </s> remove         alignment = dict(x=self.x,
                         w=self.w,
                         y=self.y,
                         h=self.h,
                         landmarks_xy=self.landmarks_xy,
                         mask={name: mask.to_dict() for name, mask in self.mask.items()})
        if self.thumbnail is not None:
            alignment["thumb"] = self.thumbnail
        logger.trace("Returning: %s", alignment)
 </s> add         if (self.left is None or self.width is None or self.top is None or self.height is None):
            raise AssertionError("Some detected face variables have not been initialized")
        alignment = AlignmentFileDict(x=self.left,
                                      w=self.width,
                                      y=self.top,
                                      h=self.height,
                                      landmarks_xy=self.landmarks_xy,
                                      mask={name: mask.to_dict()
                                            for name, mask in self.mask.items()},
                                      thumb=self.thumbnail)
        logger.trace("Returning: %s", alignment)  # type: ignore
        face = DetectedFace(left=0, width=width, top=0, height=height)
      @staticmethod
      def alignment_dict(filename, image):
          """ Set the image to an ExtractMedia object for alignment """
          height, width = image.shape[:2]
        face = DetectedFace(left=0, width=width, top=0, height=height)
          return ExtractMedia(filename, image, detected_faces=[face])
  
      def _get_landmarks(self):
          """ Multi-threaded, parallel and sequentially ordered landmark loader """
          extractor = self.launch_aligner()
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