From b11d8809d61808ea829e9430f240f582ad2dd833 Mon Sep 17 00:00:00 2001 From: rikunosuke Date: Wed, 3 Dec 2025 14:08:18 +0900 Subject: [PATCH] feat: Add optional name and slug parameters to copy_project method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added project_name and project_slug optional parameters to copy_project - Updated README documentation with examples showing both basic and custom usage - Maintains backward compatibility with existing code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- README.md | 10 +++++++++- fastlabel/__init__.py | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e8b3ba7..d04a100 100644 --- a/README.md +++ b/README.md @@ -2528,10 +2528,18 @@ client.delete_project(project_id="YOUR_PROJECT_ID") ### Copy Project -Copy a project. +Copy a project. You can optionally specify a custom name and slug for the copied project. ```python +# Copy project with default name/slug project_id = client.copy_project(project_id="YOUR_PROJECT_ID") + +# Copy project with custom name and slug +project_id = client.copy_project( + project_id="YOUR_PROJECT_ID", + project_name="Custom Project Name", + project_slug="custom-project-slug" +) ``` ### Update Project Metadata diff --git a/fastlabel/__init__.py b/fastlabel/__init__.py index 5a79d51..725f0c2 100644 --- a/fastlabel/__init__.py +++ b/fastlabel/__init__.py @@ -4105,13 +4105,25 @@ def delete_project(self, project_id: str) -> None: endpoint = "projects/" + project_id self.api.delete_request(endpoint) - def copy_project(self, project_id: str) -> None: + def copy_project( + self, + project_id: str, + project_name: Optional[str] = None, + project_slug: Optional[str] = None, + ) -> None: """ Copy a project. """ - payload = {"id": project_id} endpoint = "projects/copy" - return self.api.post_request(endpoint, payload=payload) + payload = {"id": project_id} + if project_name: + payload["name"] = project_name + if project_slug: + payload["slug"] = project_slug + return self.api.post_request( + endpoint, + payload=payload, + ) def update_project_metadata( self,