From a96dcbc8749951689861de296a7484ec9ffd7a5d Mon Sep 17 00:00:00 2001 From: paulnoirel <87332996+paulnoirel@users.noreply.github.com> Date: Fri, 6 Jun 2025 18:17:56 +0100 Subject: [PATCH] Fix ApiKey.created_by for old API keys --- libs/labelbox/src/labelbox/schema/api_key.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libs/labelbox/src/labelbox/schema/api_key.py b/libs/labelbox/src/labelbox/schema/api_key.py index 228286ee2..9f3094016 100644 --- a/libs/labelbox/src/labelbox/schema/api_key.py +++ b/libs/labelbox/src/labelbox/schema/api_key.py @@ -45,14 +45,22 @@ def created_by(self) -> Optional["User"]: """Gets the User who created this API key. Returns: - Optional[User]: The User who created this API key, or None if not available + Optional[User]: The User who created this API key, or None if not available. """ if not hasattr(self, "_created_by"): + # Use created_by_user_id if present, otherwise fall back to user_id + # (typically needed for older API keys where created_by_user_id is NULL) + user_id_to_fetch = ( + self.created_by_user_id + if self.created_by_user_id is not None + else self.user_id + ) self._created_by = ( - self.client._get_single(User, self.created_by_user_id) - if self.created_by_user_id + self.client._get_single(User, user_id_to_fetch) + if user_id_to_fetch else None ) + return self._created_by @property