From e71f2b643bfbc38ae746ffcbf0635d964255b707 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 26 May 2026 11:25:03 +0200 Subject: [PATCH] use set for assignees --- ayon_api/entity_hub.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ayon_api/entity_hub.py b/ayon_api/entity_hub.py index 09791d90d..942fa60ea 100644 --- a/ayon_api/entity_hub.py +++ b/ayon_api/entity_hub.py @@ -56,6 +56,15 @@ class ProjectStatusDict(TypedDict): scope: NotRequired[Optional[StatusEntityType]] +class Assignees(set): + """Helper class for task assignees. + + Assignees used to be a list and 'append' is being used a lot. + """ + def append(self, item: str) -> None: + self.add(item) + + class _CustomNone: def __init__(self, name: Optional[str] = None) -> None: self._name = name or "CustomNone" @@ -3430,9 +3439,9 @@ def __init__( entity_hub=entity_hub, ) if assignees is None: - assignees = [] + assignees = Assignees() else: - assignees = list(assignees) + assignees = Assignees(assignees) self._task_type = task_type self._assignees = assignees @@ -3463,11 +3472,11 @@ def set_task_type(self, task_type: str) -> None: task_type = property(get_task_type, set_task_type) - def get_assignees(self) -> list[str]: + def get_assignees(self) -> Assignees[str]: """Task assignees. Returns: - list[str]: Task assignees. + Assignees[str]: Task assignees. """ return self._assignees @@ -3479,7 +3488,7 @@ def set_assignees(self, assignees: Iterable[str]) -> None: assignees (Iterable[str]): assignees. """ - self._assignees = list(assignees) + self._assignees = Assignees(assignees) assignees = property(get_assignees, set_assignees) @@ -3497,7 +3506,7 @@ def changes(self) -> dict[str, Any]: changes["taskType"] = self._task_type if self._orig_assignees != self._assignees: - changes["assignees"] = self._assignees + changes["assignees"] = list(self._assignees) return changes @@ -3549,7 +3558,7 @@ def to_create_body_data(self) -> dict[str, Any]: output["tags"] = self.tags if self.assignees: - output["assignees"] = self.assignees + output["assignees"] = list(self.assignees) if self._data is not UNKNOWN_VALUE: output["data"] = self._data.get_new_entity_value()