  from plugins.extract._base import Extractor
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
  class VGGFace2(Extractor):  # pylint:disable=abstract-method
 
</s> remove from lib.serializer import get_serializer_from_filename
from lib.align import AlignedFace, DetectedFace
from lib.image import FacesLoader, read_image, read_image_meta_batch
from lib.utils import FaceswapError
from plugins.extract.recognition.vgg_face2_keras import VGGFace2 as VGGFace
from plugins.extract.pipeline import Extractor, ExtractMedia
 </s> add from lib.serializer import Serializer, get_serializer_from_filename
from lib.utils import deprecation_warning

from .sort_methods import SortBlur, SortColor, SortFace, SortHistogram, SortMultiMethod
from .sort_methods_aligned import SortDistance, SortFaceCNN, SortPitch, SortSize, SortYaw

if TYPE_CHECKING:
    from .sort_methods import SortMethod </s> remove class _Sort():
 </s> add class _Sort():  # pylint:disable=too-few-public-methods </s> remove import numpy as np
import cv2
 </s> add  </s> remove     # pylint: disable=no-member

 </s> add  </s> remove from concurrent import futures
from shutil import copyfile
from typing import List
 </s> add from shutil import copyfile, rmtree
from typing import List, Optional, TYPE_CHECKING
if sys.version_info < (3, 8):
    from typing_extensions import Literal
else:
    from typing import Literal

  from plugins.extract._base import Extractor
  
if sys.version_info < (3, 8):
    from typing_extensions import Literal
else:
    from typing import Literal

  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
  class VGGFace2(Extractor):  # pylint:disable=abstract-method
keep add keep keep keep keep
 Overhaul sort:
  - Standardize image data reading and writing
  - Optimize loading (just one pass required)
  - Make all sort groups binnable (to greater or lesser results)
  - Add sort by pitch
  - Deprecate multiple options
  - linting, docs + locales 
plugins/extract/recognition/vgg_face2_keras.py