              The transformation matrix required to transform the mask to the original frame.
          interpolator, int:
              The CV2 interpolator required to transform this mask to it's original frame
          """
          logger.trace("mask shape: %s, mask dtype: %s, mask min: %s, mask max: %s, "
                       "affine_matrix: %s, interpolator: %s)", mask.shape, mask.dtype, mask.min(),
                       affine_matrix, mask.max(), interpolator)
          self._affine_matrix = self._adjust_affine_matrix(mask.shape[0], affine_matrix)
          self._interpolator = interpolator
          self.replace_mask(mask)
 
</s> remove         affine_matrix: numpy.ndarray
 </s> add         affine_matrix: :class:`numpy.ndarray` </s> remove     def add(self, mask, affine_matrix, interpolator):
 </s> add     def add(self, mask: np.ndarray, affine_matrix: np.ndarray, interpolator: int) -> None: </s> remove         logger.trace("mask shape: %s, mask dtype: %s, mask min: %s, mask max: %s",
 </s> add         logger.trace("mask shape: %s, mask dtype: %s, mask min: %s, mask max: %s",  # type: ignore </s> remove         logger.trace("name: '%s', mask shape: %s, affine_matrix: %s, interpolator: %s, "
                     "storage_size: %s, storage_centering: %s)", name, mask.shape, affine_matrix,
                     interpolator, storage_size, storage_centering)
 </s> add         logger.trace("name: '%s', mask shape: %s, affine_matrix: %s, "  # type: ignore
                     "interpolator: %s, storage_size: %s, storage_centering: %s)", name,
                     mask.shape, affine_matrix, interpolator, storage_size, storage_centering) </s> remove         mask: numpy.ndarray
 </s> add         mask: :class:`numpy.ndarray`
        logger.trace("mask shape: %s, mask dtype: %s, mask min: %s, mask max: %s, "  # type: ignore
              The transformation matrix required to transform the mask to the original frame.
          interpolator, int:
              The CV2 interpolator required to transform this mask to it's original frame
          """
        logger.trace("mask shape: %s, mask dtype: %s, mask min: %s, mask max: %s, "  # type: ignore
                       "affine_matrix: %s, interpolator: %s)", mask.shape, mask.dtype, mask.min(),
                       affine_matrix, mask.max(), interpolator)
          self._affine_matrix = self._adjust_affine_matrix(mask.shape[0], affine_matrix)
          self._interpolator = interpolator
          self.replace_mask(mask)
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/detected_face.py