File: //opt/saltstack/salt/lib/python3.10/site-packages/virtualenv/run/plugin/seeders.py
from __future__ import annotations
from typing import TYPE_CHECKING
from .base import ComponentBuilder
if TYPE_CHECKING:
from collections.abc import Sequence
from python_discovery import PythonInfo
from virtualenv.config.cli.parser import VirtualEnvConfigParser, VirtualEnvOptions
from virtualenv.seed.seeder import Seeder
class SeederSelector(ComponentBuilder):
def __init__(self, interpreter: PythonInfo, parser: VirtualEnvConfigParser) -> None:
possible = self.options("virtualenv.seed")
super().__init__(interpreter, parser, "seeder", possible)
def add_selector_arg_parse(self, name: str, choices: Sequence[str]) -> None:
self.parser.add_argument(
f"--{name}",
choices=choices,
default=self._get_default(),
required=False,
help="seed packages install method",
)
self.parser.add_argument(
"--no-seed",
"--without-pip",
help="do not install seed packages",
action="store_true",
dest="no_seed",
)
@staticmethod
def _get_default() -> str:
return "app-data"
def handle_selected_arg_parse(self, options: VirtualEnvOptions) -> str:
return super().handle_selected_arg_parse(options)
def create(self, options: VirtualEnvOptions) -> Seeder:
assert self._impl_class is not None # noqa: S101 # Set by handle_selected_arg_parse
return self._impl_class(options)
__all__ = [
"SeederSelector",
]