From 5ccc34abb4b79575f40ca1190af7940748419194 Mon Sep 17 00:00:00 2001 From: Jana Mizikova Date: Fri, 18 Oct 2019 15:09:47 +0200 Subject: [PATCH] validate unicode strings checking for unicode strings in environment variables that block extracting review --- .../maya/publish/validate_unicode_strings.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pype/plugins/maya/publish/validate_unicode_strings.py diff --git a/pype/plugins/maya/publish/validate_unicode_strings.py b/pype/plugins/maya/publish/validate_unicode_strings.py new file mode 100644 index 0000000000..9f229db062 --- /dev/null +++ b/pype/plugins/maya/publish/validate_unicode_strings.py @@ -0,0 +1,40 @@ +import os +from maya import cmds + +import pyblish.api +import pype.api +import pype.maya.action + + +class ValidateUnicodeStrings(pyblish.api.Validator): + """Validate all environment variables are string type. + + """ + + order = pype.api.ValidateContentsOrder + hosts = ['maya'] + families = ['review'] + 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.") + + @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 + + @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)