          """ dict: cv2 function keyword arguments mapped to their parameters. """
          return dict(ksize=self._kernel_size,
                      sigmaX=self._sigma)
  
      def _get_kernel_size(self, kernel, is_ratio):
          """ Set the kernel size to absolute value.
  
          If :attr:`is_ratio` is ``True`` then the kernel size is calculated from the given ratio and
          the :attr:`_mask` size, otherwise the given kernel size is just returned.
  
 
</s> remove     def _kwarg_mapping(self):
 </s> add     def _kwarg_mapping(self) -> Dict[str, Union[int, Tuple[int, int]]]: </s> remove         logger.trace(retval)
 </s> add         logger.trace(retval)  # type: ignore </s> remove             return kernel
 </s> add             return int(kernel) </s> remove def update_legacy_png_header(filename, alignments):
 </s> add def update_legacy_png_header(filename: str, alignments: Alignments
                             ) -> Optional[PNGHeaderDict]:
    def _get_kernel_size(self, kernel: Union[int, float], is_ratio: bool) -> int:
          """ dict: cv2 function keyword arguments mapped to their parameters. """
          return dict(ksize=self._kernel_size,
                      sigmaX=self._sigma)
  
    def _get_kernel_size(self, kernel: Union[int, float], is_ratio: bool) -> int:
          """ Set the kernel size to absolute value.
  
          If :attr:`is_ratio` is ``True`` then the kernel size is calculated from the given ratio and
          the :attr:`_mask` size, otherwise the given kernel size is just returned.
  
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