From c97b6cb39a239edcc2eff995d197806f10a945c9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 16 Mar 2021 15:32:01 +0100 Subject: [PATCH] fix python 2 compatibility of setting schemas --- pype/settings/entities/input_entities.py | 5 +++-- pype/settings/entities/item_entities.py | 3 ++- pype/settings/entities/lib.py | 6 +++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pype/settings/entities/input_entities.py b/pype/settings/entities/input_entities.py index 0eaafb6c25..0c104e3ce7 100644 --- a/pype/settings/entities/input_entities.py +++ b/pype/settings/entities/input_entities.py @@ -4,6 +4,7 @@ from abc import abstractmethod from .base_entity import ItemEntity from .lib import ( NOT_SET, + STRING_TYPE, OverrideState ) from .exceptions import ( @@ -421,7 +422,7 @@ class TextEntity(InputEntity): schema_types = ["text"] def _item_initalization(self): - self.valid_value_types = (str, ) + self.valid_value_types = (STRING_TYPE, ) self.value_on_not_set = "" # GUI attributes @@ -438,7 +439,7 @@ class PathInput(InputEntity): self.valid_value_types = (list, ) self.value_on_not_set = ["", ""] else: - self.valid_value_types = (str, ) + self.valid_value_types = (STRING_TYPE, ) self.value_on_not_set = "" diff --git a/pype/settings/entities/item_entities.py b/pype/settings/entities/item_entities.py index 2f2573721b..11e43e4fa6 100644 --- a/pype/settings/entities/item_entities.py +++ b/pype/settings/entities/item_entities.py @@ -1,5 +1,6 @@ from .lib import ( NOT_SET, + STRING_TYPE, OverrideState ) from .exceptions import ( @@ -56,7 +57,7 @@ class PathEntity(ItemEntity): # Create child object if not self.multiplatform and not self.multipath: - valid_value_types = (str, ) + valid_value_types = (STRING_TYPE, ) item_schema = { "type": "path-input", "key": self.key, diff --git a/pype/settings/entities/lib.py b/pype/settings/entities/lib.py index 1ca3f9efe0..42164fbce9 100644 --- a/pype/settings/entities/lib.py +++ b/pype/settings/entities/lib.py @@ -8,6 +8,10 @@ from .exceptions import ( SchemaDuplicatedEnvGroupKeys ) +try: + STRING_TYPE = basestring +except Exception: + STRING_TYPE = str WRAPPER_TYPES = ["form", "collapsible-wrap"] NOT_SET = type("NOT_SET", (), {"__bool__": lambda obj: False})() @@ -55,7 +59,7 @@ def _fill_schema_template_data( value, template_data, required_keys, missing_keys ) - elif isinstance(template, str): + elif isinstance(template, STRING_TYPE): # TODO find much better way how to handle filling template data for replacement_string in template_key_pattern.findall(template): key = str(replacement_string[1:-1])