chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
"""Command line entrypoint of package."""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Union
|
||||
|
||||
from mlc_llm.interface.help import HELP
|
||||
from mlc_llm.interface.package import package
|
||||
from mlc_llm.support.argparse import ArgumentParser
|
||||
|
||||
|
||||
def main(argv):
|
||||
"""Parse command line arguments and call `mlc_llm.interface.package`."""
|
||||
parser = ArgumentParser("MLC LLM Package CLI")
|
||||
|
||||
def _parse_package_config(path: Union[str, Path]) -> Path:
|
||||
path = Path(path)
|
||||
if not path.exists():
|
||||
raise ValueError(
|
||||
f"Path {str(path)} is expected to be a JSON file, but the file does not exist."
|
||||
)
|
||||
if not path.is_file():
|
||||
raise ValueError(f"Path {str(path)} is expected to be a JSON file.")
|
||||
return path
|
||||
|
||||
def _parse_mlc_llm_source_dir(path: str) -> Path:
|
||||
os.environ["MLC_LLM_SOURCE_DIR"] = path
|
||||
return Path(path)
|
||||
|
||||
def _parse_output(path: Union[str, Path]) -> Path:
|
||||
path = Path(path)
|
||||
if not path.is_dir():
|
||||
path.mkdir(parents=True, exist_ok=True)
|
||||
return path
|
||||
|
||||
parser.add_argument(
|
||||
"--package-config",
|
||||
type=_parse_package_config,
|
||||
default="mlc-package-config.json",
|
||||
help=HELP["config_package"] + ' (default: "%(default)s")',
|
||||
)
|
||||
parser.add_argument(
|
||||
"--mlc-llm-source-dir",
|
||||
type=_parse_mlc_llm_source_dir,
|
||||
default=os.environ.get("MLC_LLM_SOURCE_DIR", None),
|
||||
help=HELP["mlc_llm_source_dir"]
|
||||
+ " (default: the $MLC_LLM_SOURCE_DIR environment variable)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--output",
|
||||
"-o",
|
||||
type=_parse_output,
|
||||
default="dist",
|
||||
help=HELP["output_package"] + ' (default: "%(default)s")',
|
||||
)
|
||||
parsed = parser.parse_args(argv)
|
||||
if parsed.mlc_llm_source_dir is None:
|
||||
raise ValueError(
|
||||
"MLC LLM home is not specified. "
|
||||
"Please obtain a copy of MLC LLM source code by "
|
||||
"cloning https://github.com/mlc-ai/mlc-llm, and set environment variable "
|
||||
'"MLC_LLM_SOURCE_DIR=path/to/mlc-llm"'
|
||||
)
|
||||
package(
|
||||
package_config_path=parsed.package_config,
|
||||
mlc_llm_source_dir=parsed.mlc_llm_source_dir,
|
||||
output=parsed.output,
|
||||
)
|
||||
Reference in New Issue
Block a user