forked from phoenix-oss/llama-stack-mirror
Add --print-deps-only for computing dependencies
This commit is contained in:
parent
da46d98a63
commit
216cde5ee8
2 changed files with 28 additions and 11 deletions
|
@ -22,7 +22,12 @@ from termcolor import cprint
|
||||||
|
|
||||||
from llama_stack.cli.table import print_table
|
from llama_stack.cli.table import print_table
|
||||||
|
|
||||||
from llama_stack.distribution.build import build_image, ImageType
|
from llama_stack.distribution.build import (
|
||||||
|
build_image,
|
||||||
|
get_provider_dependencies,
|
||||||
|
ImageType,
|
||||||
|
SERVER_DEPENDENCIES,
|
||||||
|
)
|
||||||
from llama_stack.distribution.datatypes import (
|
from llama_stack.distribution.datatypes import (
|
||||||
BuildConfig,
|
BuildConfig,
|
||||||
DistributionSpec,
|
DistributionSpec,
|
||||||
|
@ -35,7 +40,6 @@ from llama_stack.distribution.utils.config_dirs import DISTRIBS_BASE_DIR
|
||||||
from llama_stack.distribution.utils.dynamic import instantiate_class_type
|
from llama_stack.distribution.utils.dynamic import instantiate_class_type
|
||||||
from llama_stack.providers.datatypes import Api
|
from llama_stack.providers.datatypes import Api
|
||||||
|
|
||||||
|
|
||||||
TEMPLATES_PATH = Path(__file__).parent.parent.parent / "templates"
|
TEMPLATES_PATH = Path(__file__).parent.parent.parent / "templates"
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,14 +82,7 @@ def run_stack_build_command(
|
||||||
color="red",
|
color="red",
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
_run_stack_build_command_from_build_config(
|
elif not args.config and not args.template:
|
||||||
build_config,
|
|
||||||
image_name=image_name,
|
|
||||||
template_name=args.template,
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
if not args.config and not args.template:
|
|
||||||
name = prompt(
|
name = prompt(
|
||||||
"> Enter a name for your Llama Stack (e.g. my-local-stack): ",
|
"> Enter a name for your Llama Stack (e.g. my-local-stack): ",
|
||||||
validator=Validator.from_callable(
|
validator=Validator.from_callable(
|
||||||
|
@ -180,8 +177,22 @@ def run_stack_build_command(
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if args.print_deps_only:
|
||||||
|
print(f"# Dependencies for {args.template or args.config or image_name}")
|
||||||
|
normal_deps, special_deps = get_provider_dependencies(
|
||||||
|
build_config.distribution_spec.providers
|
||||||
|
)
|
||||||
|
normal_deps += SERVER_DEPENDENCIES
|
||||||
|
print(f"pip install {' '.join(normal_deps)}")
|
||||||
|
for special_dep in special_deps:
|
||||||
|
print(f"pip install {special_dep}")
|
||||||
|
return
|
||||||
|
|
||||||
_run_stack_build_command_from_build_config(
|
_run_stack_build_command_from_build_config(
|
||||||
build_config, image_name=image_name, config_path=args.config
|
build_config,
|
||||||
|
image_name=image_name,
|
||||||
|
config_path=args.config,
|
||||||
|
template_name=args.template,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,12 @@ environment is active, you must specify a name.
|
||||||
),
|
),
|
||||||
default=None,
|
default=None,
|
||||||
)
|
)
|
||||||
|
self.parser.add_argument(
|
||||||
|
"--print-deps-only",
|
||||||
|
default=False,
|
||||||
|
action="store_true",
|
||||||
|
help="Print the dependencies for the stack only, without building the stack",
|
||||||
|
)
|
||||||
|
|
||||||
def _run_stack_build_command(self, args: argparse.Namespace) -> None:
|
def _run_stack_build_command(self, args: argparse.Namespace) -> None:
|
||||||
# always keep implementation completely silo-ed away from CLI so CLI
|
# always keep implementation completely silo-ed away from CLI so CLI
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue