  """ Aligner for faceswap.py """
  
  import logging
  import sys
  from threading import Lock
  from typing import Dict, Optional, Tuple
 
</s> remove     from typing_extensions import Literal
 </s> add     from typing_extensions import get_args, Literal </s> remove     from typing import Literal
 </s> add     from typing import get_args, Literal </s> remove     def _set_cache(cls):
        """ Set the cache items.
 </s> add     def _padding_from_coverage(cls, size: int, coverage_ratio: float) -> Dict[CenteringType, int]:
        """ Return the image padding for a face from coverage_ratio set against a
            pre-padded training image. </s> remove                 logger.trace("interpolators: %s", interpolators)
                self._cache["interpolators"][0] = interpolators
        return self._cache["interpolators"][0]
 </s> add                 logger.trace("interpolators: %s", interpolators)  # type: ignore
                self._cache.interpolators = interpolators
        return self._cache.interpolators
from dataclasses import dataclass, field
  """ Aligner for faceswap.py """
  
from dataclasses import dataclass, field
  import logging
  import sys
  from threading import Lock
  from typing import Dict, Optional, Tuple
keep add keep keep keep keep
 lib.align.aligned_face updates
  - Typing
  - Legacy support for pre-aligned faces
  - Coverage support for pre-aligned faces
  - Standardized retrieval of sub-crops 
lib/align/aligned_face.py