feat: Add project delete command to CLI#6212
feat: Add project delete command to CLI#6212crawfordxx wants to merge 1 commit intofeast-dev:masterfrom
Conversation
Expose project deletion via `feast projects delete <name>` CLI command. The registry already supports deleting projects programmatically, but there was no CLI command for it. - Add `delete_project` method to `FeatureStore` - Add `feast projects delete` CLI command with confirmation prompt - Support `--yes/-y` flag to skip confirmation Fixes feast-dev#5095 Signed-off-by: majianhan <majianhan@kylinos.cn>
| Raises: | ||
| ProjectObjectNotFoundException: The project could not be found. |
There was a problem hiding this comment.
🟡 Docstring documents wrong exception type (ProjectObjectNotFoundException vs actual ProjectNotFoundException)
The FeatureStore.delete_project docstring states it raises ProjectObjectNotFoundException, but all registry implementations (registry.py:1519, sql.py:1667, snowflake.py:1330) actually raise ProjectNotFoundException. These are different classes with different inheritance: ProjectObjectNotFoundException extends FeastObjectNotFoundException (line 553 in errors.py), while ProjectNotFoundException extends FeastError directly (line 548 in errors.py). A caller writing except ProjectObjectNotFoundException based on this docstring would fail to catch the actual ProjectNotFoundException, resulting in an unhandled exception. The CLI code at sdk/python/feast/cli/projects.py:77-81 avoids this issue by catching the exception only around get_project (which correctly raises ProjectObjectNotFoundException), not around delete_project.
| Raises: | |
| ProjectObjectNotFoundException: The project could not be found. | |
| Raises: | |
| ProjectNotFoundException: The project could not be found. |
Was this helpful? React with 👍 or 👎 to provide feedback.
What this PR does / why we need it:
Exposes project deletion via the CLI. The registry already supports
delete_project()programmatically, but there was no corresponding CLI command. This adds:FeatureStore.delete_project(name)— thin wrapper aroundregistry.delete_project()feast projects delete <name>CLI command with a confirmation prompt--yes / -yflag to skip the confirmation (useful for scripting)Which issue(s) this PR fixes:
Fixes #5095
Checks
git commit -s)Testing Strategy
Misc
Usage: