41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
from .base import ComponentBuilder
|
||
|
|
||
|
|
||
|
class SeederSelector(ComponentBuilder):
|
||
|
def __init__(self, interpreter, parser) -> None:
|
||
|
possible = self.options("virtualenv.seed")
|
||
|
super().__init__(interpreter, parser, "seeder", possible)
|
||
|
|
||
|
def add_selector_arg_parse(self, name, choices):
|
||
|
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():
|
||
|
return "app-data"
|
||
|
|
||
|
def handle_selected_arg_parse(self, options):
|
||
|
return super().handle_selected_arg_parse(options)
|
||
|
|
||
|
def create(self, options):
|
||
|
return self._impl_class(options)
|
||
|
|
||
|
|
||
|
__all__ = [
|
||
|
"SeederSelector",
|
||
|
]
|