| Viewing file:  discovery.py (1.14 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
from .base import PluginLoader
 
 class Discovery(PluginLoader):
 """Discovery plugins"""
 
 
 def get_discover(parser, args):
 discover_types = Discovery.entry_points_for("virtualenv.discovery")
 discovery_parser = parser.add_argument_group(
 title="discovery",
 description="discover and provide a target interpreter",
 )
 choices = _get_default_discovery(discover_types)
 # prefer the builtin if present, otherwise fallback to first defined type
 choices = sorted(choices, key=lambda a: 0 if a == "builtin" else 1)
 discovery_parser.add_argument(
 "--discovery",
 choices=choices,
 default=next(iter(choices)),
 required=False,
 help="interpreter discovery method",
 )
 options, _ = parser.parse_known_args(args)
 discover_class = discover_types[options.discovery]
 discover_class.add_parser_arguments(discovery_parser)
 options, _ = parser.parse_known_args(args, namespace=options)
 discover = discover_class(options)
 return discover
 
 
 def _get_default_discovery(discover_types):
 return list(discover_types.keys())
 
 
 __all__ = [
 "get_discover",
 "Discovery",
 ]
 
 |