From 7ebec6b8bcd737b6d393d9a50b9f4744a2e841b0 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 30 Aug 2023 22:55:44 +0200 Subject: [PATCH] simplified few lines --- openpype/lib/attribute_definitions.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/openpype/lib/attribute_definitions.py b/openpype/lib/attribute_definitions.py index 0af701a93a..44aa8dee48 100644 --- a/openpype/lib/attribute_definitions.py +++ b/openpype/lib/attribute_definitions.py @@ -445,18 +445,19 @@ class EnumDef(AbstractAttrDef): items = self.prepare_enum_items(items) item_values = [item["value"] for item in items] - if multiselection and default is None: - default = [] + item_values_set = set(item_values) + if multiselection: + if default is None: + default = [] + default = list(item_values_set.intersection(default)) - if not multiselection and default not in item_values: - for value in item_values: - default = value - break + elif default not in item_values: + default = next(iter(item_values), None) super(EnumDef, self).__init__(key, default=default, **kwargs) self.items = items - self._item_values = set(item_values) + self._item_values = item_values_set self.multiselection = multiselection def __eq__(self, other): @@ -476,9 +477,7 @@ class EnumDef(AbstractAttrDef): if value is None: return copy.deepcopy(self.default) - new_value = set(value) - rem = new_value - self._item_values - return list(new_value - rem) + return list(self._item_values.intersection(value)) def serialize(self):