From eec4119177f4ab4a0028d7fb8b83988632bfcecf Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 19 Mar 2021 12:09:45 +0100 Subject: [PATCH] implemented some convertion methods --- pype/settings/entities/enum_entity.py | 6 ++++++ pype/settings/entities/input_entities.py | 15 ++++++++++++++- pype/settings/entities/list_entity.py | 5 +++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pype/settings/entities/enum_entity.py b/pype/settings/entities/enum_entity.py index 4d6d268c70..437f37c469 100644 --- a/pype/settings/entities/enum_entity.py +++ b/pype/settings/entities/enum_entity.py @@ -46,6 +46,12 @@ class EnumEntity(InputEntity): super(EnumEntity, self).schema_validations() + def _convert_to_valid_type(self, value): + if self.multiselection: + if isinstance(value, (set, tuple)): + return list(value) + return NOT_SET + def set(self, value): if self.multiselection: if not isinstance(value, list): diff --git a/pype/settings/entities/input_entities.py b/pype/settings/entities/input_entities.py index c26cb249a6..1f57578094 100644 --- a/pype/settings/entities/input_entities.py +++ b/pype/settings/entities/input_entities.py @@ -330,7 +330,7 @@ class NumberEntity(InputEntity): self.decimal = self.schema_data.get("decimal", 0) if self.decimal: - valid_value_types = (int, float) + valid_value_types = (float, ) else: valid_value_types = (int, ) self.valid_value_types = valid_value_types @@ -340,6 +340,19 @@ class NumberEntity(InputEntity): # TODO check number for floats, integers and point self._validate_value_type(value) super(NumberEntity, self).set(value) + def _convert_to_valid_type(self, value): + if self.decimal: + if isinstance(value, int): + return float(value) + else: + if isinstance(value, float): + new_value = int(value) + if new_value != value: + self.log.info("Converted float {} to int {}".format( + value, new_value + )) + return new_value + return NOT_SET class BoolEntity(InputEntity): diff --git a/pype/settings/entities/list_entity.py b/pype/settings/entities/list_entity.py index 752347489a..ab112236f8 100644 --- a/pype/settings/entities/list_entity.py +++ b/pype/settings/entities/list_entity.py @@ -126,6 +126,11 @@ class ListEntity(EndpointEntity): ) self.on_change() + def _convert_to_valid_type(self, value): + if isinstance(value, (set, tuple)): + return list(value) + return NOT_SET + def _item_initalization(self): self.valid_value_types = (list, ) self.children = []