From ba2d1c7eddd9ed59802cb56a0dd4bdfad130cc47 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Tue, 23 Feb 2021 11:22:30 +0100 Subject: [PATCH 1/3] autorepair unicode strings --- .../publish/repair_unicode_strings.py} | 27 ++++++------------- 1 file changed, 8 insertions(+), 19 deletions(-) rename pype/{hosts/maya/plugins/publish/validate_unicode_strings.py => plugins/publish/repair_unicode_strings.py} (53%) diff --git a/pype/hosts/maya/plugins/publish/validate_unicode_strings.py b/pype/plugins/publish/repair_unicode_strings.py similarity index 53% rename from pype/hosts/maya/plugins/publish/validate_unicode_strings.py rename to pype/plugins/publish/repair_unicode_strings.py index cfcba4f514..593b8f9f31 100644 --- a/pype/hosts/maya/plugins/publish/validate_unicode_strings.py +++ b/pype/plugins/publish/repair_unicode_strings.py @@ -1,26 +1,23 @@ import os -from maya import cmds - import pyblish.api import pype.api -import pype.hosts.maya.api.action -class ValidateUnicodeStrings(pyblish.api.Validator): +class RepairUnicodeStrings(pyblish.api.Collector): """Validate all environment variables are string type. """ - order = pype.api.ValidateContentsOrder - hosts = ['maya'] - families = ['review'] + order = pyblish.api.CollectorOrder label = 'Unicode Strings' - actions = [pype.api.RepairAction] def process(self, instance): - invalid = self.get_invalid(instance) - if invalid: - raise RuntimeError("Found unicode strings in environment variables.") + # invalid = self.get_invalid(instance) + # if invalid: + for key, value in os.environ.items(): + self.log.info(type(value)) + if type(value) is type(u't'): + os.environ[key] = str(value) @classmethod def get_invalid(cls, instance): @@ -30,11 +27,3 @@ class ValidateUnicodeStrings(pyblish.api.Validator): invalid.append((key, value)) return invalid - - @classmethod - def repair(cls, instance): - """Retype all unicodes to strings.""" - - for key, value in os.environ.items(): - if type(value) is type(u't'): - os.environ[key] = str(value) From 55df47c8f3656ae02240cd110efe8257767b738e Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Tue, 23 Feb 2021 12:39:15 +0100 Subject: [PATCH 2/3] ensure keys are converted to string as well --- pype/lib/execute.py | 2 +- pype/plugins/publish/repair_unicode_strings.py | 18 +++--------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/pype/lib/execute.py b/pype/lib/execute.py index 7e37e5d6da..f815d05f1b 100644 --- a/pype/lib/execute.py +++ b/pype/lib/execute.py @@ -94,7 +94,7 @@ def run_subprocess(*args, **kwargs): # not passed. env = kwargs.get("env") or os.environ # Make sure environment contains only strings - filtered_env = {k: str(v) for k, v in env.items()} + filtered_env = {str(k): str(v) for k, v in env.items()} # Use lib's logger if was not passed with kwargs. logger = kwargs.pop("logger", log) diff --git a/pype/plugins/publish/repair_unicode_strings.py b/pype/plugins/publish/repair_unicode_strings.py index 593b8f9f31..59e629a892 100644 --- a/pype/plugins/publish/repair_unicode_strings.py +++ b/pype/plugins/publish/repair_unicode_strings.py @@ -10,20 +10,8 @@ class RepairUnicodeStrings(pyblish.api.Collector): order = pyblish.api.CollectorOrder label = 'Unicode Strings' + actions = [pype.api.RepairContextAction] - def process(self, instance): - # invalid = self.get_invalid(instance) - # if invalid: + def process(self, context): for key, value in os.environ.items(): - self.log.info(type(value)) - if type(value) is type(u't'): - os.environ[key] = str(value) - - @classmethod - def get_invalid(cls, instance): - invalid = [] - for key, value in os.environ.items(): - if type(value) is type(u't'): - invalid.append((key, value)) - - return invalid + os.environ[str(key)] = str(value) From ca381e1a8c306bdab47ac7fda695a81c32cb565b Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Tue, 23 Feb 2021 12:40:43 +0100 Subject: [PATCH 3/3] remove repair action --- pype/plugins/publish/repair_unicode_strings.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pype/plugins/publish/repair_unicode_strings.py b/pype/plugins/publish/repair_unicode_strings.py index 59e629a892..fdd4bb7d03 100644 --- a/pype/plugins/publish/repair_unicode_strings.py +++ b/pype/plugins/publish/repair_unicode_strings.py @@ -1,6 +1,5 @@ import os import pyblish.api -import pype.api class RepairUnicodeStrings(pyblish.api.Collector): @@ -10,7 +9,6 @@ class RepairUnicodeStrings(pyblish.api.Collector): order = pyblish.api.CollectorOrder label = 'Unicode Strings' - actions = [pype.api.RepairContextAction] def process(self, context): for key, value in os.environ.items():