          logger.trace("kernel_size: %s", kernel_size)
          return kernel_size
  
      @staticmethod
      def _get_kernel_tuple(kernel_size):
          """ Make sure kernel_size is odd and return it as a tuple.
  
          Parameters
          ----------
          kernel_size: int
 
</s> remove         logger.trace("kernel_size: %s", kernel_size)
 </s> add         logger.trace("kernel_size: %s", kernel_size)  # type: ignore </s> remove             return kernel
 </s> add             return int(kernel) </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore </s> remove         logger.trace("Initialized %s", self.__class__.__name__)
 </s> add         logger.trace("Initialized %s", self.__class__.__name__)  # type: ignore </s> remove     def get_full_frame_mask(self, width, height):
 </s> add     def get_full_frame_mask(self, width: int, height: int) -> np.ndarray:
    def _get_kernel_tuple(kernel_size: int) -> Tuple[int, int]:
          logger.trace("kernel_size: %s", kernel_size)
          return kernel_size
  
      @staticmethod
    def _get_kernel_tuple(kernel_size: int) -> Tuple[int, int]:
          """ Make sure kernel_size is odd and return it as a tuple.
  
          Parameters
          ----------
          kernel_size: int
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