From 75255b37d02dcb19df1d455211d87451005d8c6f Mon Sep 17 00:00:00 2001 From: slalom Date: Wed, 20 May 2026 14:13:21 -0400 Subject: [PATCH] rename --- README.md | 40 ++++++++++++++++++++-------------------- pyproject.toml | 4 ++-- src/commands/utils.py | 2 +- src/config.py | 2 +- src/infra/state.py | 2 +- src/main.py | 2 +- uv.lock | 2 +- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index dd73326..3275b90 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# qai-cli +# qc-cli A CLI for the Qualcomm model MLOps pipeline — browse and download models from Qualcomm AI Hub, fine-tune them on custom datasets using SageMaker, validate inference, and prepare artifacts for Qualcomm hardware deployment. @@ -6,40 +6,40 @@ A CLI for the Qualcomm model MLOps pipeline — browse and download models from - Python 3.13+ - [uv](https://docs.astral.sh/uv/getting-started/installation/) -- AWS account with credentials configured (`aws configure`) when using `qai-cli infra` -- AWS CDK CLI (`npm install -g aws-cdk`) when using `qai-cli infra setup` or `qai-cli infra destroy` +- AWS account with credentials configured (`aws configure`) when using `qc-cli infra` +- AWS CDK CLI (`npm install -g aws-cdk`) when using `qc-cli infra setup` or `qc-cli infra destroy` ## Installation ```bash git clone -cd qai-cli +cd qc-cli uv sync ``` -Run commands with `uv run qai-cli ` or activate the venv first: +Run commands with `uv run qc-cli ` or activate the venv first: ```bash source .venv/bin/activate -qai-cli --help +qc-cli --help ``` ## Quick start ```bash # 1. Create config.yaml in the current directory -qai-cli init +qc-cli init # 2. Edit config.yaml — at minimum set s3.bucket and sagemaker.role_name # 3. Provision AWS infrastructure (S3 bucket + SageMaker IAM role). # This is the step that requires the AWS CDK CLI. -qai-cli infra setup +qc-cli infra setup ``` ## Configuration -`qai-cli init` writes a `config.yaml` in the current directory. The fields you must fill in before using the tool: +`qc-cli init` writes a `config.yaml` in the current directory. The fields you must fill in before using the tool: ```yaml aws: @@ -50,7 +50,7 @@ s3: bucket: your-unique-bucket-name sagemaker: - role_name: qai-cli-sagemaker-role + role_name: qc-cli-sagemaker-role ``` To provision an MLflow tracking server, set: @@ -74,21 +74,21 @@ mlflow: ### `init` ``` -qai-cli init Write config.yaml -qai-cli init --output Write config to a custom path -qai-cli init --force Overwrite an existing config file +qc-cli init Write config.yaml +qc-cli init --output Write config to a custom path +qc-cli init --force Overwrite an existing config file ``` ### `infra` ``` -qai-cli infra setup Deploy the CDK stack -qai-cli infra setup --no-bootstrap Deploy without running CDK bootstrap -qai-cli infra setup --cloudformation-execution-policy Set CDK bootstrap execution policy ARN -qai-cli infra status Show CDK stack/resource status -qai-cli infra destroy Destroy stack, retaining S3 data -qai-cli infra destroy --yes Destroy stack without confirmation -qai-cli infra destroy --delete-bucket-data Destroy stack and delete S3 data +qc-cli infra setup Deploy the CDK stack +qc-cli infra setup --no-bootstrap Deploy without running CDK bootstrap +qc-cli infra setup --cloudformation-execution-policy Set CDK bootstrap execution policy ARN +qc-cli infra status Show CDK stack/resource status +qc-cli infra destroy Destroy stack, retaining S3 data +qc-cli infra destroy --yes Destroy stack without confirmation +qc-cli infra destroy --delete-bucket-data Destroy stack and delete S3 data ``` ## AWS permissions required diff --git a/pyproject.toml b/pyproject.toml index cef6888..a26518f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [project] -name = "qai-cli" +name = "qc-cli" version = "0.1.0" description = "CLI for SageMaker ONNX training and Qualcomm AI Hub optimization" requires-python = ">=3.13" @@ -17,7 +17,7 @@ dependencies = [ ] [project.scripts] -qai-cli = "src.main:app" +qc-cli = "src.main:app" [tool.hatch.build.targets.wheel] packages = ["src"] diff --git a/src/commands/utils.py b/src/commands/utils.py index 6ad91a9..a20e25a 100644 --- a/src/commands/utils.py +++ b/src/commands/utils.py @@ -14,7 +14,7 @@ def load_config(path: str = "config.yaml") -> Config: config_path = Path(path) if not config_path.exists(): raise FileNotFoundError( - f"Config file not found: {config_path}. Run 'qai-cli init' to create one." + f"Config file not found: {config_path}. Run 'qc-cli init' to create one." ) with open(config_path) as f: data = yaml.safe_load(f) diff --git a/src/config.py b/src/config.py index c321305..1cb2634 100644 --- a/src/config.py +++ b/src/config.py @@ -39,7 +39,7 @@ class TrainingConfig(BaseModel): class SageMakerConfig(BaseModel): - role_name: str = "qai-cli-sagemaker-role" + role_name: str = "qc-cli-sagemaker-role" training: TrainingConfig = Field(default_factory=TrainingConfig) diff --git a/src/infra/state.py b/src/infra/state.py index 6864e1d..fc165e8 100644 --- a/src/infra/state.py +++ b/src/infra/state.py @@ -2,7 +2,7 @@ import json from pathlib import Path from typing import Any -INFRA_STATE_FILE = ".qai-cli-infra.json" +INFRA_STATE_FILE = ".qc-cli-infra.json" def state_path(config_dir: str) -> Path: diff --git a/src/main.py b/src/main.py index 3da9fc5..029065e 100644 --- a/src/main.py +++ b/src/main.py @@ -8,7 +8,7 @@ from src.commands import infra from src.config import Config app = typer.Typer( - help="qai-cli: End-to-end model managment for Qualcomm AI Hub.", + help="qc-cli: End-to-end model managment for Qualcomm AI Hub.", no_args_is_help=True, ) app.add_typer(infra.app, name="infra") diff --git a/uv.lock b/uv.lock index 0a26d67..4ad7780 100644 --- a/uv.lock +++ b/uv.lock @@ -451,7 +451,7 @@ wheels = [ ] [[package]] -name = "qai-cli" +name = "qc-cli" version = "0.1.0" source = { editable = "." } dependencies = [