  import os
  import sys
  from importlib import import_module
  
  logger = logging.getLogger(__name__)  # pylint: disable=invalid-name
  
  
  class PluginLoader():
      """ Retrieve, or get information on, Faceswap plugins
 
</s> remove if TYPE_CHECKING:
    import argparse

 </s> add  </s> remove from typing import List, Dict, TYPE_CHECKING, Optional
 </s> add from argparse import Namespace
from typing import List, Dict, Optional </s> remove from typing import cast, List, Optional, Tuple, TYPE_CHECKING
 </s> add from typing import cast, Dict, Generator, List, Optional, Tuple, TYPE_CHECKING, Union
from typing import Callable, List, Type, TYPE_CHECKING

if TYPE_CHECKING:
    from plugins.extract.detect._base import Detector
    from plugins.extract.align._base import Aligner
    from plugins.extract.mask._base import Masker
    from plugins.train.model._base import ModelBase
    from plugins.train.trainer._base import TrainerBase

if sys.version_info < (3, 8):
    from typing_extensions import Literal
else:
    from typing import Literal
  import os
  import sys
  from importlib import import_module
from typing import Callable, List, Type, TYPE_CHECKING

if TYPE_CHECKING:
    from plugins.extract.detect._base import Detector
    from plugins.extract.align._base import Aligner
    from plugins.extract.mask._base import Masker
    from plugins.train.model._base import ModelBase
    from plugins.train.trainer._base import TrainerBase

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 PluginLoader():
      """ Retrieve, or get information on, Faceswap plugins
keep keep add keep keep keep keep keep keep
 extract: Add batch processing mode 
plugins/plugin_loader.py