diff --git a/python/lightning_sdk/cli/legacy/upload.py b/python/lightning_sdk/cli/legacy/upload.py index 286469bd..b5dcf25f 100644 --- a/python/lightning_sdk/cli/legacy/upload.py +++ b/python/lightning_sdk/cli/legacy/upload.py @@ -40,19 +40,15 @@ def upload() -> None: @upload.command("model") -@click.argument("name") -@click.option( - "--path", - default=".", - help="The path to the file or directory you want to upload. Defaults to the current directory.", -) +@click.argument("name", metavar="ORG-NAME/TEAMSPACE-NAME/MODEL-NAME") +@click.argument("path") @click.option( "--cloud-account", "--cloud_account", default=None, help="The name of the cloud account to store the Model in.", ) -def model(name: str, path: str = ".", cloud_account: Optional[str] = None) -> None: +def model(name: str, path: str, cloud_account: Optional[str] = None) -> None: """Upload a model a teamspace. Example: diff --git a/python/lightning_sdk/cli/model/upload.py b/python/lightning_sdk/cli/model/upload.py index 5705148b..6667c0cd 100644 --- a/python/lightning_sdk/cli/model/upload.py +++ b/python/lightning_sdk/cli/model/upload.py @@ -9,15 +9,11 @@ @click.command("upload", cls=LightningCommand) -@click.argument("name") -@click.option( - "--path", - default=".", - help="The path to the file or directory you want to upload. Defaults to the current directory.", -) +@click.argument("name", metavar="ORG-NAME/TEAMSPACE-NAME/MODEL-NAME") +@click.argument("path") @click.option( "--cloud-account", "--cloud_account", default=None, help="The name of the cloud account to store the Model in." ) -def upload_model(name: str, path: str = ".", cloud_account: Optional[str] = None) -> None: +def upload_model(name: str, path: str, cloud_account: Optional[str] = None) -> None: """Upload a model to a teamspace.""" _upload_model(name, path, cloud_account=cloud_account) diff --git a/python/lightning_sdk/models.py b/python/lightning_sdk/models.py index 978bfeda..080e230d 100644 --- a/python/lightning_sdk/models.py +++ b/python/lightning_sdk/models.py @@ -180,7 +180,7 @@ def download_model( def upload_model( name: str, - path: Union[str, Path, List[Union[str, Path]]] = ".", + path: Union[str, Path, List[Union[str, Path]]], cloud_account: Optional[str] = None, progress_bar: bool = True, metadata: Optional[Dict[str, Any]] = None, @@ -192,7 +192,7 @@ def upload_model( name: Fully-qualified model name in the format ``//`` or ``//:``. - path: Local file or directory to upload. Defaults to the current directory. + path: Local file or directory to upload. cloud_account: Cloud account to store the model files in. Falls back to the teamspace default when not provided. progress_bar: Whether to display an upload progress bar. diff --git a/python/tests/cli/model/test_upload.py b/python/tests/cli/model/test_upload.py index 59915970..f1790a58 100644 --- a/python/tests/cli/model/test_upload.py +++ b/python/tests/cli/model/test_upload.py @@ -4,14 +4,22 @@ @mock_command_logging def test_model_upload_help() -> None: assert_help_contains( - "lightning model upload --help", "Usage: lightning model upload", "Upload a model to a teamspace." + "lightning model upload --help", + "Usage: ", + "lightning model upload", + "ORG-NAME/TEAMSPACE-NAME/MODEL-NAME PATH", + "Upload a model to a teamspace.", ) @mock_command_logging def test_models_upload_help() -> None: assert_help_contains( - "lightning models upload --help", "Usage: lightning models upload", "Upload a model to a teamspace." + "lightning models upload --help", + "Usage: ", + "lightning models upload", + "ORG-NAME/TEAMSPACE-NAME/MODEL-NAME PATH", + "Upload a model to a teamspace.", ) @@ -21,5 +29,5 @@ def test_upload_model_legacy_help() -> None: "lightning upload model --help", "Deprecation warning:", "Use `lightning model upload` instead of `lightning upload model`.", - "Usage: lightning upload model [OPTIONS] NAME", + "Usage: lightning upload model [OPTIONS] ORG-NAME/TEAMSPACE-NAME/MODEL-NAME PATH", ) diff --git a/python/tests/core/test_models.py b/python/tests/core/test_models.py index 8b980a9b..ee9f0ac8 100644 --- a/python/tests/core/test_models.py +++ b/python/tests/core/test_models.py @@ -235,7 +235,7 @@ def test_upload_model_in_studio_with_org( mock_ts = mock.MagicMock() mock_get_teamspace.return_value = mock_ts - upload_model("model_name") + upload_model("model_name", path=".") mock_parse_org_teamspace_model_version.assert_called_once_with("org-abc/ts-abc/model_name") mock_ts.upload_model.assert_called_once_with( cloud_account=None, @@ -265,7 +265,7 @@ def test_upload_model_in_studio_with_org_and_experiment( experiment = MyDummyExperiment(id="abc") - upload_model("model_name", experiment=experiment) + upload_model("model_name", path=".", experiment=experiment) mock_parse_org_teamspace_model_version.assert_called_once_with("org-abc/ts-abc/model_name") mock_ts.upload_model.assert_called_once_with( cloud_account=None, @@ -293,7 +293,7 @@ def test_upload_model_in_studio_with_user( mock_ts = mock.MagicMock() mock_get_teamspace.return_value = mock_ts - upload_model("model_name") + upload_model("model_name", path=".") mock_parse_org_teamspace_model_version.assert_called_once_with("user-abc/ts-abc/model_name") mock_ts.upload_model.assert_called_once_with( cloud_account=None,